--- a/.hgignore Fri Oct 28 17:41:39 2011 +0200
+++ b/.hgignore Fri Oct 28 18:26:17 2011 +0200
@@ -8,7 +8,7 @@
glob:*.hi
glob:*.*~
glob:*.core
-glob:hedgewars/config.inc
+glob:config.inc
glob:cmake_install.cmake
glob:QTfrontend/hwconsts.cpp
glob:CPackConfig.cmake
--- a/.hgtags Fri Oct 28 17:41:39 2011 +0200
+++ b/.hgtags Fri Oct 28 18:26:17 2011 +0200
@@ -45,3 +45,4 @@
718f98a9df122d73f3ba9add4d1654865199de31 Hedgewars-iOS-1.3
cba92708277b6d0aeabfff2b878845b7d848bdcd Hedgewars-iOS-1.3.1
74bc72746bec68806344f4ba7be0d1bc6e05d380 0.9.16-release
+652a199d4f38f5becbec0839f5a1f63294dd89bf Hedgewars-iOS-1.3.2
--- a/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -132,17 +132,17 @@
endif(APPLE)
-#this snippet sets "Release" mode by default
+#build Debug only when explicitally set
if (NOT CMAKE_BUILD_TYPE)
- set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: None Debug Release." FORCE)
+ set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: Debug Release." FORCE)
endif (NOT CMAKE_BUILD_TYPE)
-if(CMAKE_BUILD_TYPE MATCHES RELEASE OR CMAKE_BUILD_TYPE MATCHES "Release")
+if(CMAKE_BUILD_TYPE MATCHES DEBUG OR CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "debug")
+ message(STATUS "Building Debug")
+ set(Optz false)
+else()
message(STATUS "Building Release")
set(Optz true)
-else()
- message(STATUS "Building Debug")
- set(Optz false)
endif()
--- a/QTfrontend/AbstractPage.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef ABSTRACTPAGE_H
-#define ABSTRACTPAGE_H
-
-#include <QWidget>
-#include <QPushButton>
-#include <QFont>
-#include <QGridLayout>
-#include <QComboBox>
-#include <QSignalMapper>
-
-class QPushButton;
-class QGroupBox;
-class QComboBox;
-class QLabel;
-class QToolBox;
-class QLineEdit;
-class QListWidget;
-class QCheckBox;
-class QSpinBox;
-class QTextEdit;
-class QRadioButton;
-class QTableView;
-class QTextBrowser;
-class QTableWidget;
-class QAction;
-class QDataWidgetMapper;
-class QAbstractItemModel;
-class QSettings;
-class QSlider;
-
-class AbstractPage : public QWidget
-{
- Q_OBJECT
-
- signals:
- void goBack();
-
- protected:
- AbstractPage(QWidget* parent = 0) {
- Q_UNUSED(parent);
-
- font14 = new QFont("MS Shell Dlg", 14);
- //setFocusPolicy(Qt::StrongFocus);
- }
- virtual ~AbstractPage() {};
-
- QPushButton* addButton(QString btname, QGridLayout* grid, int wy, int wx, bool iconed = false) {
- QPushButton* butt = new QPushButton(this);
- if (!iconed) {
- butt->setFont(*font14);
- butt->setText(btname);
- //butt->setStyleSheet("background-color: #0d0544");
- } else {
- const QIcon& lp=QIcon(btname);
- QSize sz = lp.actualSize(QSize(65535, 65535));
- butt->setIcon(lp);
- butt->setFixedSize(sz);
- butt->setIconSize(sz);
- butt->setFlat(true);
- butt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- }
- grid->addWidget(butt, wy, wx);
- return butt;
- };
-
- QPushButton* addButton(QString btname, QGridLayout* grid, int wy, int wx, int rowSpan, int columnSpan, bool iconed = false) {
- QPushButton* butt = new QPushButton(this);
- if (!iconed) {
- butt->setFont(*font14);
- butt->setText(btname);
- } else {
- const QIcon& lp=QIcon(btname);
- QSize sz = lp.actualSize(QSize(65535, 65535));
- butt->setIcon(lp);
- butt->setFixedSize(sz);
- butt->setIconSize(sz);
- butt->setFlat(true);
- butt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- }
- grid->addWidget(butt, wy, wx, rowSpan, columnSpan);
- return butt;
- };
-
- QPushButton* addButton(QString btname, QBoxLayout* box, int where, bool iconed = false) {
- QPushButton* butt = new QPushButton(this);
- if (!iconed) {
- butt->setFont(*font14);
- butt->setText(btname);
- } else {
- const QIcon& lp=QIcon(btname);
- QSize sz = lp.actualSize(QSize(65535, 65535));
- butt->setIcon(lp);
- butt->setFixedSize(sz);
- butt->setIconSize(sz);
- butt->setFlat(true);
- butt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- }
- box->addWidget(butt, where);
- return butt;
- };
-
- QFont * font14;
-};
-
-#endif
-
--- a/QTfrontend/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -14,7 +14,7 @@
include(${QT_USE_FILE})
# Check if we need zlib
-check_library_exists(${QT_QTCORE_LIBRARY} inflateInit2_ ${QT_LIBRARY_DIR} QT_PROVIDES_ZLIB_FUNCTIONS)
+check_library_exists("${QT_QTCORE_LIBRARY}" inflateInit2_ ${QT_LIBRARY_DIR} QT_PROVIDES_ZLIB_FUNCTIONS)
if(NOT QT_PROVIDES_ZLIB_FUNCTIONS)
find_package(ZLIB REQUIRED)
@@ -28,6 +28,13 @@
find_package(SDL_mixer REQUIRED)
include_directories(.)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/model)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/net)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/dialog)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/page)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/widget)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util)
include_directories(${SDL_INCLUDE_DIR})
include_directories(${SDLMIXER_INCLUDE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/misc/quazip)
@@ -57,76 +64,27 @@
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hwconsts.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp)
+file(GLOB NetCpp net/*.cpp)
+file(GLOB ModelCpp model/*.cpp)
+file(GLOB_RECURSE UIcpp ui/*.cpp)
+file(GLOB UtilCpp util/*.cpp)
+
set(hwfr_src
- HWApplication.cpp
+ ${ModelCpp}
+ ${NetCpp}
+ ${UIcpp}
+ ${UtilCpp}
+ achievements.cpp
+ binds.cpp
+ drawmapscene.cpp
game.cpp
+ gameuiconfig.cpp
+ HWApplication.cpp
+ hwform.cpp
main.cpp
- hwform.cpp
team.cpp
- namegen.cpp
- teamselect.cpp
- teamselhelper.cpp
- frameTeam.cpp
- vertScrollArea.cpp
- gameuiconfig.cpp
ui_hwform.cpp
- gamecfgwidget.cpp
- pagemain.cpp
- pageeditteam.cpp
- pagemultiplayer.cpp
- pageoptions.cpp
- pagenet.cpp
- pagenetserver.cpp
- pagenetgame.cpp
- pageinfo.cpp
- pagedata.cpp
- pagesingleplayer.cpp
- pagetraining.cpp
- pagecampaign.cpp
- pageselectweapon.cpp
- pageingame.cpp
- pageroomslist.cpp
- pageconnecting.cpp
- pagescheme.cpp
- pagegamestats.cpp
- pageplayrecord.cpp
- pageadmin.cpp
- pagenettype.cpp
- pagedrawmap.cpp
- SquareLabel.cpp
- hats.cpp
- hedgehogerWidget.cpp
- hwmap.cpp
- mapContainer.cpp
- tcpBase.cpp
- about.cpp
- proto.cpp
- fpsedit.cpp
- netserver.cpp
- newnetclient.cpp
- netudpserver.cpp
- netudpwidget.cpp
- netregister.cpp
- netserverslist.cpp
- chatwidget.cpp
- binds.cpp
- SDLs.cpp
${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp
- selectWeapon.cpp
- itemNum.cpp
- input_ip.cpp
- igbox.cpp
- weaponItem.cpp
- misc.cpp
- ammoSchemeModel.cpp
- togglebutton.cpp
- bgwidget.cpp
- achievements.cpp
- qaspectratiolayout.cpp
- drawmapwidget.cpp
- drawmapscene.cpp
- themesmodel.cpp
- databrowser.cpp
)
#xfire integration
@@ -145,77 +103,33 @@
set(hwfr_src ${hwfr_src} hedgewars.rc)
endif(MINGW)
+file(GLOB ModelHdr model/*.h)
+file(GLOB NetHdr net/*.h)
+file(GLOB_RECURSE UIhdr ui/*.h)
+file(GLOB UtilHdr util/*.h)
+
+
set(hwfr_moc_hdrs
- HWApplication.h
+ ${ModelHdr}
+ ${NetHdr}
+ ${UIhdr}
+ drawmapscene.h
game.h
- hats.h
- hwform.h
- teamselect.h
- teamselhelper.h
- frameTeam.h
- vertScrollArea.h
gameuiconfig.h
- gamecfgwidget.h
- AbstractPage.h
- pagenet.h
- pagemultiplayer.h
- pagenetserver.h
- pageingame.h
- pagetraining.h
- pageeditteam.h
- pageoptions.h
- pagemain.h
- pageinfo.h
- pagedata.h
- pagesingleplayer.h
- pagenettype.h
- pageconnecting.h
- pagedrawmap.h
- pagecampaign.h
- pagenetgame.h
- pageroomslist.h
- pagegamestats.h
- pageadmin.h
- pagescheme.h
- pageselectweapon.h
- pageplayrecord.h
- SquareLabel.h
- hedgehogerWidget.h
- hwmap.h
- mapContainer.h
- tcpBase.h
- about.h
- proto.h
- fpsedit.h
- netserver.h
- newnetclient.h
- netudpserver.h
- netudpwidget.h
- netregister.h
- netserverslist.h
- chatwidget.h
- SDLs.h
- selectWeapon.h
- itemNum.h
- input_ip.h
- igbox.h
- weaponItem.h
- misc.h
- ammoSchemeModel.h
- togglebutton.h
- bgwidget.h
- qaspectratiolayout.h
- drawmapwidget.h
- drawmapscene.h
- themesmodel.h
- databrowser.h
+ HWApplication.h
+ hwform.h
+ team.h
)
set(hwfr_hdrs
+ ${UtilHdr}
+ team.h
+ achievements.h
binds.h
ui_hwform.h
KB.h
hwconsts.h
+ sdlkeys.h
)
set(hwfr_rez hedgewars.qrc)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/Doxyfile Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1679 @@
+# Doxyfile 1.7.3
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "Hedgewars Qt-Frontend"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = $(PROJECT_NUMBER)
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF = "The default frontend of hedgewars."
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is
+# included in the documentation. The maximum height of the logo should not
+# exceed 55 pixels and the maximum width should not exceed 200 pixels.
+# Doxygen will copy the logo to the output directory.
+
+PROJECT_LOGO = res/teamicon2.png
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = $(OUTPUT_DIRECTORY)
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful if your file system
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES = "repo{1}=http://code.google.com/p/hedgewars/source/browse/QTfrontend/\1"
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also makes the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penalty.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will roughly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespaces are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a
+# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
+# will still accept a match between prototype and implementation in such cases.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or macro consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and macros in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = NO
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# The WARN_NO_PARAMDOC option can be enabled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT =
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
+# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
+# *.f90 *.f *.for *.vhd *.vhdl
+
+FILE_PATTERNS =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty or if
+# non of the patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
+# and it is also possible to disable source filtering for a specific pattern
+# using *.ext= (so without naming a filter). This option only has effect when
+# FILTER_SOURCE_FILES is enabled.
+
+FILTER_SOURCE_PATTERNS =
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP = YES
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE = org.hedgewars
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+# will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [0,1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+# Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
+
+ENUM_VALUES_PER_LINE = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
+# (see http://www.mathjax.org) which uses client side Javascript for the
+# rendering instead of using prerendered bitmaps. Use this if you do not
+# have LaTeX installed or if you want to formulas look prettier in the HTML
+# output. When enabled you also need to install MathJax separately and
+# configure the path to it using the MATHJAX_RELPATH option.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you need to specify the location relative to the
+# HTML output directory using the MATHJAX_RELPATH option. The destination
+# directory should contain the MathJax.js script. For instance, if the mathjax
+# directory is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing
+# MathJax, but it is strongly recommended to install a local copy of MathJax
+# before deployment.
+
+MATHJAX_RELPATH = http://www.mathjax.org/mathjax
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvantages are that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all references to function-like macros
+# that are alone on a line, have an all uppercase name, and do not end with a
+# semicolon, because these will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option also works with HAVE_DOT disabled, but it is recommended to
+# install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS = 0
+
+# By default doxygen will write a font called Helvetica to the output
+# directory and reference it in all dot files that doxygen generates.
+# When you want a differently looking font you can specify the font name
+# using DOT_FONTNAME. You need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will generate a graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, svg, gif or svg.
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the
+# \mscfile command).
+
+MSCFILE_DIRS =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
--- a/QTfrontend/HWApplication.h Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/HWApplication.h Fri Oct 28 18:26:17 2011 +0200
@@ -25,6 +25,14 @@
class HWForm;
+/**
+ * @brief Main class of the Qt application.
+ *
+ * By default uses :res/css/qt.css as style sheet for the main form.
+ * See \repo{res/css/qt.css} for a more detailed description.
+ *
+ * @see http://doc.qt.nokia.com/4.5/stylesheet.html
+ */
class HWApplication : public QApplication
{
Q_OBJECT
--- a/QTfrontend/SDLs.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "SDLs.h"
-
-#include "SDL.h"
-#include "SDL_mixer.h"
-#include "hwconsts.h"
-#include "HWApplication.h"
-
-
-extern char sdlkeys[1024][2][128];
-extern char xb360buttons[][128];
-extern char xb360dpad[128];
-extern char xbox360axes[][128];
-
-
-SDLInteraction::SDLInteraction()
-{
-
- SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
-
- musicInitialized = 0;
- music = NULL;
- if(SDL_NumJoysticks())
- addGameControllerKeys();
- SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
-}
-
-SDLInteraction::~SDLInteraction()
-{
- if (musicInitialized == 1) {
- if (music != NULL)
- Mix_FreeMusic(music);
- Mix_CloseAudio();
- }
- SDL_Quit();
-}
-
-QStringList SDLInteraction::getResolutions() const
-{
- QStringList result;
-
- SDL_Rect **modes;
-
- modes = SDL_ListModes(NULL, SDL_FULLSCREEN);
-
- if((modes == (SDL_Rect **)0) || (modes == (SDL_Rect **)-1))
- {
- result << "640x480";
- } else
- {
- for(int i = 0; modes[i]; ++i)
- if ((modes[i]->w >= 640) && (modes[i]->h >= 480))
- result << QString("%1x%2").arg(modes[i]->w).arg(modes[i]->h);
- }
-
- return result;
-}
-
-void SDLInteraction::addGameControllerKeys() const
-{
- QStringList result;
-
- int i = 0;
- while(i < 1024 && sdlkeys[i][1][0] != '\0')
- i++;
-
- // Iterate through all game controllers
- for(int jid = 0; jid < SDL_NumJoysticks(); jid++)
- {
- SDL_Joystick* joy = SDL_JoystickOpen(jid);
-
- // Retrieve the game controller's name and strip "Controller (...)" that's added by some drivers (English only)
- QString joyname = QString(SDL_JoystickName(jid)).replace(QRegExp("^Controller \\((.*)\\)$"), "\\1");
-
- // Connected Xbox 360 controller? Use specific button names then
- // Might be interesting to add 'named' buttons for the most often used gamepads
- bool isxb = joyname.contains("Xbox 360");
-
- // This part of the string won't change for multiple keys/hats, so keep it
- QString prefix = QString("%1 (%2): ").arg(joyname).arg(jid + 1);
-
- // Register entries for missing axes not assigned to sticks of this joystick/gamepad
- for(int aid = 0; aid < SDL_JoystickNumAxes(joy) && i < 1021; aid++)
- {
- // Again store the part of the string not changing for multiple uses
- QString axis = prefix + HWApplication::translate("binds (keys)", "Axis") + QString(" %1 ").arg(aid + 1);
-
- // Entry for "Axis Up"
- sprintf(sdlkeys[i][0], "j%da%du", jid, aid);
- sprintf(sdlkeys[i++][1], "%s", ((isxb && aid < 5) ? (prefix + HWApplication::translate("binds (keys)", xbox360axes[aid * 2])) : axis + HWApplication::translate("binds (keys)", "(Up)")).toUtf8().constData());
-
- // Entry for "Axis Down"
- sprintf(sdlkeys[i][0], "j%da%dd", jid, aid);
- sprintf(sdlkeys[i++][1], "%s", ((isxb && aid < 5) ? (prefix + HWApplication::translate("binds (keys)", xbox360axes[aid * 2 + 1])) : axis + HWApplication::translate("binds (keys)", "(Down)")).toUtf8().constData());
- }
-
- // Register entries for all coolie hats of this joystick/gamepad
- for(int hid = 0; hid < SDL_JoystickNumHats(joy) && i < 1019; hid++)
- {
- // Again store the part of the string not changing for multiple uses
- QString hat = prefix + (isxb ? (HWApplication::translate("binds (keys)", xb360dpad) + QString(" ")) : HWApplication::translate("binds (keys)", "Hat") + QString(" %1 ").arg(hid + 1));
-
- // Entry for "Hat Up"
- sprintf(sdlkeys[i][0], "j%dh%du", jid, hid);
- sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Up)")).toUtf8().constData());
-
- // Entry for "Hat Down"
- sprintf(sdlkeys[i][0], "j%dh%dd", jid, hid);
- sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Down)")).toUtf8().constData());
-
- // Entry for "Hat Left"
- sprintf(sdlkeys[i][0], "j%dh%dl", jid, hid);
- sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Left)")).toUtf8().constData());
-
- // Entry for "Hat Right"
- sprintf(sdlkeys[i][0], "j%dh%dr", jid, hid);
- sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Right)")).toUtf8().constData());
- }
-
- // Register entries for all buttons of this joystick/gamepad
- for(int bid = 0; bid < SDL_JoystickNumButtons(joy) && i < 1022; bid++)
- {
- // Buttons
- sprintf(sdlkeys[i][0], "j%db%d", jid, bid);
- sprintf(sdlkeys[i++][1], "%s", (prefix + ((isxb && bid < 10) ? (HWApplication::translate("binds (keys)", xb360buttons[bid]) + QString(" ")) : HWApplication::translate("binds (keys)", "Button") + QString(" %1").arg(bid + 1))).toUtf8().constData());
- }
- // Close the game controller as we no longer need it
- SDL_JoystickClose(joy);
- }
-
- // Terminate the list
- sdlkeys[i][0][0] = '\0';
- sdlkeys[i][1][0] = '\0';
-}
-
-void SDLInteraction::SDLMusicInit()
-{
- if (musicInitialized == 0) {
- SDL_Init(SDL_INIT_AUDIO);
- Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024);
- musicInitialized = 1;
- }
-}
-
-
-void SDLInteraction::StartMusic()
-{
- SDLMusicInit();
- QFile tmpfile;
-
- tmpfile.setFileName(cfgdir->absolutePath() + "/Data/Music/main_theme.ogg");
- if (!tmpfile.exists()) tmpfile.setFileName(datadir->absolutePath() + "/Music/main_theme.ogg");
- if (music == NULL) {
- music = Mix_LoadMUS(QFileInfo(tmpfile).absoluteFilePath().toLocal8Bit().constData());
-
- }
- Mix_VolumeMusic(MIX_MAX_VOLUME - 28);
- Mix_FadeInMusic(music, -1, 1750);
-}
-
-void SDLInteraction::StopMusic()
-{
- if (music != NULL) {
- // fade out music to finish 0,5 seconds from now
- while(!Mix_FadeOutMusic(1000) && Mix_PlayingMusic()) {
- SDL_Delay(100);
- }
- }
-}
-
--- a/QTfrontend/SDLs.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef SDLS_H
-#define SDLS_H
-
-
-#include <QStringList>
-#include "SDL_mixer.h"
-
-
-class SDLInteraction : public QObject
-{
- Q_OBJECT
-
-private:
- Mix_Music *music;
- int musicInitialized;
-
-public:
- SDLInteraction();
- ~SDLInteraction();
- QStringList getResolutions() const;
- void addGameControllerKeys() const;
- void StartMusic();
- void StopMusic();
- void SDLMusicInit();
-};
-
-
-#endif
-
--- a/QTfrontend/SquareLabel.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QPaintEvent>
-#include <QPainter>
-#include "SquareLabel.h"
-#include "hwform.h"
-
-SquareLabel::SquareLabel(QWidget * parent) :
- QWidget(parent)
-{
- if(frontendEffects) setAttribute(Qt::WA_PaintOnScreen, true);
-}
-
-void SquareLabel::paintEvent(QPaintEvent * event)
-{
- Q_UNUSED(event);
-
- QPainter painter(this);
- int pixsize;
- if (width() > height()) {
- pixsize = height();
- painter.translate((width() - pixsize) / 2, 0);
- } else {
- pixsize = width();
- painter.translate(0, (height() - pixsize) / 2);
- }
- painter.drawPixmap(0, 0, pixsize, pixsize, pixmap.scaled(pixsize, pixsize, Qt::KeepAspectRatio));
-}
-
-void SquareLabel::setPixmap(const QPixmap & pixmap)
-{
- this->pixmap = pixmap;
- repaint();
-}
--- a/QTfrontend/SquareLabel.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _SQUARELABEL_H
-#define _SQUARELABEL_H
-
-#include <QWidget>
-#include <QPixmap>
-
-class SquareLabel : public QWidget
-{
- Q_OBJECT
-
-public:
- SquareLabel(QWidget * parent = 0);
-
- void setPixmap(const QPixmap & pixmap);
-protected:
- virtual void paintEvent(QPaintEvent * event);
-
-private:
- QPixmap pixmap;
-
-};
-
-#endif // _SQUARELABEL_H
--- a/QTfrontend/about.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QLabel>
-#include <QTextBrowser>
-#include "about.h"
-#include "hwconsts.h"
-
-About::About(QWidget * parent) :
- QWidget(parent)
-{
- QGridLayout *mainLayout = new QGridLayout(this);
-
- QLabel *imageLabel = new QLabel;
- QImage image(":/res/Hedgehog.png");
- imageLabel->setPixmap(QPixmap::fromImage(image));
- imageLabel->setScaledContents(true);
- imageLabel->setMinimumWidth(2.8);
- imageLabel->setMaximumWidth(280);
- imageLabel->setMinimumHeight(30);
- imageLabel->setMaximumHeight(300);
-
- mainLayout->addWidget(imageLabel, 0, 0, 2, 1);
-
- QLabel *lbl1 = new QLabel(this);
- lbl1->setOpenExternalLinks(true);
- lbl1->setText(
- "<style type=\"text/css\">"
- "a { color: #ffcc00; }"
-// "a:hover { color: yellow; }"
- "</style>"
- "<div align=\"center\"><h1>Hedgewars</h1>"
- "<h3>" + QLabel::tr("Version") + " " + *cVersionString + "</h3>"
- "<p><a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a></p><br>" +
- QLabel::tr("This program is distributed under the GNU General Public License") +
- "</div>"
- );
- lbl1->setWordWrap(true);
- mainLayout->addWidget(lbl1, 0, 1);
-
- QTextBrowser *lbl2 = new QTextBrowser(this);
-
- lbl2->setOpenExternalLinks(true);
- lbl2->setText(
- "<style type=\"text/css\">"
- "a { color: #ffcc00; }"
-// "a:hover { color: yellow; }"
- "</style>" +
- QString("<h2>") +
- QLabel::tr("Developers:") +
- "</h2><p>"
- "Engine, frontend, net server: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
- "Many frontend improvements: Igor Ulyanov <<a href=\"mailto:disinbox@gmail.com\">disinbox@gmail.com</a>><br>"
- "Many engine and frontend improvements: Derek Pomery <<a href=\"mailto:nemo@m8y.org\">nemo@m8y.org</a>><br>"
- "Drill rocket, Ballgun, RC Plane weapons: Martin Boze <<a href=\"mailto:afffect@gmail.com\">afffect@gmail.com</a>><br>"
- "Mine number and time game settings: David A. Cuadrado <<a href=\"mailto:krawek@gmail.com\">krawek@gmail.com</a>><br>"
- "Frontend improvements: Martin Minarik <<a href=\"mailto:ttsmj@pokec.sk\">ttsmj@pokec.sk</a>><br>"
- "Frontend improvements: Kristian Lehmann <<a href=\"mailto:email@thexception.net\">email@thexception.net</a>><br>"
- "Mac OS X/iPhone port, OpenGL-ES conversion: Vittorio Giovara <<a href=\"mailto:vittorio.giovara@gmail.com\">vittorio.giovara@gmail.com</a>><br>"
- "Many engine and frontend improvements (and bugs): Richard Karolyi <<a href=\"mailto:sheepluva@" "ercatec.net\">sheepluva@" "ercatec.net</a>><br>"
- "Gamepad and Lua integration: Mario Liebisch <<a href=\"mailto:mario.liebisch@gmail.com\">mario.liebisch@gmail.com</a>><br>"
- "Many engine improvements and graphics: Carlos Vives <<a href=\"mailto:mail@carlosvives.es\">mail@carlosvives.es</a>><br>"
- "Maze maps: Henning Kühn <<a href=\"mailto:prg@cooco.de\">prg@cooco.de</a>><br>"
- "Engine and frontend improvements: Henrik Rostedt <<a href=\"mailto:henrik.rostedt@gmail.com\">henrik.rostedt@gmail.com</a>><br>"
- "Lua game modes and missions: John Lambert <<a href=\"mailto:redgrinner@gmail.com\">redgrinner@gmail.com</a>><br>"
- "Frontend improvements: Mayur Pawashe <<a href=\"mailto:zorgiepoo@gmail.com\">zorgiepoo@gmail.com</a>><br>"
- "Android port: Richard Deurwaarder <<a href=\"mailto:xeli@xelification.com\">xeli@xelification.com</a>><br>"
- "</p><h2>" +
-
- QLabel::tr("Art:") + "</h2>"
- + QString::fromUtf8(
- "<p>John Dum <<a href=\"mailto:fizzy@gmail.com\">fizzy@gmail.com</a>>"
- "<br>"
- "Joshua Frese <<a href=\"mailto:joshfrese@gmail.com\">joshfrese@gmail.com</a>>"
- "<br>"
- "Stanko Tadić <<a href=\"mailto:stanko@mfhinc.net\">stanko@mfhinc.net</a>>"
- "<br>"
- "Julien Koesten <<a href=\"mailto:julienkoesten@aol.com\">julienkoesten@aol.com</a>>"
- "<br>"
- "Joshua O'Sullivan <<a href=\"mailto:coheedftw@hotmail.co.uk\">coheedftw@hotmail.co.uk</a>>"
- "<br>"
- "Nils Lück <<a href=\"mailto:nils.luck.design@gmail.com\">nils.luck.design@gmail.com</a>>"
- "<br>"
- "Guillaume Englert <<a href=\"mailto:genglert@hybird.org\">genglert@hybird.org</a>>"
- "<br>"
- "Hats: Trey Perry <<a href=\"mailto:tx.perry.j@gmail.com\">tx.perry.j@gmail.com</a>>"
- "</p><h2>") +
- QLabel::tr("Sounds:") + "</h2>"
- "Hedgehogs voice: Stephen Alexander <<a href=\"mailto:ArmagonNo1@gmail.com\">ArmagonNo1@gmail.com</a>>"
- "<br>"
- "John Dum <<a href=\"mailto:fizzy@gmail.com\">fizzy@gmail.com</a>>"
- "<br>"
- "Jonatan Nilsson <<a href=\"mailto:jonatanfan@gmail.com\">jonatanfan@gmail.com</a>>"
- "<br>"
- "Daniel Martin <<a href=\"mailto:elhombresinremedio@gmail.com\">elhombresinremedio@gmail.com</a>>"
- "</p><h2>" +
-
- QLabel::tr("Translations:") + "</h2><p>"
- + QString::fromUtf8(
- "Brazilian Portuguese: Romulo Fernandes Machado <<a href=\"mailto:abra185@gmail.com\">abra185@gmail.com</a>><br>"
- "Bulgarian: Svetoslav Stefanov<br>"
- "Czech: Petr ŘezáÄek <<a href=\"mailto:rezacek@gmail.com\">rezacek@gmail.com</a>><br>"
- "Chinese: Jie Luo <<a href=\"mailto:lililjlj@gmail.com\">lililjlj@gmail.com</a>><br>"
- "English: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
- "Finnish: Nina Kuisma <<a href=\"mailto:ninnnu@gmail.com\">ninnnu@gmail.com</a>><br>"
- "French: Antoine Turmel <<a href=\"mailto:geekshadow@gmail.com\">geekshadow@gmail.com</a>><br>"
- "German: Peter Hüwe <<a href=\"mailto:PeterHuewe@gmx.de\">PeterHuewe@gmx.de</a>>, Mario Liebisch <<a href=\"mailto:mario.liebisch@gmail.com\">mario.liebisch@gmail.com</a>>, Richard Karolyi <<a href=\"mailto:sheepluva@" "ercatec.net\">sheepluva@" "ercatec.net</a>><br>"
- "Greek: <<a href=\"mailto:talos_kriti@yahoo.gr\">talos_kriti@yahoo.gr</a>><br>"
- "Italian: Luca Bonora <<a href=\"mailto:bonora.luca@gmail.com\">bonora.luca@gmail.com</a>>, Marco Bresciani<br>"
- "Japanese: ADAM Etienne <<a href=\"mailto:etienne.adam@gmail.com\">etienne.adam@gmail.com</a>><br>"
- "Korean: Anthony Bellew <<a href=\"mailto:webmaster@anthonybellew.com\">webmaster@anthonybellew.com</a>><br>"
- "Lithuanian: Lukas Urbonas <<a href=\"mailto:lukasu08@gmail.com\">lukasu08@gmail.com</a>><br>"
- "Polish: Maciej Mroziński <<a href=\"mailto:mynick2@o2.pl\">mynick2@o2.pl</a>>, Wojciech Latkowski <<a href=\"mailto:magik17l@gmail.com\">magik17l@gmail.com</a>>, Piotr Mitana, Maciej Górny<br>"
- "Portuguese: Fábio Canário <<a href=\"mailto:inufabie@gmail.com\">inufabie@gmail.com</a>><br>"
- "Russian: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
- "Slovak: Jose Riha<br>"
- "Spanish: Carlos Vives <<a href=\"mailto:mail@carlosvives.es\">mail@carlosvives.es</a>><br>"
- "Swedish: Niklas Grahn <<a href=\"mailto:raewolusjoon@yaoo.com\">raewolusjoon@yaoo.com</a>>, Henrik Rostedt <<a href=\"mailto:henrik.rostedt@gmail.com\">henrik.rostedt@gmail.com</a>><br>"
- "Ukrainian: Eugene V. Lyubimkin <<a href=\"mailto:jackyf.devel@gmail.com\">jackyf.devel@gmail.com</a>>, Igor Paliychuk <<a href=\"mailto:mansonigor@gmail.com\">mansonigor@gmail.com</a>>, Eugene Sakara <<a href=\"mailto:eresid@gmail.com\">eresid@gmail.com</a>>"
- "</p><h2>") +
-
- QLabel::tr("Special thanks:") + "</h2><p>"
- "Aleksey Andreev <<a href=\"mailto:blaknayabr@gmail.com\">blaknayabr@gmail.com</a>><br>"
- "Aleksander Rudalev <<a href=\"mailto:alexv@pomorsu.ru\">alexv@pomorsu.ru</a>><br>"
- "Natasha Korotaeva <<a href=\"mailto:layout@pisem.net\">layout@pisem.net</a>><br>"
- "Adam Higerd (aka ahigerd at FreeNode)"
- "</p>"
- );
- mainLayout->addWidget(lbl2, 1, 1);
-}
--- a/QTfrontend/about.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _ABOUT_H
-#define _ABOUT_H
-
-#include <QWidget>
-
-
-class About : public QWidget
-{
- Q_OBJECT
-
-public:
- About(QWidget * parent = 0);
-};
-
-#endif // _ABOUT_H
--- a/QTfrontend/ammoSchemeModel.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,786 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QDebug>
-#include <QModelIndex>
-
-#include "ammoSchemeModel.h"
-#include "hwconsts.h"
-
-QList<QVariant> defaultScheme = QList<QVariant>()
- << QVariant("Default") // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(4) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
-AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) :
- QAbstractTableModel(parent),
- fileConfig(fileName, QSettings::IniFormat)
-{
- predefSchemesNames = QStringList()
- << "Default"
- << "Pro Mode"
- << "Shoppa"
- << "Clean Slate"
- << "Minefield"
- << "Barrel Mayhem"
- << "Tunnel Hogs"
- << "Fort Mode"
- << "Timeless"
- << "Thinking with Portals"
- << "King Mode"
- ;
-
- numberOfDefaultSchemes = predefSchemesNames.size();
-
- spNames = QStringList()
- << "name" // 0
- << "fortsmode" // 1
- << "divteams" // 2
- << "solidland" // 3
- << "border" // 4
- << "lowgrav" // 5
- << "laser" // 6
- << "invulnerability" // 7
- << "resethealth" // 8
- << "vampiric" // 9
- << "karma" // 10
- << "artillery" // 11
- << "randomorder" // 12
- << "king" // 13
- << "placehog" // 14
- << "sharedammo" // 15
- << "disablegirders" // 16
- << "disablelandobjects" // 17
- << "aisurvival" // 18
- << "infattack" // 19
- << "resetweps" // 20
- << "perhogammo" // 21
- << "disablewind" // 22
- << "morewind" // 23
- << "tagteam" // 24
- << "bottomborder" // 25
- << "damagefactor" // 26
- << "turntime" // 27
- << "health" // 28
- << "suddendeath" // 29
- << "caseprobability" // 30
- << "minestime" // 31
- << "minesnum" // 32
- << "minedudpct" // 33
- << "explosives" // 34
- << "healthprobability" // 35
- << "healthcaseamount" // 36
- << "waterrise" // 37
- << "healthdecrease" // 38
- << "ropepct" // 39
- << "getawaytime" // 40
- ;
-
- QList<QVariant> proMode;
- proMode
- << predefSchemesNames[1] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(15) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> shoppa;
- shoppa
- << predefSchemesNames[2] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(true) // solid land 3
- << QVariant(true) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(true) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(50) // sudden death 29
- << QVariant(1) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(0) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> cleanslate;
- cleanslate
- << predefSchemesNames[3] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(true) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(true) // inf. attack 19
- << QVariant(true) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(4) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> minefield;
- minefield
- << predefSchemesNames[4] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(50) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(0) // mines time 31
- << QVariant(80) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> barrelmayhem;
- barrelmayhem
- << predefSchemesNames[5] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(0) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(80) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> tunnelhogs;
- tunnelhogs
- << predefSchemesNames[6] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(true) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(true) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(10) // mines number 32
- << QVariant(10) // mine dud pct 33
- << QVariant(10) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> forts;
- forts
- << predefSchemesNames[7] // name 0
- << QVariant(true) // fortsmode 1
- << QVariant(true) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(true) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> timeless;
- timeless
- << predefSchemesNames[8] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(true) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(9999) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(5) // mines number 32
- << QVariant(10) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(30) // health case amt 36
- << QVariant(0) // water rise amt 37
- << QVariant(0) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> thinkingportals;
- thinkingportals
- << predefSchemesNames[9] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(true) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(2) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(5) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(5) // explosives 34
- << QVariant(25) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
- QList<QVariant> kingmode;
- kingmode
- << predefSchemesNames[10] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(true) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(4) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(35) // health case pct 35
- << QVariant(25) // health case amt 36
- << QVariant(47) // water rise amt 37
- << QVariant(5) // health dec amt 38
- << QVariant(100) // rope modfier 39
- << QVariant(100) // get away time 40
- ;
-
-
- schemes.append(defaultScheme);
- schemes.append(proMode);
- schemes.append(shoppa);
- schemes.append(cleanslate);
- schemes.append(minefield);
- schemes.append(barrelmayhem);
- schemes.append(tunnelhogs);
- schemes.append(forts);
- schemes.append(timeless);
- schemes.append(thinkingportals);
- schemes.append(kingmode);
-
-
- int size = fileConfig.beginReadArray("schemes");
- for (int i = 0; i < size; ++i) {
- fileConfig.setArrayIndex(i);
-
- if (!predefSchemesNames.contains(fileConfig.value(spNames[0]).toString()))
- {
- QList<QVariant> scheme;
-
- for (int k = 0; k < spNames.size(); ++k)
- scheme << fileConfig.value(spNames[k], defaultScheme[k]);
-
- schemes.append(scheme);
- }
- }
- fileConfig.endArray();
-}
-
-QVariant AmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- Q_UNUSED(section);
- Q_UNUSED(orientation);
- Q_UNUSED(role);
-
- return QVariant();
-}
-
-int AmmoSchemeModel::rowCount(const QModelIndex &parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return schemes.size();
-}
-
-int AmmoSchemeModel::columnCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return defaultScheme.size();
-}
-
-Qt::ItemFlags AmmoSchemeModel::flags(const QModelIndex & index) const
-{
- Q_UNUSED(index);
-
- return
- Qt::ItemIsEnabled
- | Qt::ItemIsSelectable
- | Qt::ItemIsEditable;
-}
-
-bool AmmoSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role)
-{
- if (!index.isValid() || index.row() < numberOfDefaultSchemes
- || index.row() >= schemes.size()
- || index.column() >= defaultScheme.size()
- || role != Qt::EditRole)
- return false;
-
- schemes[index.row()][index.column()] = value;
-
- emit dataChanged(index, index);
- return true;
-}
-
-bool AmmoSchemeModel::insertRows(int row, int count, const QModelIndex & parent)
-{
- Q_UNUSED(count);
-
- beginInsertRows(parent, schemes.size(), schemes.size());
-
- if (row == -1)
- {
- QList<QVariant> newScheme = defaultScheme;
- newScheme[0] = QVariant(tr("new"));
- schemes.insert(schemes.size(), newScheme);
- }
- else
- {
- QList<QVariant> newScheme = schemes[row];
- newScheme[0] = QVariant(tr("copy of") + " " + newScheme[0].toString());
- schemes.insert(schemes.size(), newScheme);
- }
-
- endInsertRows();
-
- return true;
-}
-
-bool AmmoSchemeModel::removeRows(int row, int count, const QModelIndex & parent)
-{
- if(count != 1
- || row < numberOfDefaultSchemes
- || row >= schemes.size())
- return false;
-
- beginRemoveRows(parent, row, row);
-
- schemes.removeAt(row);
-
- endRemoveRows();
-
- return true;
-}
-
-QVariant AmmoSchemeModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid() || index.row() < 0
- || index.row() >= schemes.size()
- || index.column() >= defaultScheme.size()
- || (role != Qt::EditRole && role != Qt::DisplayRole)
- )
- return QVariant();
-
- return schemes[index.row()][index.column()];
-}
-
-void AmmoSchemeModel::Save()
-{
- fileConfig.beginWriteArray("schemes", schemes.size() - numberOfDefaultSchemes);
-
- for (int i = 0; i < schemes.size() - numberOfDefaultSchemes; ++i) {
- fileConfig.setArrayIndex(i);
-
- QList<QVariant> scheme = schemes[i + numberOfDefaultSchemes];
-
- for (int k = 0; k < scheme.size(); ++k)
- fileConfig.setValue(spNames[k], scheme[k]);
- }
- fileConfig.endArray();
-}
-
-
-NetAmmoSchemeModel::NetAmmoSchemeModel(QObject * parent) :
- QAbstractTableModel(parent)
-{
- netScheme = defaultScheme;
-}
-
-QVariant NetAmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- Q_UNUSED(section);
- Q_UNUSED(orientation);
- Q_UNUSED(role);
-
- return QVariant();
-}
-
-int NetAmmoSchemeModel::rowCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return 1;
-}
-
-int NetAmmoSchemeModel::columnCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return defaultScheme.size();
-}
-
-QVariant NetAmmoSchemeModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid() || index.row() < 0
- || index.row() > 1
- || index.column() >= defaultScheme.size()
- || (role != Qt::EditRole && role != Qt::DisplayRole)
- )
- return QVariant();
-
- return netScheme[index.column()];
-}
-
-void NetAmmoSchemeModel::setNetSchemeConfig(QStringList & cfg)
-{
- if(cfg.size() != netScheme.size())
- {
- qWarning("Incorrect scheme cfg size");
- return;
- }
-
- for(int i = 0; i < cfg.size(); ++i)
- netScheme[i] = QVariant(cfg[i]);
-
- reset();
-}
--- a/QTfrontend/ammoSchemeModel.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _AMMO_SCHEME_MODEL_INCLUDED
-#define _AMMO_SCHEME_MODEL_INCLUDED
-
-#include <QSettings>
-#include <QAbstractTableModel>
-#include <QStringList>
-#include <QList>
-
-class AmmoSchemeModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- AmmoSchemeModel(QObject * parent, const QString & fileName);
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- int rowCount(const QModelIndex & parent) const;
- int columnCount(const QModelIndex & parent) const;
- Qt::ItemFlags flags(const QModelIndex & index) const;
- bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
- bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex());
- bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
- QVariant data(const QModelIndex &index, int role) const;
-
- int numberOfDefaultSchemes;
- QStringList predefSchemesNames;
- QStringList spNames;
-
-public slots:
- void Save();
-
-signals:
- void dataChanged(const QModelIndex & topLeft, const QModelIndex & bottomRight);
-
-protected:
- QList< QList<QVariant> > schemes;
-
-private:
- QSettings fileConfig;
-};
-
-class NetAmmoSchemeModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- NetAmmoSchemeModel(QObject * parent);
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- int rowCount(const QModelIndex & parent) const;
- int columnCount(const QModelIndex & parent) const;
- QVariant data(const QModelIndex &index, int role) const;
-
-public slots:
- void setNetSchemeConfig(QStringList & cfg);
-
-private:
- QList<QVariant> netScheme;
-};
-
-#endif // _AMMO_SCHEME_MODEL_INCLUDED
--- a/QTfrontend/bgwidget.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "bgwidget.h"
-
-SpritePosition::SpritePosition(QWidget * parent, int sh)
-{
- wParent = parent;
- iSpriteHeight = sh;
- reset();
-}
-
-SpritePosition::~SpritePosition()
-{
-}
-
-void SpritePosition::move()
-{
- fX += fXMov;
- fY += fYMov;
- iAngle += 4;
- if (iAngle >= 360) iAngle = 0;
- if (fY > wParent->height()) reset();
-}
-
-void SpritePosition::reset()
-{
- fY = -1 * iSpriteHeight;
- fX = (qrand() % ((int)(wParent->width() * 1.5))) - wParent->width()/2;
- fYMov = ((qrand() % 400)+300) / 100.0f;
- fXMov = fYMov * 0.2f+((qrand()%100)/100.0f * 0.6f); //so between 0.2 and 0.6, or 0.5 +/- 0.3
- iAngle = qrand() % 360;
-}
-
-QPoint SpritePosition::pos()
-{
- return QPoint((int)fX,(int)fY);
-}
-
-int SpritePosition::getAngle()
-{
- return iAngle;
-}
-
-void SpritePosition::init()
-{
- fY = qrand() % (wParent->height() + 1);
- fX = qrand() % (wParent->width() + 1);
-}
-
-BGWidget::BGWidget(QWidget * parent) : QWidget(parent)
-{
- setAttribute(Qt::WA_NoSystemBackground, true);
- sprite.load(":/res/Star.png");
-
- setAutoFillBackground(false);
-
- for (int i = 0; i < SPRITE_MAX; i++) spritePositions[i] = new SpritePosition(this, sprite.height());
-
- for (int i = 0; i < 360; i++)
- {
- rotatedSprites[i] = new QImage(sprite.width(), sprite.height(), QImage::Format_ARGB32);
- rotatedSprites[i]->fill(0);
-
- QPoint translate(sprite.width()/2, sprite.height()/2);
-
- QPainter p;
- p.begin(rotatedSprites[i]);
- // p.setRenderHint(QPainter::Antialiasing);
- p.setRenderHint(QPainter::SmoothPixmapTransform);
- p.translate(translate.x(), translate.y());
- p.rotate(i);
- p.translate(-1*translate.x(), -1*translate.y());
- p.drawImage(0, 0, sprite);
- }
-
- timerAnimation = new QTimer();
- connect(timerAnimation, SIGNAL(timeout()), this, SLOT(animate()));
- timerAnimation->setInterval(ANIMATION_INTERVAL);
-}
-
-BGWidget::~BGWidget()
-{
- for (int i = 0; i < SPRITE_MAX; i++) delete spritePositions[i];
- for (int i = 0; i < 360; i++) delete rotatedSprites[i];
- delete timerAnimation;
-}
-
-void BGWidget::paintEvent(QPaintEvent *event)
-{
- Q_UNUSED(event);
-
- QPainter p;
- p.begin(this);
- //p.setRenderHint(QPainter::Antialiasing);
- for (int i = 0; i < SPRITE_MAX; i++)
- {
- QPoint point = spritePositions[i]->pos();
- p.drawImage(point.x(), point.y(), *rotatedSprites[spritePositions[i]->getAngle()]);
- }
- p.end();
-}
-
-void BGWidget::animate()
-{
- for (int i = 0; i < SPRITE_MAX; i++)
- {
- // bottom edge of star *seems* clipped, but in fact, if I switch to just plain old repaint()/update() it is still clipped - artifact of transform? As for 5, is arbitrary number. 4 was noticeably clipping, 5 seemed same as update() - I assume extra room is due to rotation and value really should be calculated proportional to width/height
- update(spritePositions[i]->pos().x(),spritePositions[i]->pos().y(), sprite.width()+5, sprite.height()+5);
- spritePositions[i]->move();
- }
-}
-
-void BGWidget::startAnimation()
-{
- timerAnimation->start();
-}
-
-void BGWidget::stopAnimation()
-{
- timerAnimation->stop();
-}
-
-void BGWidget::init()
-{
- for (int i = 0; i < SPRITE_MAX; i++) spritePositions[i]->init();
-}
--- a/QTfrontend/bgwidget.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef BGWIDGET_H
-#define BGWIDGET_H
-
-#include <QWidget>
-//#include <QGLWidget>
-#include <QPainter>
-#include <QTimer>
-#include <QPaintEvent>
-#include <QTime>
-#include <QPoint>
-
-#define SPRITE_MAX 12
-
-#define ANIMATION_INTERVAL 40
-
-class SpritePosition
-{
-public:
- SpritePosition(QWidget * parent, int sh);
- ~SpritePosition();
-private:
- float fX;
- float fY;
- float fXMov;
- float fYMov;
- int iAngle;
- QWidget * wParent;
- int iSpriteHeight;
-public:
- void move();
- void reset();
- QPoint pos();
- int getAngle();
- void init();
-};
-
-class BGWidget : public QWidget
-{
- Q_OBJECT
-public:
- BGWidget(QWidget * parent);
- ~BGWidget();
- void startAnimation();
- void stopAnimation();
- void init();
-private:
- QImage sprite;
- QTimer * timerAnimation;
- SpritePosition * spritePositions[SPRITE_MAX];
- QImage * rotatedSprites[360];
-protected:
- void paintEvent(QPaintEvent * event);
-private slots:
- void animate();
-};
-
-#endif // BGWIDGET_H
--- a/QTfrontend/chatwidget.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,584 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QDesktopServices>
-#include <QTextBrowser>
-#include <QLineEdit>
-#include <QAction>
-#include <QTextDocument>
-#include <QDir>
-#include <QSettings>
-#include <QFile>
-#include <QTextStream>
-#include <QMenu>
-#include <QCursor>
-#include <QScrollBar>
-#include <QItemSelectionModel>
-#include <QStringList>
-
-#include "hwconsts.h"
-#include "SDLs.h"
-#include "gameuiconfig.h"
-#include "chatwidget.h"
-
-ListWidgetNickItem::ListWidgetNickItem(const QString& nick, bool isFriend, bool isIgnored) : QListWidgetItem(nick)
-{
- this->aFriend = isFriend;
- this->isIgnored = isIgnored;
-}
-
-void ListWidgetNickItem::setFriend(bool isFriend)
-{
- this->aFriend = isFriend;
-}
-
-void ListWidgetNickItem::setIgnored(bool isIgnored)
-{
- this->isIgnored = isIgnored;
-}
-
-bool ListWidgetNickItem::isFriend()
-{
- return aFriend;
-}
-
-bool ListWidgetNickItem::ignored()
-{
- return isIgnored;
-}
-
-bool ListWidgetNickItem::operator< (const QListWidgetItem & other) const
-{
- // case in-sensitive comparison of the associated strings
- // chars that are no letters are sorted at the end of the list
-
- ListWidgetNickItem otherNick = const_cast<ListWidgetNickItem &>(dynamic_cast<const ListWidgetNickItem &>(other));
-
- // ignored always down
- if (isIgnored != otherNick.ignored())
- return !isIgnored;
-
- // friends always up
- if (aFriend != otherNick.isFriend())
- return aFriend;
-
- QString txt1 = text().toLower();
- QString txt2 = other.text().toLower();
-
- bool firstIsShorter = (txt1.size() < txt2.size());
- int len = firstIsShorter?txt1.size():txt2.size();
-
- for (int i = 0; i < len; i++)
- {
- if (txt1[i] == txt2[i])
- continue;
- if (txt1[i].isLetter() != txt2[i].isLetter())
- return txt1[i].isLetter();
- return (txt1[i] < txt2[i]);
- }
-
- return firstIsShorter;
-}
-
-const char* HWChatWidget::STYLE =
-"\
-a { color:#c8c8ff; }\
-.nick { text-decoration: none; }\
-.UserChat .nick { color:#ffec20; }\
-.FriendChat { color: #08e008; }\
-.FriendChat .nick { color: #20ff20; }\
-.UserJoin { color: #c0c0c0; }\
-.UserJoin .nick { color: #d0d0d0; }\
-.FriendJoin { color: #c0e0c0; }\
-.FriendJoin .nick { color: #d0f0d0; }\
-.UserAction { color: #ff80ff; }\
-.UserAction .nick { color: #ffa0ff; }\
-.FriendAction { color: #ff00ff; }\
-.FriendAction .nick { color: #ff30ff; }\
-.Error { color: #ff0000 }\
-.Warning { color: #ff8000 }\
-.Notice { color: #fefefe }\
-";
-
-HWChatWidget::HWChatWidget(QWidget* parent, QSettings * gameSettings, SDLInteraction * sdli, bool notify) :
- QWidget(parent),
- mainLayout(this)
-{
- this->gameSettings = gameSettings;
- this->sdli = sdli;
- this->notify = notify;
- if(notify && gameSettings->value("frontend/sound", true).toBool()) {
- QFile tmpfile;
- sdli->SDLMusicInit();
- for(int i=0;i<4;i++) {
- tmpfile.setFileName(cfgdir->absolutePath() + "/Data/Sounds/voices/Classic/Hello.ogg");
- if (tmpfile.exists()) sound[i] = Mix_LoadWAV(QFileInfo(tmpfile).absoluteFilePath().toLocal8Bit().constData());
- else sound[i] = Mix_LoadWAV(QString(datadir->absolutePath() +
- "/Sounds/voices/Classic/Hello.ogg").toLocal8Bit().constData());
- }
- }
-
- mainLayout.setSpacing(1);
- mainLayout.setMargin(1);
- mainLayout.setSizeConstraint(QLayout::SetMinimumSize);
- mainLayout.setColumnStretch(0, 76);
- mainLayout.setColumnStretch(1, 24);
-
- chatEditLine = new QLineEdit(this);
- chatEditLine->setMaxLength(300);
- connect(chatEditLine, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
-
- mainLayout.addWidget(chatEditLine, 2, 0);
-
- chatText = new QTextBrowser(this);
- chatText->document()->setDefaultStyleSheet(STYLE);
- chatText->setMinimumHeight(20);
- chatText->setMinimumWidth(10);
- chatText->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- chatText->setOpenLinks(false);
- connect(chatText, SIGNAL(anchorClicked(const QUrl&)),
- this, SLOT(linkClicked(const QUrl&)));
- mainLayout.addWidget(chatText, 0, 0, 2, 1);
-
- chatNicks = new QListWidget(this);
- chatNicks->setMinimumHeight(10);
- chatNicks->setMinimumWidth(10);
- chatNicks->setSortingEnabled(true);
- chatNicks->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- chatNicks->setContextMenuPolicy(Qt::ActionsContextMenu);
- connect(chatNicks, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
- this, SLOT(chatNickDoubleClicked(QListWidgetItem *)));
- connect(chatNicks, SIGNAL(currentRowChanged(int)),
- this, SLOT(chatNickSelected(int)));
-
- mainLayout.addWidget(chatNicks, 0, 1, 3, 1);
-
- acInfo = new QAction(QAction::tr("Info"), chatNicks);
- acInfo->setIcon(QIcon(":/res/info.png"));
- connect(acInfo, SIGNAL(triggered(bool)), this, SLOT(onInfo()));
- acKick = new QAction(QAction::tr("Kick"), chatNicks);
- acKick->setIcon(QIcon(":/res/kick.png"));
- connect(acKick, SIGNAL(triggered(bool)), this, SLOT(onKick()));
- acBan = new QAction(QAction::tr("Ban"), chatNicks);
- acBan->setIcon(QIcon(":/res/ban.png"));
- connect(acBan, SIGNAL(triggered(bool)), this, SLOT(onBan()));
- acFollow = new QAction(QAction::tr("Follow"), chatNicks);
- acFollow->setIcon(QIcon(":/res/follow.png"));
- connect(acFollow, SIGNAL(triggered(bool)), this, SLOT(onFollow()));
- acIgnore = new QAction(QAction::tr("Ignore"), chatNicks);
- acIgnore->setIcon(QIcon(":/res/ignore.png"));
- connect(acIgnore, SIGNAL(triggered(bool)), this, SLOT(onIgnore()));
- acFriend = new QAction(QAction::tr("Add friend"), chatNicks);
- acFriend->setIcon(QIcon(":/res/addfriend.png"));
- connect(acFriend, SIGNAL(triggered(bool)), this, SLOT(onFriend()));
-
- chatNicks->insertAction(0, acFriend);
- chatNicks->insertAction(0, acInfo);
- chatNicks->insertAction(0, acIgnore);
-
- showReady = false;
- setShowFollow(true);
-}
-
-void HWChatWidget::linkClicked(const QUrl & link)
-{
- if (link.scheme() == "http")
- QDesktopServices::openUrl(link);
- if (link.scheme() == "hwnick")
- {
- // decode nick
- const QString& nick = QString::fromUtf8(QByteArray::fromBase64(link.encodedQuery()));
- QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly);
- if (items.size() < 1)
- return;
- QMenu * popup = new QMenu(this);
- // selecting an item will automatically scroll there, so let's save old position
- QScrollBar * scrollBar = chatNicks->verticalScrollBar();
- int oldScrollPos = scrollBar->sliderPosition();
- // select the nick which we want to see the actions for
- chatNicks->setCurrentItem(items[0], QItemSelectionModel::Clear);
- // selecting an item will automatically scroll there, so let's save old position
- scrollBar->setSliderPosition(oldScrollPos);
- // load actions
- popup->addActions(chatNicks->actions());
- // display menu popup at mouse cursor position
- popup->popup(QCursor::pos());
- }
-}
-
-void HWChatWidget::setShowFollow(bool enabled)
-{
- if (enabled) {
- if (!(chatNicks->actions().contains(acFollow)))
- chatNicks->insertAction(acFriend, acFollow);
- }
- else {
- if (chatNicks->actions().contains(acFollow))
- chatNicks->removeAction(acFollow);
- }
-}
-
-void HWChatWidget::loadList(QStringList & list, const QString & file)
-{
- list.clear();
- QFile txt(cfgdir->absolutePath() + "/" + file);
- if(!txt.open(QIODevice::ReadOnly))
- return;
- QTextStream stream(&txt);
- stream.setCodec("UTF-8");
-
- while(!stream.atEnd())
- {
- QString str = stream.readLine();
- if(str.startsWith(";") || str.length() == 0)
- continue;
- list << str.trimmed();
- }
- //readd once we require newer Qt than 4.4
- //list.removeDuplicates();
- txt.close();
-}
-
-void HWChatWidget::saveList(QStringList & list, const QString & file)
-{
- QFile txt(cfgdir->absolutePath() + "/" + file);
- if(!txt.open(QIODevice::WriteOnly | QIODevice::Truncate))
- return;
- QTextStream stream(&txt);
- stream.setCodec("UTF-8");
-
- stream << "; this list is used by Hedgewars - do not edit it unless you know what you're doing!" << endl;
- for(int i = 0; i < list.size(); i++)
- stream << list[i] << endl;
- txt.close();
-}
-
-void HWChatWidget::updateNickItem(QListWidgetItem *nickItem)
-{
- QString nick = nickItem->text();
- ListWidgetNickItem * item = dynamic_cast<ListWidgetNickItem*>(nickItem);
-
- item->setFriend(friendsList.contains(nick, Qt::CaseInsensitive));
- item->setIgnored(ignoreList.contains(nick, Qt::CaseInsensitive));
-
- if(item->ignored())
- {
- item->setIcon(QIcon(showReady ? (item->data(Qt::UserRole).toBool() ? ":/res/chat_ignore_on.png" : ":/res/chat_ignore_off.png") : ":/res/chat_ignore.png"));
- item->setForeground(Qt::gray);
- }
- else if(item->isFriend())
- {
- item->setIcon(QIcon(showReady ? (item->data(Qt::UserRole).toBool() ? ":/res/chat_friend_on.png" : ":/res/chat_friend_off.png") : ":/res/chat_friend.png"));
- item->setForeground(Qt::green);
- }
- else
- {
- item->setIcon(QIcon(showReady ? (item->data(Qt::UserRole).toBool() ? ":/res/chat_default_on.png" : ":/res/chat_default_off.png") : ":/res/chat_default.png"));
- item->setForeground(QBrush(QColor(0xff, 0xcc, 0x00)));
- }
-}
-
-void HWChatWidget::updateNickItems()
-{
- for(int i = 0; i < chatNicks->count(); i++)
- updateNickItem(chatNicks->item(i));
-
- chatNicks->sortItems();
-}
-
-void HWChatWidget::loadLists(const QString & nick)
-{
- loadList(ignoreList, nick.toLower() + "_ignore.txt");
- loadList(friendsList, nick.toLower() + "_friends.txt");
- updateNickItems();
-}
-
-void HWChatWidget::saveLists(const QString & nick)
-{
- saveList(ignoreList, nick.toLower() + "_ignore.txt");
- saveList(friendsList, nick.toLower() + "_friends.txt");
-}
-
-void HWChatWidget::returnPressed()
-{
- QStringList lines = chatEditLine->text().split('\n');
- chatEditLine->clear();
- foreach (const QString &line, lines)
- emit chatLine(line);
-}
-
-
-void HWChatWidget::onChatString(const QString& str)
-{
- onChatString("", str);
-}
-
-const QRegExp HWChatWidget::URLREGEXP = QRegExp("(http://)?(www\\.)?(hedgewars\\.org(/[^ ]*)?)");
-
-void HWChatWidget::onChatString(const QString& nick, const QString& str)
-{
- bool isFriend = false;
-
- if (!nick.isEmpty()) {
- // don't show chat lines that are from ignored nicks
- if (ignoreList.contains(nick, Qt::CaseInsensitive))
- return;
- // friends will get special treatment, of course
- isFriend = friendsList.contains(nick, Qt::CaseInsensitive);
- }
-
- QString formattedStr = Qt::escape(str.mid(1));
- // make hedgewars.org urls actual links
- formattedStr = formattedStr.replace(URLREGEXP, "<a href=\"http://\\3\">\\3</a>");
-
- // "link" nick, but before that encode it in base64 to make sure it can't intefere with html/url syntax
- // the nick is put as querystring as putting it as host would convert it to it's lower case variant
- if(!nick.isEmpty())
- formattedStr.replace("|nick|",QString("<a href=\"hwnick://?%1\" class=\"nick\">%2</a>").arg(QString(nick.toUtf8().toBase64())).arg(nick));
-
- QString cssClass("UserChat");
-
- // check first character for color code and set color properly
- switch (str[0].toAscii()) {
- case 3:
- cssClass = (isFriend ? "FriendJoin" : "UserJoin");
- break;
- case 2:
- cssClass = (isFriend ? "FriendAction" : "UserAction");
- break;
- default:
- if (isFriend)
- cssClass = "FriendChat";
- }
-
- addLine(cssClass,formattedStr);
-}
-
-void HWChatWidget::addLine(const QString& cssClass, QString line)
-{
- if (chatStrings.size() > 250)
- chatStrings.removeFirst();
-
- line = QString("<span class=\"%2\">%1</span>").arg(line).arg(cssClass);
-
- chatStrings.append(line);
-
- chatText->setHtml(chatStrings.join("<br>"));
-
- chatText->moveCursor(QTextCursor::End);
-}
-
-void HWChatWidget::onServerMessage(const QString& str)
-{
- if (chatStrings.size() > 250)
- chatStrings.removeFirst();
-
- chatStrings.append("<hr>" + str + "<hr>");
-
- chatText->setHtml(chatStrings.join("<br>"));
-
- chatText->moveCursor(QTextCursor::End);
-}
-
-void HWChatWidget::nickAdded(const QString& nick, bool notifyNick)
-{
- QListWidgetItem * item = new ListWidgetNickItem(nick, friendsList.contains(nick, Qt::CaseInsensitive), ignoreList.contains(nick, Qt::CaseInsensitive));
- updateNickItem(item);
- chatNicks->addItem(item);
-
- emit nickCountUpdate(chatNicks->count());
-
- if(notifyNick && notify && gameSettings->value("frontend/sound", true).toBool()) {
- Mix_PlayChannel(-1, sound[rand()%4], 0);
- }
-}
-
-void HWChatWidget::nickRemoved(const QString& nick)
-{
- foreach(QListWidgetItem * item, chatNicks->findItems(nick, Qt::MatchExactly))
- chatNicks->takeItem(chatNicks->row(item));
-
- emit nickCountUpdate(chatNicks->count());
-}
-
-void HWChatWidget::clear()
-{
- chatText->clear();
- chatStrings.clear();
- chatNicks->clear();
-}
-
-void HWChatWidget::onKick()
-{
- QListWidgetItem * curritem = chatNicks->currentItem();
- if (curritem)
- emit kick(curritem->text());
-}
-
-void HWChatWidget::onBan()
-{
- QListWidgetItem * curritem = chatNicks->currentItem();
- if (curritem)
- emit ban(curritem->text());
-}
-
-void HWChatWidget::onInfo()
-{
- QListWidgetItem * curritem = chatNicks->currentItem();
- if (curritem)
- emit info(curritem->text());
-}
-
-void HWChatWidget::onFollow()
-{
- QListWidgetItem * curritem = chatNicks->currentItem();
- if (curritem)
- emit follow(curritem->text());
-}
-
-void HWChatWidget::onIgnore()
-{
- QListWidgetItem * curritem = chatNicks->currentItem();
- if(!curritem)
- return;
-
- if(ignoreList.contains(curritem->text(), Qt::CaseInsensitive)) // already on list - remove him
- {
- ignoreList.removeAll(curritem->text().toLower());
- onChatString(HWChatWidget::tr("%1 *** %2 has been removed from your ignore list").arg('\x03').arg(curritem->text()));
- }
- else // not on list - add
- {
- // don't consider ignored people friends
- if(friendsList.contains(curritem->text(), Qt::CaseInsensitive))
- emit onFriend();
-
- // scroll down on first ignore added so that people see where that nick went to
- if (ignoreList.isEmpty())
- chatNicks->scrollToBottom();
-
- ignoreList << curritem->text().toLower();
- onChatString(HWChatWidget::tr("%1 *** %2 has been added to your ignore list").arg('\x03').arg(curritem->text()));
- }
- updateNickItem(curritem); // update icon/sort order/etc
- chatNicks->sortItems();
- chatNickSelected(0); // update context menu
-}
-
-void HWChatWidget::onFriend()
-{
- QListWidgetItem * curritem = chatNicks->currentItem();
- if(!curritem)
- return;
-
- if(friendsList.contains(curritem->text(), Qt::CaseInsensitive)) // already on list - remove him
- {
- friendsList.removeAll(curritem->text().toLower());
- onChatString(HWChatWidget::tr("%1 *** %2 has been removed from your friends list").arg('\x03').arg(curritem->text()));
- }
- else // not on list - add
- {
- // don't ignore the new friend
- if(ignoreList.contains(curritem->text(), Qt::CaseInsensitive))
- emit onIgnore();
-
- // scroll up on first friend added so that people see where that nick went to
- if (friendsList.isEmpty())
- chatNicks->scrollToTop();
-
- friendsList << curritem->text().toLower();
- onChatString(HWChatWidget::tr("%1 *** %2 has been added to your friends list").arg('\x03').arg(curritem->text()));
- }
- updateNickItem(curritem); // update icon/sort order/etc
- chatNicks->sortItems();
- chatNickSelected(0); // update context menu
-}
-
-void HWChatWidget::chatNickDoubleClicked(QListWidgetItem * item)
-{
- Q_UNUSED(item);
-
- QList<QAction *> actions = chatNicks->actions();
- actions.first()->activate(QAction::Trigger);
-}
-
-void HWChatWidget::chatNickSelected(int index)
-{
- Q_UNUSED(index);
-
- QListWidgetItem* item = chatNicks->currentItem();
- if (!item)
- return;
-
- // update context menu labels according to possible action
- if(ignoreList.contains(item->text(), Qt::CaseInsensitive))
- {
- acIgnore->setText(QAction::tr("Unignore"));
- acIgnore->setIcon(QIcon(":/res/unignore.png"));
- }
- else
- {
- acIgnore->setText(QAction::tr("Ignore"));
- acIgnore->setIcon(QIcon(":/res/ignore.png"));
- }
-
- if(friendsList.contains(item->text(), Qt::CaseInsensitive))
- {
- acFriend->setText(QAction::tr("Remove friend"));
- acFriend->setIcon(QIcon(":/res/remfriend.png"));
- }
- else
- {
- acFriend->setText(QAction::tr("Add friend"));
- acFriend->setIcon(QIcon(":/res/addfriend.png"));
- }
-}
-
-void HWChatWidget::setShowReady(bool s)
-{
- showReady = s;
-}
-
-void HWChatWidget::setReadyStatus(const QString & nick, bool isReady)
-{
- QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly);
- if (items.size() != 1)
- {
- qWarning("Bug: cannot find user in chat");
- return;
- }
-
- items[0]->setData(Qt::UserRole, isReady); // bulb status
- updateNickItem(items[0]);
-
- // ensure we're still showing the status bulbs
- showReady = true;
-}
-
-void HWChatWidget::adminAccess(bool b)
-{
- chatNicks->removeAction(acKick);
- chatNicks->removeAction(acBan);
-
- if(b)
- {
- chatNicks->insertAction(0, acKick);
-// chatNicks->insertAction(0, acBan);
- }
-}
--- a/QTfrontend/chatwidget.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _CHAT_WIDGET_INCLUDED
-#define _CHAT_WIDGET_INCLUDED
-
-#include <QWidget>
-#include <QListWidget>
-#include <QString>
-#include <QGridLayout>
-#include <QRegExp>
-
-#include "SDLs.h"
-
-class ListWidgetNickItem;
-class QTextBrowser;
-class QLineEdit;
-class QListWidget;
-class QSettings;
-class SDLInteraction;
-
-// this class is for custom nick sorting
-class ListWidgetNickItem : public QListWidgetItem
-{
-public:
- ListWidgetNickItem(const QString& nick, bool isFriend, bool isIgnored);
- bool operator<(const QListWidgetItem & other) const;
- void setFriend(bool isFriend);
- void setIgnored(bool isIgnored);
- bool isFriend();
- bool ignored();
-
-private:
- bool aFriend;
- bool isIgnored;
-};
-
-class HWChatWidget : public QWidget
-{
- Q_OBJECT
-
- public:
- HWChatWidget(QWidget* parent, QSettings * gameSettings, SDLInteraction * sdli, bool notify);
- void loadLists(const QString & nick);
- void saveLists(const QString & nick);
- void setShowReady(bool s);
- void setShowFollow(bool enabled);
- void addLine(const QString & cssClass, QString line);
- static const char* STYLE;
- QStringList ignoreList, friendsList;
-
-private:
- void loadList(QStringList & list, const QString & file);
- void saveList(QStringList & list, const QString & file);
- void updateNickItem(QListWidgetItem *item);
- void updateNickItems();
- static const QRegExp URLREGEXP;
-
- public slots:
- void onChatString(const QString& str);
- void onChatString(const QString& nick, const QString& str);
- void onServerMessage(const QString& str);
- void nickAdded(const QString& nick, bool notifyNick);
- void nickRemoved(const QString& nick);
- void clear();
- void setReadyStatus(const QString & nick, bool isReady);
- void adminAccess(bool);
-
- signals:
- void chatLine(const QString& str);
- void kick(const QString & str);
- void ban(const QString & str);
- void info(const QString & str);
- void follow(const QString &);
- void nickCountUpdate(int cnt);
-
- private:
- QGridLayout mainLayout;
- QTextBrowser* chatText;
- QStringList chatStrings;
- QListWidget* chatNicks;
- QLineEdit* chatEditLine;
- QAction * acInfo;
- QAction * acKick;
- QAction * acBan;
- QAction * acFollow;
- QAction * acIgnore;
- QAction * acFriend;
- QSettings * gameSettings;
- SDLInteraction * sdli;
- Mix_Chunk *sound[4];
- bool notify;
- bool showReady;
-
- private slots:
- void returnPressed();
- void onBan();
- void onKick();
- void onInfo();
- void onFollow();
- void onIgnore();
- void onFriend();
- void chatNickDoubleClicked(QListWidgetItem * item);
- void chatNickSelected(int index);
- void linkClicked(const QUrl & link);
-};
-
-#endif // _CHAT_WIDGET_INCLUDED
--- a/QTfrontend/databrowser.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-#include <QNetworkAccessManager>
-#include <QNetworkRequest>
-#include <QNetworkReply>
-#include <QDebug>
-#include <QUrl>
-
-#include "databrowser.h"
-
-const QNetworkRequest::Attribute typeAttribute = (QNetworkRequest::Attribute)(QNetworkRequest::User + 1);
-const QNetworkRequest::Attribute urlAttribute = (QNetworkRequest::Attribute)(QNetworkRequest::User + 2);
-
-DataBrowser::DataBrowser(QWidget *parent) :
- QTextBrowser(parent)
-{
-
- manager = new QNetworkAccessManager(this);
-}
-
-QVariant DataBrowser::loadResource(int type, const QUrl & name)
-{
- if(type == QTextDocument::ImageResource || type == QTextDocument::StyleSheetResource)
- {
- if(resources.contains(name.toString()))
- {
- return resources.take(name.toString());
- }
- else
- if(!requestedResources.contains(name.toString()))
- {
- qDebug() << "Requesting resource" << name.toString();
- requestedResources.insert(name.toString());
-
- QNetworkRequest newRequest(QUrl("http://www.hedgewars.org" + name.toString()));
- newRequest.setAttribute(typeAttribute, type);
- newRequest.setAttribute(urlAttribute, name);
-
- QNetworkReply *reply = manager->get(newRequest);
- connect(reply, SIGNAL(finished()), this, SLOT(resourceDownloaded()));
- }
- }
-
- return QVariant();
-}
-
-void DataBrowser::resourceDownloaded()
-{
- QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
-
- if(reply)
- {
- int type = reply->request().attribute(typeAttribute).toInt();
- QUrl url = reply->request().attribute(urlAttribute).toUrl();
- resources.insert(url.toString(), reply->readAll());
- document()->addResource(type, reply->request().url(), QVariant());
- update();
- }
-}
--- a/QTfrontend/databrowser.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#ifndef DATABROWSER_H
-#define DATABROWSER_H
-
-#include <QTextBrowser>
-#include <QSet>
-
-class QNetworkAccessManager;
-
-class DataBrowser : public QTextBrowser
-{
- Q_OBJECT
-public:
- explicit DataBrowser(QWidget *parent = 0);
-
-signals:
-
-public slots:
-
-private:
- QNetworkAccessManager *manager;
-
- // hash and set of QString instead of QUrl to support Qt versions
- // older than 4.7 (those have no support for qHash(const QUrl &))
- QHash<QString, QByteArray> resources;
- QSet<QString> requestedResources;
-
- QVariant loadResource(int type, const QUrl & name);
-
-private slots:
- void resourceDownloaded();
-};
-
-#endif // DATABROWSER_H
--- a/QTfrontend/drawmapwidget.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QFile>
-#include <QMessageBox>
-#include <QEvent>
-
-#include "drawmapwidget.h"
-
-DrawMapWidget::DrawMapWidget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::DrawMapWidget)
-{
- ui->setupUi(this);
-
- m_scene = 0;
-}
-
-DrawMapWidget::~DrawMapWidget()
-{
- delete ui;
-}
-
-void DrawMapWidget::changeEvent(QEvent *e)
-{
- QWidget::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-void DrawMapWidget::setScene(DrawMapScene * scene)
-{
- ui->graphicsView->setScene(scene);
- m_scene = scene;
-}
-
-void DrawMapWidget::resizeEvent(QResizeEvent * event)
-{
- Q_UNUSED(event);
-
- if(ui->graphicsView && ui->graphicsView->scene())
- ui->graphicsView->fitInView(ui->graphicsView->scene()->sceneRect(), Qt::KeepAspectRatio);
-}
-
-void DrawMapWidget::showEvent(QShowEvent * event)
-{
- Q_UNUSED(event);
-
- resizeEvent(0);
-}
-
-void DrawMapWidget::undo()
-{
- if(m_scene) m_scene->undo();
-}
-
-void DrawMapWidget::clear()
-{
- if(m_scene) m_scene->clearMap();
-}
-
-void DrawMapWidget::save(const QString & fileName)
-{
- if(m_scene)
- {
- QFile file(fileName);
-
- if(!file.open(QIODevice::WriteOnly))
- QMessageBox::warning(this, tr("File error"), tr("Cannot open file '%1' for writing").arg(fileName));
- else
- file.write(qCompress(m_scene->encode()).toBase64());
- }
-}
-
-void DrawMapWidget::load(const QString & fileName)
-{
- if(m_scene)
- {
- QFile f(fileName);
-
- if(!f.open(QIODevice::ReadOnly))
- QMessageBox::warning(this, tr("File error"), tr("Cannot read file '%1'").arg(fileName));
- else
- m_scene->decode(qUncompress(QByteArray::fromBase64(f.readAll())));
- }
-}
--- a/QTfrontend/drawmapwidget.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef DRAWMAPWIDGET_H
-#define DRAWMAPWIDGET_H
-
-#include <QWidget>
-#include <QHBoxLayout>
-#include <QPushButton>
-#include <QGraphicsView>
-
-#include "qaspectratiolayout.h"
-#include "drawmapscene.h"
-
-namespace Ui {
- class Ui_DrawMapWidget
- {
- public:
- QGraphicsView *graphicsView;
-
- void setupUi(QWidget *drawMapWidget)
- {
- QAspectRatioLayout * arLayout = new QAspectRatioLayout(drawMapWidget);
- arLayout->setMargin(0);
-
- graphicsView = new QGraphicsView(drawMapWidget);
- arLayout->addWidget(graphicsView);
-
- retranslateUi(drawMapWidget);
-
- QMetaObject::connectSlotsByName(drawMapWidget);
- } // setupUi
-
- void retranslateUi(QWidget *drawMapWidget)
- {
- Q_UNUSED(drawMapWidget);
- } // retranslateUi
-
- };
-
- class DrawMapWidget: public Ui_DrawMapWidget {};
-}
-
-class DrawMapWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- explicit DrawMapWidget(QWidget *parent = 0);
- ~DrawMapWidget();
-
- void setScene(DrawMapScene * scene);
-
-public slots:
- void undo();
- void clear();
- void save(const QString & fileName);
- void load(const QString & fileName);
-
-protected:
- void changeEvent(QEvent *e);
- virtual void resizeEvent(QResizeEvent * event);
- virtual void showEvent(QShowEvent * event);
-
-private:
- Ui::DrawMapWidget *ui;
-
- DrawMapScene * m_scene;
-};
-
-#endif // DRAWMAPWIDGET_H
--- a/QTfrontend/fpsedit.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "fpsedit.h"
-
-FPSEdit::FPSEdit(QWidget * parent) :
- QSpinBox(parent)
-{
- setRange(1, 34);
- setValue(27);
-}
-
-QString FPSEdit::textFromValue(int value) const
-{
- return QString::number(1000 / (35 - value));
-}
--- a/QTfrontend/fpsedit.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _FPSEDIT_H
-#define _FPSEDIT_H
-
-#include <QSpinBox>
-
-class FPSEdit : public QSpinBox
-{
- Q_OBJECT
-
-public:
- FPSEdit(QWidget * parent = 0);
-
-protected:
- QString textFromValue (int value) const;
-};
-
-#endif // _FPSEDIT_H
--- a/QTfrontend/frameTeam.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QResizeEvent>
-#include <QCoreApplication>
-#include <QPalette>
-
-#include "frameTeam.h"
-#include "teamselhelper.h"
-#include "hwconsts.h"
-
-FrameTeams::FrameTeams(QWidget* parent) :
- QFrame(parent), maxHedgehogsPerGame(48), overallHedgehogs(0), mainLayout(this), nonInteractive(false)
-{
- QPalette newPalette = palette();
- newPalette.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
- setPalette(newPalette);
- setAutoFillBackground(true);
-
- mainLayout.setSpacing(1);
- mainLayout.setContentsMargins(4, 4, 4, 4);
-
- int i = 0;
- while(colors[i] != 0)
- availableColors.push_back(QColor(colors[i++]));
-
- resetColors();
-}
-
-void FrameTeams::setInteractivity(bool interactive)
-{
- nonInteractive = !interactive;
- for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ++it) {
- TeamShowWidget* pts = dynamic_cast<TeamShowWidget*>(it.value());
- if(!pts) throw;
- pts->setInteractivity(interactive);
- }
-}
-
-void FrameTeams::resetColors()
-{
- currentColor=availableColors.end() - 1; // ensure next color is the first one
-}
-
-QColor FrameTeams::getNextColor() const
-{
- QList<QColor>::ConstIterator nextColor=currentColor;
- ++nextColor;
- if (nextColor==availableColors.end()) nextColor=availableColors.begin();
- return *nextColor;
-}
-
-void FrameTeams::addTeam(HWTeam team, bool willPlay)
-{
- TeamShowWidget* pTeamShowWidget = new TeamShowWidget(team, willPlay, this);
- if(nonInteractive) pTeamShowWidget->setInteractivity(false);
-// int hght=teamToWidget.empty() ? 0 : teamToWidget.begin()->second->size().height();
- mainLayout.addWidget(pTeamShowWidget);
- teamToWidget.insert(team, pTeamShowWidget);
- QResizeEvent* pevent=new QResizeEvent(parentWidget()->size(), parentWidget()->size());
- QCoreApplication::postEvent(parentWidget(), pevent);
-}
-
-void FrameTeams::removeTeam(HWTeam team)
-{
- tmapTeamToWidget::iterator it=teamToWidget.find(team);
- if(it==teamToWidget.end()) return;
- mainLayout.removeWidget(it.value());
- it.value()->deleteLater();
- teamToWidget.erase(it);
-}
-
-void FrameTeams::resetTeams()
-{
- for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ) {
- mainLayout.removeWidget(it.value());
- it.value()->deleteLater();
- teamToWidget.erase(it++);
- }
-}
-
-void FrameTeams::setHHNum(const HWTeam& team)
-{
- TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team));
- if(!pTeamShowWidget) return;
- pTeamShowWidget->setHHNum(team.numHedgehogs());
-}
-
-void FrameTeams::setTeamColor(const HWTeam& team)
-{
- TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team));
- if(!pTeamShowWidget) return;
- pTeamShowWidget->changeTeamColor(team.color());
-}
-
-QWidget* FrameTeams::getTeamWidget(HWTeam team)
-{
-//qDebug() << "FrameTeams::getTeamWidget getNetID() = " << team.getNetID();
- tmapTeamToWidget::iterator it=teamToWidget.find(team);
- QWidget* ret = it!=teamToWidget.end() ? it.value() : 0;
- return ret;
-}
-
-bool FrameTeams::isFullTeams() const
-{
- return overallHedgehogs==maxHedgehogsPerGame;
-}
-
-void FrameTeams::emitTeamColorChanged(const HWTeam& team)
-{
- emit teamColorChanged(team);
-}
--- a/QTfrontend/frameTeam.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _FRAME_TEAM_INCLUDED
-#define _FRAME_TEAM_INCLUDED
-
-#include <QFrame>
-#include <QList>
-#include <QColor>
-
-#include "teamselect.h"
-
-class FrameTeams : public QFrame
-{
- Q_OBJECT
-
- friend class CHedgehogerWidget;
- friend class TeamShowWidget;
-
- public:
- FrameTeams(QWidget* parent=0);
- QWidget* getTeamWidget(HWTeam team);
- bool isFullTeams() const;
- void resetColors();
- void resetTeams();
- void setHHNum(const HWTeam& team);
- void setTeamColor(const HWTeam& team);
- void setInteractivity(bool interactive);
- QColor getNextColor() const;
-
- signals:
- void teamColorChanged(const HWTeam&);
-
- public slots:
- void addTeam(HWTeam team, bool willPlay);
- void removeTeam(HWTeam team);
-
- private:
- const int maxHedgehogsPerGame;
- int overallHedgehogs;
- QList<QColor> availableColors;
- QList<QColor>::Iterator currentColor;
-
- void emitTeamColorChanged(const HWTeam& team);
-
- QVBoxLayout mainLayout;
- typedef QMap<HWTeam, QWidget*> tmapTeamToWidget;
- tmapTeamToWidget teamToWidget;
- bool nonInteractive;
-};
-
-#endif // _FRAME_TAM_INCLUDED
--- a/QTfrontend/game.cpp Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/game.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -41,7 +41,6 @@
{
this->config = config;
this->gamecfg = gamecfg;
- TeamCount = 0;
netSuspend = false;
}
@@ -120,13 +119,11 @@
.arg((themesModel->rowCount() > 0) ? themesModel->index(rand() % themesModel->rowCount()).data().toString() : "steel"));
HWProto::addStringToBuffer(teamscfg, "eseed " + QUuid::createUuid().toString());
- HWNamegen namegen;
-
HWTeam team1;
team1.setDifficulty(0);
team1.setColor(QColor(colors[0]));
team1.setNumHedgehogs(4);
- namegen.teamRandomNames(team1,TRUE);
+ HWNamegen::teamRandomNames(team1,true);
HWProto::addStringListToBuffer(teamscfg,
team1.teamGameConfig(100));
@@ -135,7 +132,7 @@
team2.setColor(QColor(colors[1]));
team2.setNumHedgehogs(4);
do
- namegen.teamRandomNames(team2,TRUE);
+ HWNamegen::teamRandomNames(team2,true);
while(!team2.name().compare(team1.name()) || !team2.hedgehog(0).Hat.compare(team1.hedgehog(0).Hat));
HWProto::addStringListToBuffer(teamscfg,
team2.teamGameConfig(100));
@@ -318,13 +315,6 @@
return arguments;
}
-void HWGame::AddTeam(const QString & teamname)
-{
- if (TeamCount == 5) return;
- teams[TeamCount] = teamname;
- TeamCount++;
-}
-
void HWGame::PlayDemo(const QString & demofilename, bool isSave)
{
gameType = isSave ? gtSave : gtDemo;
@@ -392,13 +382,9 @@
emit GameStateChanged(state);
}
-void HWGame::KillAllTeams()
+void HWGame::abort()
{
- if (m_pTeamSelWidget)
- {
- QByteArray buf;
- foreach(HWTeam team, m_pTeamSelWidget->getPlayingTeams())
- HWProto::addStringToBuffer(buf, QString("eteamgone %1").arg(team.name()));
- RawSendIPC(buf);
- }
+ QByteArray buf;
+ HWProto::addStringToBuffer(buf, QString("efinish"));
+ RawSendIPC(buf);
}
--- a/QTfrontend/game.h Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/game.h Fri Oct 28 18:26:17 2011 +0200
@@ -54,7 +54,7 @@
void StartNet();
void StartTraining(const QString & file);
void StartCampaign(const QString & file);
- void KillAllTeams();
+ void abort();
GameState gameState;
bool netSuspend;
@@ -87,9 +87,7 @@
gtSave = 7,
};
char msgbuf[MAXMSGCHARS];
- QString teams[5];
QString ammostr;
- int TeamCount;
GameUIConfig * config;
GameCFGWidget * gamecfg;
TeamSelWidget* m_pTeamSelWidget;
--- a/QTfrontend/gamecfgwidget.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,573 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QResizeEvent>
-#include <QGroupBox>
-#include <QCheckBox>
-#include <QGridLayout>
-#include <QSpinBox>
-#include <QLabel>
-#include <QMessageBox>
-#include <QTableView>
-#include <QPushButton>
-
-#include "gamecfgwidget.h"
-#include "igbox.h"
-#include "hwconsts.h"
-#include "ammoSchemeModel.h"
-#include "proto.h"
-
-GameCFGWidget::GameCFGWidget(QWidget* parent) :
- QGroupBox(parent)
- , mainLayout(this)
- , seedRegexp("\\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\}")
-{
- mainLayout.setMargin(0);
-// mainLayout.setSizeConstraint(QLayout::SetMinimumSize);
-
- pMapContainer = new HWMapContainer(this);
- mainLayout.addWidget(pMapContainer, 0, 0);
-
- IconedGroupBox *GBoxOptions = new IconedGroupBox(this);
- GBoxOptions->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
- mainLayout.addWidget(GBoxOptions, 1, 0);
-
- QGridLayout *GBoxOptionsLayout = new QGridLayout(GBoxOptions);
-
- GBoxOptions->setTitle(tr("Game Options"));
- GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Style"), GBoxOptions), 1, 0);
-
- Scripts = new QComboBox(GBoxOptions);
- GBoxOptionsLayout->addWidget(Scripts, 1, 1);
-
- Scripts->addItem("Normal");
- Scripts->insertSeparator(1);
-
- for (int i = 0; i < scriptList->size(); ++i) {
- QString script = (*scriptList)[i].remove(".lua", Qt::CaseInsensitive);
- QList<QVariant> scriptInfo;
- scriptInfo.push_back(script);
- QFile scriptCfgFile;
- scriptCfgFile.setFileName(QString("%1/Data/Scripts/Multiplayer/%2.cfg").arg(cfgdir->absolutePath()).arg(script));
- if (!scriptCfgFile.exists()) scriptCfgFile.setFileName(QString("%1/Scripts/Multiplayer/%2.cfg").arg(datadir->absolutePath()).arg(script));
- if (scriptCfgFile.exists() && scriptCfgFile.open(QFile::ReadOnly)) {
- QString scheme;
- QString weapons;
- QTextStream input(&scriptCfgFile);
- input >> scheme;
- input >> weapons;
- if (scheme.isEmpty())
- scheme = "locked";
- scheme.replace("_", " ");
- if (weapons.isEmpty())
- weapons = "locked";
- weapons.replace("_", " ");
- scriptInfo.push_back(scheme);
- scriptInfo.push_back(weapons);
- scriptCfgFile.close();
- }
- else
- {
- scriptInfo.push_back("locked");
- scriptInfo.push_back("locked");
- }
- Scripts->addItem(script.replace("_", " "), scriptInfo);
- }
-
- connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int)));
-
- QWidget *SchemeWidget = new QWidget(GBoxOptions);
- GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2);
-
- QGridLayout *SchemeWidgetLayout = new QGridLayout(SchemeWidget);
- SchemeWidgetLayout->setMargin(0);
-
- GameSchemes = new QComboBox(SchemeWidget);
- SchemeWidgetLayout->addWidget(GameSchemes, 0, 2);
- connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int)));
-
- SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Scheme"), SchemeWidget), 0, 0);
-
- QPixmap pmEdit(":/res/edit.png");
-
- QPushButton * goToSchemePage = new QPushButton(SchemeWidget);
- goToSchemePage->setToolTip(tr("Edit schemes"));
- goToSchemePage->setIconSize(pmEdit.size());
- goToSchemePage->setIcon(pmEdit);
- goToSchemePage->setMaximumWidth(pmEdit.width() + 6);
- SchemeWidgetLayout->addWidget(goToSchemePage, 0, 3);
- connect(goToSchemePage, SIGNAL(clicked()), this, SLOT(jumpToSchemes()));
-
- SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Weapons"), SchemeWidget), 1, 0);
-
- WeaponsName = new QComboBox(SchemeWidget);
- SchemeWidgetLayout->addWidget(WeaponsName, 1, 2);
-
- connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int)));
-
- QPushButton * goToWeaponPage = new QPushButton(SchemeWidget);
- goToWeaponPage->setToolTip(tr("Edit weapons"));
- goToWeaponPage->setIconSize(pmEdit.size());
- goToWeaponPage->setIcon(pmEdit);
- goToWeaponPage->setMaximumWidth(pmEdit.width() + 6);
- SchemeWidgetLayout->addWidget(goToWeaponPage, 1, 3);
- connect(goToWeaponPage, SIGNAL(clicked()), this, SLOT(jumpToWeapons()));
-
- bindEntries = new QCheckBox(SchemeWidget);
- bindEntries->setToolTip(tr("When this option is enabled selecting a game scheme will auto-select a weapon"));
- bindEntries->setChecked(true);
- bindEntries->setMaximumWidth(42);
- bindEntries->setStyleSheet( "QCheckBox::indicator:checked { image: url(\":/res/lock.png\"); }"
- "QCheckBox::indicator:unchecked { image: url(\":/res/unlock.png\"); }" );
- SchemeWidgetLayout->addWidget(bindEntries, 0, 1, 0, 1, Qt::AlignVCenter);
-
- connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SLOT(seedChanged(const QString &)));
- connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SLOT(mapChanged(const QString &)));
- connect(pMapContainer, SIGNAL(mapgenChanged(MapGenerator)), this, SLOT(mapgenChanged(MapGenerator)));
- connect(pMapContainer, SIGNAL(mazeSizeChanged(int)), this, SLOT(maze_sizeChanged(int)));
- connect(pMapContainer, SIGNAL(themeChanged(const QString &)), this, SLOT(themeChanged(const QString &)));
- connect(pMapContainer, SIGNAL(newTemplateFilter(int)), this, SLOT(templateFilterChanged(int)));
- connect(pMapContainer, SIGNAL(drawMapRequested()), this, SIGNAL(goToDrawMap()));
- connect(pMapContainer, SIGNAL(drawnMapChanged(const QByteArray &)), this, SLOT(onDrawnMapChanged(const QByteArray &)));
-}
-
-void GameCFGWidget::jumpToSchemes()
-{
- emit goToSchemes(GameSchemes->currentIndex());
-}
-
-void GameCFGWidget::jumpToWeapons()
-{
- emit goToWeapons(WeaponsName->currentIndex());
-}
-
-QVariant GameCFGWidget::schemeData(int column) const
-{
- return GameSchemes->model()->data(GameSchemes->model()->index(GameSchemes->currentIndex(), column));
-}
-
-quint32 GameCFGWidget::getGameFlags() const
-{
- quint32 result = 0;
-
- if (schemeData(1).toBool())
- result |= 0x00001000; // fort
- if (schemeData(2).toBool())
- result |= 0x00000010; // divide teams
- if (schemeData(3).toBool())
- result |= 0x00000004; // solid land
- if (schemeData(4).toBool())
- result |= 0x00000008; // border
- if (schemeData(5).toBool())
- result |= 0x00000020; // low gravity
- if (schemeData(6).toBool())
- result |= 0x00000040; // laser sight
- if (schemeData(7).toBool())
- result |= 0x00000080; // invulnerable
- if (schemeData(8).toBool())
- result |= 0x00000100; // mines
- if (schemeData(9).toBool())
- result |= 0x00000200; // vampirism
- if (schemeData(10).toBool())
- result |= 0x00000400; // karma
- if (schemeData(11).toBool())
- result |= 0x00000800; // artillery
- if (schemeData(12).toBool())
- result |= 0x00002000; // random
- if (schemeData(13).toBool())
- result |= 0x00004000; // king
- if (schemeData(14).toBool())
- result |= 0x00008000; // place hogs
- if (schemeData(15).toBool())
- result |= 0x00010000; // shared ammo
- if (schemeData(16).toBool())
- result |= 0x00020000; // disable girders
- if (schemeData(17).toBool())
- result |= 0x00040000; // disable land obj
- if (schemeData(18).toBool())
- result |= 0x00080000; // ai survival
- if (schemeData(19).toBool())
- result |= 0x00100000; // infinite attacks
- if (schemeData(20).toBool())
- result |= 0x00200000; // reset weaps
- if (schemeData(21).toBool())
- result |= 0x00400000; // per hog ammo
- if (schemeData(22).toBool())
- result |= 0x00800000; // no wind
- if (schemeData(23).toBool())
- result |= 0x01000000; // more wind
- if (schemeData(24).toBool())
- result |= 0x02000000; // tag team
- if (schemeData(25).toBool())
- result |= 0x04000000; // bottom border
-
- return result;
-}
-
-quint32 GameCFGWidget::getInitHealth() const
-{
- return schemeData(28).toInt();
-}
-
-QByteArray GameCFGWidget::getFullConfig() const
-{
- QList<QByteArray> bcfg;
- int mapgen = pMapContainer->get_mapgen();
-
- QString currentMap = pMapContainer->getCurrentMap();
- if (currentMap.size() > 0)
- {
- bcfg << QString("emap " + currentMap).toUtf8();
- if(pMapContainer->getCurrentIsMission())
- bcfg << QString("escript Maps/%1/map.lua").arg(currentMap).toUtf8();
- }
- bcfg << QString("etheme " + pMapContainer->getCurrentTheme()).toUtf8();
-
- if (Scripts->currentIndex() > 0)
- {
- bcfg << QString("escript Scripts/Multiplayer/%1.lua").arg(Scripts->itemData(Scripts->currentIndex()).toList()[0].toString()).toUtf8();
- }
-
- bcfg << QString("eseed " + pMapContainer->getCurrentSeed()).toUtf8();
- bcfg << QString("e$gmflags %1").arg(getGameFlags()).toUtf8();
- bcfg << QString("e$damagepct %1").arg(schemeData(26).toInt()).toUtf8();
- bcfg << QString("e$turntime %1").arg(schemeData(27).toInt() * 1000).toUtf8();
- bcfg << QString("e$sd_turns %1").arg(schemeData(29).toInt()).toUtf8();
- bcfg << QString("e$casefreq %1").arg(schemeData(30).toInt()).toUtf8();
- bcfg << QString("e$minestime %1").arg(schemeData(31).toInt() * 1000).toUtf8();
- bcfg << QString("e$minesnum %1").arg(schemeData(32).toInt()).toUtf8();
- bcfg << QString("e$minedudpct %1").arg(schemeData(33).toInt()).toUtf8();
- bcfg << QString("e$explosives %1").arg(schemeData(34).toInt()).toUtf8();
- bcfg << QString("e$healthprob %1").arg(schemeData(35).toInt()).toUtf8();
- bcfg << QString("e$hcaseamount %1").arg(schemeData(36).toInt()).toUtf8();
- bcfg << QString("e$waterrise %1").arg(schemeData(37).toInt()).toUtf8();
- bcfg << QString("e$healthdec %1").arg(schemeData(38).toInt()).toUtf8();
- bcfg << QString("e$ropepct %1").arg(schemeData(39).toInt()).toUtf8();
- bcfg << QString("e$getawaytime %1").arg(schemeData(40).toInt()).toUtf8();
- bcfg << QString("e$template_filter %1").arg(pMapContainer->getTemplateFilter()).toUtf8();
- bcfg << QString("e$mapgen %1").arg(mapgen).toUtf8();
-
- switch (mapgen)
- {
- case MAPGEN_MAZE:
- bcfg << QString("e$maze_size %1").arg(pMapContainer->getMazeSize()).toUtf8();
- break;
-
- case MAPGEN_DRAWN:
- {
- QByteArray data = pMapContainer->getDrawnMapData();
- while(data.size() > 0)
- {
- QByteArray tmp = data;
- tmp.truncate(200);
- tmp.prepend("edraw ");
- bcfg << tmp;
- data.remove(0, 200);
- }
- break;
- }
- default: ;
- }
-
- QByteArray result;
-
- foreach(QByteArray ba, bcfg)
- HWProto::addByteArrayToBuffer(result, ba);
-
- return result;
-}
-
-void GameCFGWidget::setNetAmmo(const QString& name, const QString& ammo)
-{
- bool illegal = ammo.size() != cDefaultAmmoStore->size();
- if (illegal)
- QMessageBox::critical(this, tr("Error"), tr("Illegal ammo scheme"));
-
- int pos = WeaponsName->findText(name);
- if ((pos == -1) || illegal) { // prevent from overriding schemes with bad ones
- WeaponsName->addItem(name, ammo);
- WeaponsName->setCurrentIndex(WeaponsName->count() - 1);
- } else {
- WeaponsName->setItemData(pos, ammo);
- WeaponsName->setCurrentIndex(pos);
- }
-}
-
-void GameCFGWidget::fullNetConfig()
-{
- ammoChanged(WeaponsName->currentIndex());
-
- seedChanged(pMapContainer->getCurrentSeed());
- templateFilterChanged(pMapContainer->getTemplateFilter());
- themeChanged(pMapContainer->getCurrentTheme());
-
- schemeChanged(GameSchemes->currentIndex());
- scriptChanged(Scripts->currentIndex());
-
- mapgenChanged(pMapContainer->get_mapgen());
- maze_sizeChanged(pMapContainer->getMazeSize());
-
- // map must be the last
- QString map = pMapContainer->getCurrentMap();
- if (map.size())
- mapChanged(map);
-}
-
-void GameCFGWidget::setParam(const QString & param, const QStringList & slValue)
-{
- if (slValue.size() == 1)
- {
- QString value = slValue[0];
- if (param == "MAP") {
- pMapContainer->setMap(value);
- return;
- }
- if (param == "SEED") {
- pMapContainer->setSeed(value);
- if (!seedRegexp.exactMatch(value)) {
- pMapContainer->seedEdit->setVisible(true);
- }
- return;
- }
- if (param == "THEME") {
- pMapContainer->setTheme(value);
- return;
- }
- if (param == "TEMPLATE") {
- pMapContainer->setTemplateFilter(value.toUInt());
- return;
- }
- if (param == "MAPGEN") {
- pMapContainer->setMapgen((MapGenerator)value.toUInt());
- return;
- }
- if (param == "MAZE_SIZE") {
- pMapContainer->setMazeSize(value.toUInt());
- return;
- }
- if (param == "SCRIPT") {
- Scripts->setCurrentIndex(Scripts->findText(value));
- return;
- }
- if (param == "DRAWNMAP") {
- pMapContainer->setDrawnMapData(qUncompress(QByteArray::fromBase64(slValue[0].toLatin1())));
- return;
- }
- }
-
- if (slValue.size() == 2)
- {
- if (param == "AMMO") {
- setNetAmmo(slValue[0], slValue[1]);
- return;
- }
- }
-
- if (slValue.size() == 5)
- {
- if (param == "FULLMAPCONFIG")
- {
- QString seed = slValue[3];
- if (!seedRegexp.exactMatch(seed))
- pMapContainer->seedEdit->setVisible(true);
-
- pMapContainer->setAllMapParameters(
- slValue[0],
- (MapGenerator)slValue[1].toUInt(),
- slValue[2].toUInt(),
- seed,
- slValue[4].toUInt()
- );
- return;
- }
- }
-
- qWarning("Got bad config param from net");
-}
-
-void GameCFGWidget::ammoChanged(int index)
-{
- if (index >= 0) {
- emit paramChanged(
- "AMMO",
- QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString()
- );
- }
-}
-
-void GameCFGWidget::mapChanged(const QString & value)
-{
- if(isEnabled() && pMapContainer->getCurrentIsMission())
- {
- Scripts->setEnabled(false);
- Scripts->setCurrentIndex(0);
-
- if (pMapContainer->getCurrentScheme() == "locked")
- {
- GameSchemes->setEnabled(false);
- GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
- }
- else
- {
- GameSchemes->setEnabled(true);
- int num = GameSchemes->findText(pMapContainer->getCurrentScheme());
- if (num != -1)
- GameSchemes->setCurrentIndex(num);
- else
- GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
- }
-
- if (pMapContainer->getCurrentWeapons() == "locked")
- {
- WeaponsName->setEnabled(false);
- WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
- }
- else
- {
- WeaponsName->setEnabled(true);
- int num = WeaponsName->findText(pMapContainer->getCurrentWeapons());
- if (num != -1)
- WeaponsName->setCurrentIndex(num);
- else
- WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
- }
-
- if (pMapContainer->getCurrentScheme() != "locked" && pMapContainer->getCurrentWeapons() != "locked")
- bindEntries->setEnabled(true);
- else
- bindEntries->setEnabled(false);
- }
- else
- {
- Scripts->setEnabled(true);
- GameSchemes->setEnabled(true);
- WeaponsName->setEnabled(true);
- bindEntries->setEnabled(true);
- }
- emit paramChanged("MAP", QStringList(value));
-}
-
-void GameCFGWidget::templateFilterChanged(int value)
-{
- emit paramChanged("TEMPLATE", QStringList(QString::number(value)));
-}
-
-void GameCFGWidget::seedChanged(const QString & value)
-{
- emit paramChanged("SEED", QStringList(value));
-}
-
-void GameCFGWidget::themeChanged(const QString & value)
-{
- emit paramChanged("THEME", QStringList(value));
-}
-
-void GameCFGWidget::schemeChanged(int index)
-{
- QStringList sl;
-
- int size = GameSchemes->model()->columnCount();
- for(int i = 0; i < size; ++i)
- sl << schemeData(i).toString();
-
- emit paramChanged("SCHEME", sl);
-
- if (isEnabled() && bindEntries->isEnabled() && bindEntries->isChecked()) {
- QString schemeName = GameSchemes->itemText(index);
- for (int i = 0; i < WeaponsName->count(); i++) {
- QString weapName = WeaponsName->itemText(i);
- int res = QString::compare(weapName, schemeName, Qt::CaseSensitive);
- if (0 == res) {
- WeaponsName->setCurrentIndex(i);
- emit ammoChanged(i);
- break;
- }
- }
- }
-}
-
-void GameCFGWidget::scriptChanged(int index)
-{
- if(isEnabled() && index > 0)
- {
- QString scheme = Scripts->itemData(Scripts->currentIndex()).toList()[1].toString();
- QString weapons = Scripts->itemData(Scripts->currentIndex()).toList()[2].toString();
-
- if (scheme == "locked")
- {
- GameSchemes->setEnabled(false);
- GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
- }
- else
- {
- GameSchemes->setEnabled(true);
- int num = GameSchemes->findText(scheme);
- if (num != -1)
- GameSchemes->setCurrentIndex(num);
- else
- GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
- }
-
- if (weapons == "locked")
- {
- WeaponsName->setEnabled(false);
- WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
- }
- else
- {
- WeaponsName->setEnabled(true);
- int num = WeaponsName->findText(weapons);
- if (num != -1)
- WeaponsName->setCurrentIndex(num);
- else
- WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
- }
-
- if (scheme != "locked" && weapons != "locked")
- bindEntries->setEnabled(true);
- else
- bindEntries->setEnabled(false);
- }
- else
- {
- GameSchemes->setEnabled(true);
- WeaponsName->setEnabled(true);
- bindEntries->setEnabled(true);
- }
- emit paramChanged("SCRIPT", QStringList(Scripts->itemText(index)));
-}
-
-void GameCFGWidget::mapgenChanged(MapGenerator m)
-{
- emit paramChanged("MAPGEN", QStringList(QString::number(m)));
-}
-
-void GameCFGWidget::maze_sizeChanged(int s)
-{
- emit paramChanged("MAZE_SIZE", QStringList(QString::number(s)));
-}
-
-void GameCFGWidget::resendSchemeData()
-{
- schemeChanged(GameSchemes->currentIndex());
-}
-
-void GameCFGWidget::onDrawnMapChanged(const QByteArray & data)
-{
- emit paramChanged("DRAWNMAP", QStringList(qCompress(data, 9).toBase64()));
-}
--- a/QTfrontend/gamecfgwidget.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef GAMECONFIGWIDGET_H
-#define GAMECONFIGWIDGET_H
-
-#include <QWidget>
-#include <QStringList>
-#include <QGroupBox>
-#include <QSpinBox>
-#include <QRegExp>
-
-#include "mapContainer.h"
-
-class QCheckBox;
-class QVBoxLayout;
-class QLabel;
-class QTableView;
-
-class GameCFGWidget : public QGroupBox
-{
- Q_OBJECT
-
-public:
- GameCFGWidget(QWidget* parent);
- quint32 getGameFlags() const;
- quint32 getInitHealth() const;
- QByteArray getFullConfig() const;
- QComboBox * Scripts;
- QComboBox * GameSchemes;
- QComboBox * WeaponsName;
- HWMapContainer* pMapContainer;
- QTableView * tv;
- QVariant schemeData(int column) const;
-
-public slots:
- void setParam(const QString & param, const QStringList & value);
- void fullNetConfig();
- void resendSchemeData();
-
-signals:
- void paramChanged(const QString & param, const QStringList & value);
- void goToSchemes(int);
- void goToWeapons(int);
- void goToDrawMap();
-
-private slots:
- void ammoChanged(int index);
- void mapChanged(const QString &);
- void templateFilterChanged(int);
- void seedChanged(const QString &);
- void themeChanged(const QString &);
- void schemeChanged(int);
- void scriptChanged(int);
- void jumpToSchemes();
- void jumpToWeapons();
- void mapgenChanged(MapGenerator m);
- void maze_sizeChanged(int s);
- void onDrawnMapChanged(const QByteArray & data);
-
-private:
- QGridLayout mainLayout;
- QCheckBox * bindEntries;
- QString curNetAmmoName;
- QString curNetAmmo;
- QRegExp seedRegexp;
-
- void setNetAmmo(const QString& name, const QString& ammo);
-
-};
-
-#endif // GAMECONFIGWIDGET_H
--- a/QTfrontend/hats.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QDir>
-#include <QPixmap>
-#include <QPainter>
-#include "hwconsts.h"
-#include "hwform.h"
-#include "hats.h"
-
-HatsModel::HatsModel(QObject* parent) :
- QAbstractListModel(parent)
-{
- QFile hhfile;
- hhfile.setFileName(cfgdir->absolutePath() + "/Data/Graphics/Hedgehog/Idle.png");
- if (!hhfile.exists()) hhfile.setFileName(datadir->absolutePath() + "/Graphics/Hedgehog/Idle.png");
- QPixmap hhpix = QPixmap(QFileInfo(hhfile).absoluteFilePath()).copy(0, 0, 32, 32);
-
- QDir tmpdir;
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data");
- tmpdir.cd("Graphics");
- tmpdir.cd("Hats");
-
- tmpdir.setFilter(QDir::Files);
-
- QStringList userhatsList = tmpdir.entryList(QStringList("*.png"));
- for (QStringList::Iterator it = userhatsList.begin(); it != userhatsList.end(); ++it )
- {
- QString str = QString(*it).replace(QRegExp("^(.*)\\.png"), "\\1");
- QPixmap pix(cfgdir->absolutePath() + "/Data/Graphics/Hats/" + str + ".png");
-
- QPixmap tmppix(32, 37);
- tmppix.fill(QColor(Qt::transparent));
-
- QPainter painter(&tmppix);
- painter.drawPixmap(QPoint(0, 5), hhpix);
- painter.drawPixmap(QPoint(0, 0), pix.copy(0, 0, 32, 32));
- if(pix.width() > 32)
- painter.drawPixmap(QPoint(0, 0), pix.copy(32, 0, 32, 32));
- painter.end();
-
- hats.append(qMakePair(str, QIcon(tmppix)));
- }
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Graphics");
- tmpdir.cd("Hats");
-
- QStringList hatsList = tmpdir.entryList(QStringList("*.png"));
- for (QStringList::Iterator it = hatsList.begin(); it != hatsList.end(); ++it )
- {
- if (userhatsList.contains(*it,Qt::CaseInsensitive)) continue;
- QString str = (*it).replace(QRegExp("^(.*)\\.png"), "\\1");
- QPixmap pix(datadir->absolutePath() + "/Graphics/Hats/" + str + ".png");
-
- QPixmap tmppix(32, 37);
- tmppix.fill(QColor(Qt::transparent));
-
- QPainter painter(&tmppix);
- painter.drawPixmap(QPoint(0, 5), hhpix);
- painter.drawPixmap(QPoint(0, 0), pix.copy(0, 0, 32, 32));
- if(pix.width() > 32)
- painter.drawPixmap(QPoint(0, 0), pix.copy(32, 0, 32, 32));
- painter.end();
-
- hats.append(qMakePair(str, QIcon(tmppix)));
- }
- // Reserved hats
- tmpdir.cd("Reserved");
- hatsList = tmpdir.entryList(QStringList(playerHash+"*.png"));
- for (QStringList::Iterator it = hatsList.begin(); it != hatsList.end(); ++it )
- {
- QString str = (*it).replace(QRegExp("^(.*)\\.png"), "\\1");
- QPixmap pix(datadir->absolutePath() + "/Graphics/Hats/Reserved/" + str + ".png");
-
- QPixmap tmppix(32, 37);
- tmppix.fill(QColor(Qt::transparent));
-
- QPainter painter(&tmppix);
- painter.drawPixmap(QPoint(0, 5), hhpix);
- painter.drawPixmap(QPoint(0, 0), pix.copy(0, 0, 32, 32));
- painter.end();
-
- hats.append(qMakePair("Reserved "+str.remove(0,32), QIcon(tmppix)));
- }
-}
-
-QVariant HatsModel::headerData(int section,
- Qt::Orientation orientation, int role) const
-{
- Q_UNUSED(section);
- Q_UNUSED(orientation);
- Q_UNUSED(role);
-
- return QVariant();
-}
-
-int HatsModel::rowCount(const QModelIndex &parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return hats.size();
-}
-
-/*int HatsModel::columnCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return 2;
-}
-*/
-QVariant HatsModel::data(const QModelIndex &index,
- int role) const
-{
- if (!index.isValid() || index.row() < 0
- || index.row() >= hats.size()
- || (role != Qt::DisplayRole && role != Qt::DecorationRole))
- return QVariant();
-
- if (role == Qt::DisplayRole)
- return hats.at(index.row()).first;
- else // role == Qt::DecorationRole
- return hats.at(index.row()).second;
-}
--- a/QTfrontend/hats.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _HATS_INCLUDED
-#define _HATS_INCLUDED
-
-#include <QAbstractListModel>
-#include <QStringList>
-#include <QVector>
-#include <QPair>
-#include <QIcon>
-
-class HatsModel : public QAbstractListModel
-{
- Q_OBJECT
-
-public:
- HatsModel(QObject *parent = 0);
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- int rowCount(const QModelIndex & parent) const;
- //int columnCount(const QModelIndex & parent) const;
-
- QVariant data(const QModelIndex &index, int role) const;
-protected:
- QVector<QPair<QString, QIcon> > hats;
-};
-
-#endif // _HATS_INCLUDED
--- a/QTfrontend/hedgehogerWidget.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Ulyanov Igor <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "hedgehogerWidget.h"
-
-#include "frameTeam.h"
-
-CHedgehogerWidget::CHedgehogerWidget(const QImage& im, const QImage& img, QWidget * parent) :
- ItemNum(im, img, parent, 1)
-{
- // TODO: maxHedgehogsPerGame doesn't reset properly and won't match map limits for now
- /*if(parent) {
- pOurFrameTeams = dynamic_cast<FrameTeams*>(parent->parentWidget());
- }
- if(pOurFrameTeams->overallHedgehogs + 4 > pOurFrameTeams->maxHedgehogsPerGame) {
- numItems = pOurFrameTeams->maxHedgehogsPerGame - pOurFrameTeams->overallHedgehogs;
- } else numItems = 4;
- pOurFrameTeams->overallHedgehogs += numItems;*/
-}
-
-void CHedgehogerWidget::incItems()
-{
- //if (pOurFrameTeams->overallHedgehogs < pOurFrameTeams->maxHedgehogsPerGame) {
- numItems++;
- //pOurFrameTeams->overallHedgehogs++;
- emit hedgehogsNumChanged();
- //}
-}
-
-void CHedgehogerWidget::decItems()
-{
- numItems--;
- //pOurFrameTeams->overallHedgehogs--;
- emit hedgehogsNumChanged();
-}
-
-CHedgehogerWidget::~CHedgehogerWidget()
-{
- // TODO: not called?
- //pOurFrameTeams->overallHedgehogs-=numItems;
-}
-
-void CHedgehogerWidget::setNonInteractive()
-{
- nonInteractive=true;
-}
-
-void CHedgehogerWidget::setHHNum(unsigned int num)
-{
- /*unsigned int diff = num - numItems;
- numItems += diff;
- pOurFrameTeams->overallHedgehogs += diff;*/
- numItems = num;
- repaint();
-}
-
-unsigned char CHedgehogerWidget::getHedgehogsNum() const
-{
- return numItems;
-}
--- a/QTfrontend/hedgehogerWidget.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Ulyanov Igor <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _HEDGEHOGER_WIDGET
-#define _HEDGEHOGER_WIDGET
-
-#include "itemNum.h"
-
-class FrameTeams;
-
-class CHedgehogerWidget : public ItemNum
-{
- Q_OBJECT
-
- public:
- CHedgehogerWidget(const QImage& im, const QImage& img, QWidget * parent);
- virtual ~CHedgehogerWidget();
- unsigned char getHedgehogsNum() const;
- void setHHNum (unsigned int num);
- void setNonInteractive();
-
- signals:
- void hedgehogsNumChanged();
-
- protected:
- virtual void incItems();
- virtual void decItems();
-
- private:
- CHedgehogerWidget();
- FrameTeams* pOurFrameTeams;
-};
-
-#endif // _HEDGEHOGER_WIDGET
--- a/QTfrontend/hedgewars.qrc Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/hedgewars.qrc Fri Oct 28 18:26:17 2011 +0200
@@ -1,6 +1,8 @@
<RCC>
<qresource prefix="/">
<file alias="Ammos.png">../share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png</file>
+ <file>res/css/qt.css</file>
+ <file>res/css/chat.css</file>
<file>res/hh25x25.png</file>
<file>res/hh25x25grey.png</file>
<file>res/ammopic.png</file>
@@ -45,6 +47,7 @@
<file>res/unchecked.png</file>
<file>res/graphicsicon.png</file>
<file>res/miscicon.png</file>
+ <file>res/Load.png</file>
<file>res/Save.png</file>
<file>res/Record.png</file>
<file>res/weaponsicon.png</file>
@@ -57,31 +60,31 @@
<file>res/PlaySound.png</file>
<file>res/hh_small.png</file>
<file>res/btnDisabled.png</file>
- <file>res/btnForts.png</file>
- <file>res/btnBorder.png</file>
- <file>res/btnInvulnerable.png</file>
- <file>res/btnLaserSight.png</file>
- <file>res/btnLowGravity.png</file>
- <file>res/btnResetHealth.png</file>
- <file>res/btnTeamsDivide.png</file>
- <file>res/btnSolid.png</file>
- <file>res/btnVampiric.png</file>
- <file>res/btnKarma.png</file>
- <file>res/btnArtillery.png</file>
- <file>res/btnRandomOrder.png</file>
- <file>res/btnKing.png</file>
- <file>res/btnPlaceHog.png</file>
- <file>res/btnSharedAmmo.png</file>
- <file>res/btnDisableGirders.png</file>
- <file>res/btnDisableLandObjects.png</file>
- <file>res/btnAISurvival.png</file>
- <file>res/btnInfAttack.png</file>
- <file>res/btnResetWeps.png</file>
- <file>res/btnPerHogAmmo.png</file>
- <file>res/btnNoWind.png</file>
- <file>res/btnMoreWind.png</file>
- <file>res/btnTagTeam.png</file>
- <file>res/btnBottomBorder.png</file>
+ <file>res/btnForts@2x.png</file>
+ <file>res/btnBorder@2x.png</file>
+ <file>res/btnInvulnerable@2x.png</file>
+ <file>res/btnLaserSight@2x.png</file>
+ <file>res/btnLowGravity@2x.png</file>
+ <file>res/btnResetHealth@2x.png</file>
+ <file>res/btnTeamsDivide@2x.png</file>
+ <file>res/btnSolid@2x.png</file>
+ <file>res/btnVampiric@2x.png</file>
+ <file>res/btnKarma@2x.png</file>
+ <file>res/btnArtillery@2x.png</file>
+ <file>res/btnRandomOrder@2x.png</file>
+ <file>res/btnKing@2x.png</file>
+ <file>res/btnPlaceHog@2x.png</file>
+ <file>res/btnSharedAmmo@2x.png</file>
+ <file>res/btnDisableGirders@2x.png</file>
+ <file>res/btnDisableLandObjects@2x.png</file>
+ <file>res/btnAISurvival@2x.png</file>
+ <file>res/btnInfAttack@2x.png</file>
+ <file>res/btnResetWeps@2x.png</file>
+ <file>res/btnPerHogAmmo@2x.png</file>
+ <file>res/btnNoWind@2x.png</file>
+ <file>res/btnMoreWind@2x.png</file>
+ <file>res/btnTagTeam@2x.png</file>
+ <file>res/btnBottomBorder@2x.png</file>
<file>res/iconBox.png</file>
<file>res/iconHealth.png</file>
<file>res/iconSuddenDeath.png</file>
--- a/QTfrontend/hwform.cpp Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/hwform.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -44,7 +44,6 @@
#include "hwform.h"
#include "game.h"
#include "team.h"
-#include "namegen.h"
#include "teamselect.h"
#include "selectWeapon.h"
#include "gameuiconfig.h"
@@ -81,6 +80,8 @@
#include "xfire.h"
#include "drawmapwidget.h"
+#include "HWDataManager.h"
+
#ifdef __APPLE__
#include "M3Panel.h"
#ifdef SPARKLE_ENABLED
@@ -95,12 +96,21 @@
QString playerHash;
HWForm::HWForm(QWidget *parent, QString styleSheet)
- : QMainWindow(parent), pnetserver(0), pRegisterServer(0), editedTeam(0), hwnet(0)
+ : QMainWindow(parent)
+ , game(0)
+ , pnetserver(0)
+ , pRegisterServer(0)
+ , editedTeam(0)
+ , hwnet(0)
{
+ // set music track
+ SDLInteraction::instance().setMusicTrack(
+ HWDataManager::instance().findFileForRead("Music/main_theme.ogg")
+ );
+
#ifdef USE_XFIRE
xfire_init();
#endif
- game = NULL;
gameSettings = new QSettings(cfgdir->absolutePath() + "/hedgewars.ini", QSettings::IniFormat);
frontendEffects = gameSettings->value("frontend/effects", true).toBool();
playerHash = QString(QCryptographicHash::hash(gameSettings->value("net/nick","").toString().toLatin1(), QCryptographicHash::Md5).toHex());
@@ -111,11 +121,10 @@
//setFocusPolicy(Qt::StrongFocus);
CustomizePalettes();
- ui.pageOptions->CBResolution->addItems(sdli.getResolutions());
+ ui.pageOptions->CBResolution->addItems(SDLInteraction::instance().getResolutions());
config = new GameUIConfig(this, cfgdir->absolutePath() + "/hedgewars.ini");
- namegen = new HWNamegen();
#ifdef __APPLE__
panel = new M3Panel;
@@ -167,14 +176,10 @@
connect(ui.pageMain->BtnDataDownload, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
pageSwitchMapper->setMapping(ui.pageMain->BtnDataDownload, ID_PAGE_DATADOWNLOAD);
- connect(ui.pageMain->BtnExit, SIGNAL(pressed()), this, SLOT(btnExitPressed()));
- connect(ui.pageMain->BtnExit, SIGNAL(clicked()), this, SLOT(btnExitClicked()));
+ //connect(ui.pageMain->BtnExit, SIGNAL(pressed()), this, SLOT(btnExitPressed()));
+ //connect(ui.pageMain->BtnExit, SIGNAL(clicked()), this, SLOT(btnExitClicked()));
- connect(ui.pageEditTeam->BtnTeamSave, SIGNAL(clicked()), this, SLOT(TeamSave()));
- connect(ui.pageEditTeam->BtnTeamDiscard, SIGNAL(clicked()), this, SLOT(TeamDiscard()));
-
- connect(ui.pageEditTeam->signalMapper2, SIGNAL(mapped(const int &)), this, SLOT(RandomName(const int &)));
- connect(ui.pageEditTeam->randTeamButton, SIGNAL(clicked()), this, SLOT(RandomNames()));
+ connect(ui.pageEditTeam, SIGNAL(teamEdited()), this, SLOT(AfterTeamEdit()));
connect(ui.pageMultiplayer->BtnStartMPGame, SIGNAL(clicked()), this, SLOT(StartMPGame()));
connect(ui.pageMultiplayer->teamsSelect, SIGNAL(setEnabledGameStart(bool)),
@@ -189,11 +194,11 @@
connect(ui.pagePlayDemo->BtnPlayDemo, SIGNAL(clicked()), this, SLOT(PlayDemo()));
connect(ui.pagePlayDemo->DemosList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(PlayDemo()));
- connect(ui.pageOptions->BtnNewTeam, SIGNAL(clicked()), this, SLOT(NewTeam()));
- connect(ui.pageOptions->BtnEditTeam, SIGNAL(clicked()), this, SLOT(EditTeam()));
- connect(ui.pageOptions->BtnDeleteTeam, SIGNAL(clicked()), this, SLOT(DeleteTeam()));
- connect(ui.pageOptions->BtnSaveOptions, SIGNAL(clicked()), config, SLOT(SaveOptions()));
- connect(ui.pageOptions->BtnSaveOptions, SIGNAL(clicked()), this, SLOT(GoBack()));
+ connect(ui.pageOptions, SIGNAL(newTeamRequested()), this, SLOT(NewTeam()));
+ connect(ui.pageOptions, SIGNAL(editTeamRequested(const QString&)), this, SLOT(EditTeam(const QString&)));
+ connect(ui.pageOptions, SIGNAL(deleteTeamRequested(const QString&)), this, SLOT(DeleteTeam(const QString&)));
+ connect(ui.pageOptions->btnSave, SIGNAL(clicked()), config, SLOT(SaveOptions()));
+ connect(ui.pageOptions->btnSave, SIGNAL(clicked()), this, SLOT(GoBack()));
connect(ui.pageOptions->BtnAssociateFiles, SIGNAL(clicked()), this, SLOT(AssociateFiles()));
connect(ui.pageOptions->WeaponEdit, SIGNAL(clicked()), this, SLOT(GoToSelectWeapon()));
@@ -240,7 +245,7 @@
connect(ui.pageSinglePlayer->BtnLoad, SIGNAL(clicked()), this, SLOT(GoToSaves()));
connect(ui.pageSinglePlayer->BtnDemos, SIGNAL(clicked()), this, SLOT(GoToDemos()));
- connect(ui.pageTraining->BtnStartTrain, SIGNAL(clicked()), this, SLOT(StartTraining()));
+ connect(ui.pageTraining, SIGNAL(startMission(const QString&)), this, SLOT(startTraining(const QString&)));
connect(ui.pageCampaign->BtnStartCampaign, SIGNAL(clicked()), this, SLOT(StartCampaign()));
connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int)));
@@ -281,26 +286,27 @@
#ifdef USE_XFIRE
void HWForm::updateXfire(void)
{
- if(hwnet)
+ if(hwnet && (hwnet->clientState() != HWNewNet::Disconnected))
{
xfire_setvalue(XFIRE_SERVER, !hwnet->getHost().compare("netserver.hedgewars.org:46631") ? "Official server" : hwnet->getHost().toAscii());
- switch(hwnet->getClientState())
+ switch(hwnet->clientState())
{
- case 1: // Connecting
+ case HWNewNet::Connecting: // Connecting
+ case HWNewNet::Connected:
xfire_setvalue(XFIRE_STATUS, "Connecting");
xfire_setvalue(XFIRE_NICKNAME, "-");
xfire_setvalue(XFIRE_ROOM, "-");
- case 2: // In lobby
+ case HWNewNet::InLobby: // In lobby
xfire_setvalue(XFIRE_STATUS, "Online");
xfire_setvalue(XFIRE_NICKNAME, hwnet->getNick().toAscii());
xfire_setvalue(XFIRE_ROOM, "In game lobby");
break;
- case 3: // In room
+ case HWNewNet::InRoom: // In room
xfire_setvalue(XFIRE_STATUS, "Online");
xfire_setvalue(XFIRE_NICKNAME, hwnet->getNick().toAscii());
xfire_setvalue(XFIRE_ROOM, (hwnet->getRoom() + " (waiting for players)").toAscii());
break;
- case 5: // In game
+ case HWNewNet::InGame: // In game
xfire_setvalue(XFIRE_STATUS, "Online");
xfire_setvalue(XFIRE_NICKNAME, hwnet->getNick().toAscii());
xfire_setvalue(XFIRE_ROOM, (hwnet->getRoom() + " (playing or spectating)").toAscii());
@@ -456,6 +462,10 @@
#ifdef USE_XFIRE
updateXfire();
#endif
+ if (id == ID_PAGE_DATADOWNLOAD)
+ {
+ ui.pageDataDownload->fetchList();
+ }
if (id == ID_PAGE_DRAWMAP) {
DrawMapScene * scene;
if(lastid == ID_PAGE_MULTIPLAYER)
@@ -473,14 +483,18 @@
ui.pageNetGame->pGameCFG->pMapContainer->mapDrawingFinished();
}
+ if (id == ID_PAGE_ROOMSLIST) {
+ if (hwnet && game && game->gameState == gsStarted) { // abnormal exit - kick or room destruction - send kills.
+ game->netSuspend = true;
+ ui.pageRoomsList->displayWarning(tr("Game aborted"));
+ game->abort();
+ }
+ }
+
if (id == ID_PAGE_MULTIPLAYER || id == ID_PAGE_NETGAME) {
QStringList tmNames = config->GetTeamsList();
TeamSelWidget* curTeamSelWidget;
- ui.pageOptions->BtnNewTeam->setVisible(false);
- ui.pageOptions->BtnEditTeam->setVisible(false);
- ui.pageOptions->BtnDeleteTeam->setVisible(false);
- ui.pageOptions->CBTeamName->setVisible(false);
- ui.pageOptions->LblNoEditTeam->setVisible(true);
+ ui.pageOptions->setTeamOptionsEnabled(false);
if (id == ID_PAGE_MULTIPLAYER) {
curTeamSelWidget = ui.pageMultiplayer->teamsSelect;
@@ -511,11 +525,7 @@
}
if (id == ID_PAGE_MAIN) {
- ui.pageOptions->BtnNewTeam->setVisible(true);
- ui.pageOptions->BtnEditTeam->setVisible(true);
- ui.pageOptions->BtnDeleteTeam->setVisible(true);
- ui.pageOptions->CBTeamName->setVisible(true);
- ui.pageOptions->LblNoEditTeam->setVisible(false);
+ ui.pageOptions->setTeamOptionsEnabled(true);
}
// load and save ignore/friends lists
@@ -527,13 +537,9 @@
if (id == ID_PAGE_NETGAME) // joining a room
ui.pageNetGame->pChatWidget->loadLists(ui.pageOptions->editNetNick->text());
// joining the lobby
- else if (id == ID_PAGE_ROOMSLIST) {
- if (hwnet && game && game->gameState == gsStarted) { // abnormal exit - kick or room destruction - send kills.
- game->netSuspend = true;
- game->KillAllTeams();
- }
+ else if (id == ID_PAGE_ROOMSLIST)
ui.pageRoomsList->chatWidget->loadLists(ui.pageOptions->editNetNick->text());
- }
+
}
void HWForm::GoToPage(int id)
@@ -546,8 +552,11 @@
void HWForm::GoBack()
{
+ int curid = ui.Pages->currentIndex();
+ if (curid == ID_PAGE_MAIN)
+ exit();
+
int id = PagesStack.isEmpty() ? ID_PAGE_MAIN : PagesStack.pop();
- int curid = ui.Pages->currentIndex();
ui.Pages->setCurrentIndex(id);
OnPageShown(id, curid);
@@ -563,7 +572,7 @@
GoBack();
if (curid == ID_PAGE_ROOMSLIST || curid == ID_PAGE_CONNECTING) NetDisconnect();
- if (curid == ID_PAGE_NETGAME && hwnet) hwnet->partRoom();
+ if (curid == ID_PAGE_NETGAME && hwnet && hwnet->isInRoom()) hwnet->partRoom();
// need to work on this, can cause invalid state for admin quit trying to prevent bad state message on kick
//if (curid == ID_PAGE_NETGAME && (!game || game->gameState != gsStarted)) hwnet->partRoom();
@@ -582,14 +591,15 @@
eggTimer.start();
}
-void HWForm::btnExitClicked()
+void HWForm::exit()
{
- if (eggTimer.elapsed() < 3000){
+// if (eggTimer.elapsed() < 3000){
#ifdef __APPLE__
panel->showInstallController();
#endif
close();
- }
+// TODO reactivate egg
+/* }
else
{
QPushButton * btn = findChild<QPushButton *>("imageButt");
@@ -597,7 +607,7 @@
{
btn->setIcon(QIcon(":/res/bonus.png"));
}
- }
+ } */
}
void HWForm::IntermediateSetup()
@@ -624,61 +634,30 @@
void HWForm::NewTeam()
{
- editedTeam = new HWTeam(QLineEdit::tr("unnamed"));
- editedTeam->SetToPage(this);
- GoToPage(ID_PAGE_SETUP_TEAM);
-}
-
-void HWForm::EditTeam()
-{
- editedTeam = new HWTeam(ui.pageOptions->CBTeamName->currentText());
- editedTeam->loadFromFile();
- editedTeam->SetToPage(this);
+ ui.pageEditTeam->createTeam(QLineEdit::tr("unnamed"), playerHash);
+ UpdateTeamsLists();
GoToPage(ID_PAGE_SETUP_TEAM);
}
-void HWForm::DeleteTeam()
+void HWForm::EditTeam(const QString & teamName)
{
- QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Teams"), QMessageBox::tr("Really delete this team?"), QMessageBox::Ok | QMessageBox::Cancel);
-
- if (reallyDelete.exec() == QMessageBox::Ok) {
- editedTeam = new HWTeam(ui.pageOptions->CBTeamName->currentText());
- editedTeam->deleteFile();
-
- // Remove from lists
- ui.pageOptions->CBTeamName->removeItem(ui.pageOptions->CBTeamName->currentIndex());
- }
+ ui.pageEditTeam->editTeam(teamName, playerHash);
+ GoToPage(ID_PAGE_SETUP_TEAM);
}
-void HWForm::RandomNames()
-{
- editedTeam->GetFromPage(this);
- namegen->teamRandomNames(*editedTeam, true);
- editedTeam->SetToPage(this);
-}
-
-void HWForm::RandomName(const int &i)
+void HWForm::AfterTeamEdit()
{
- editedTeam->GetFromPage(this);
- namegen->teamRandomName(*editedTeam,i);
- editedTeam->SetToPage(this);
-}
-
-void HWForm::TeamSave()
-{
- editedTeam->GetFromPage(this);
- editedTeam->saveToFile();
- delete editedTeam;
- editedTeam=0;
UpdateTeamsLists();
GoBack();
}
-void HWForm::TeamDiscard()
+
+void HWForm::DeleteTeam(const QString & teamName)
{
- delete editedTeam;
- editedTeam=0;
- GoBack();
+ ui.pageEditTeam->deleteTeam(teamName);
+ QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Teams"), QMessageBox::tr("Really delete this team?"), QMessageBox::Ok | QMessageBox::Cancel);
+
+ UpdateTeamsLists();
}
void HWForm::DeleteScheme()
@@ -798,19 +777,19 @@
ShowErrorMessage(errmsg);
// no break
case ID_PAGE_NETGAME:
- ui.pageNetGame->pChatWidget->addLine("Error",errmsg);
+ ui.pageNetGame->displayError(errmsg);
break;
default:
- ui.pageRoomsList->chatWidget->addLine("Error",errmsg);
+ ui.pageRoomsList->displayError(errmsg);
}
}
void HWForm::NetWarning(const QString & wrnmsg)
{
if (ui.Pages->currentIndex() == ID_PAGE_NETGAME || ui.Pages->currentIndex() == ID_PAGE_INGAME)
- ui.pageNetGame->pChatWidget->addLine("Warning",wrnmsg);
+ ui.pageNetGame->displayWarning(wrnmsg);
else
- ui.pageRoomsList->chatWidget->addLine("Warning",wrnmsg);
+ ui.pageRoomsList->displayWarning(wrnmsg);
}
void HWForm::_NetConnect(const QString & hostName, quint16 port, QString nick)
@@ -828,7 +807,7 @@
GoToPage(ID_PAGE_CONNECTING);
connect(hwnet, SIGNAL(AskForRunGame()), this, SLOT(CreateNetGame()));
- connect(hwnet, SIGNAL(Connected()), this, SLOT(NetConnected()));
+ connect(hwnet, SIGNAL(connected()), this, SLOT(NetConnected()));
connect(hwnet, SIGNAL(Error(const QString&)), this, SLOT(NetError(const QString&)));
connect(hwnet, SIGNAL(Warning(const QString&)), this, SLOT(NetWarning(const QString&)));
connect(hwnet, SIGNAL(EnteredGame()), this, SLOT(NetGameEnter()));
@@ -944,7 +923,7 @@
connect(ui.pageAdmin, SIGNAL(clearAccountsCache()), hwnet, SLOT(clearAccountsCache()));
// disconnect
- connect(hwnet, SIGNAL(Disconnected(const QString&)), this, SLOT(ForcedDisconnect(const QString&)), Qt::QueuedConnection);
+ connect(hwnet, SIGNAL(disconnected(const QString&)), this, SLOT(ForcedDisconnect(const QString&)), Qt::QueuedConnection);
// config stuff
connect(hwnet, SIGNAL(paramChanged(const QString &, const QStringList &)), ui.pageNetGame->pGameCFG, SLOT(setParam(const QString &, const QStringList &)));
@@ -1166,11 +1145,11 @@
demofile.close();
}
-void HWForm::StartTraining()
+void HWForm::startTraining(const QString & scriptName)
{
CreateGame(0, 0, 0);
- game->StartTraining(ui.pageTraining->CBSelect->itemData(ui.pageTraining->CBSelect->currentIndex()).toString());
+ game->StartTraining(scriptName);
}
void HWForm::StartCampaign()
@@ -1187,7 +1166,7 @@
ui.pageNetGame->pGameCFG->WeaponsName->currentIndex()
).toString();
- CreateGame(ui.pageNetGame->pGameCFG, ui.pageNetGame->pNetTeamsWidget, ammo);
+ CreateGame(ui.pageNetGame->pGameCFG, ui.pageNetGame->pNetTeamsWidget, ammo);
connect(game, SIGNAL(SendNet(const QByteArray &)), hwnet, SLOT(SendNet(const QByteArray &)));
connect(game, SIGNAL(SendChat(const QString &)), hwnet, SLOT(chatLineToNet(const QString &)));
@@ -1210,9 +1189,9 @@
void HWForm::Music(bool checked)
{
if (checked)
- sdli.StartMusic();
+ SDLInteraction::instance().startMusic();
else
- sdli.StopMusic();
+ SDLInteraction::instance().stopMusic();
}
void HWForm::NetGameChangeStatus(bool isMaster)
@@ -1240,7 +1219,7 @@
// disconnect connections first to ensure their inexistance and not to connect twice
ui.pageNetGame->BtnStart->disconnect(hwnet);
ui.pageNetGame->BtnUpdate->disconnect(hwnet);
- ui.pageNetGame->leRoomName->setText(hwnet->getRoom());
+ ui.pageNetGame->setRoomName(hwnet->getRoom());
ui.pageNetGame->restrictJoins->disconnect(hwnet);
ui.pageNetGame->restrictTeamAdds->disconnect(hwnet);
connect(ui.pageNetGame->BtnStart, SIGNAL(clicked()), hwnet, SLOT(startGame()));
@@ -1286,7 +1265,7 @@
{
GoBack();
if (!reason.isEmpty())
- ui.pageRoomsList->chatWidget->addLine("Notice",reason);
+ ui.pageRoomsList->displayNotice(reason);
}
else
qWarning("Left room while not in room");
@@ -1309,24 +1288,14 @@
HWTeam team(ui.pageCampaign->CBTeam->currentText());
ui.pageCampaign->CBSelect->clear();
- QDir tmpdir;
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data/Missions/Campaign");
- tmpdir.setFilter(QDir::Files);
- QStringList userentries = tmpdir.entryList(QStringList("*#*.lua"));
- //entries.sort();
- unsigned int n = userentries.count();
- for(unsigned int i = 0; (i < n) && (i <= team.campaignProgress()); i++)
- ui.pageCampaign->CBSelect->addItem(QString(userentries[i]).replace(QRegExp("^(\\d+)#(.+)\\.lua"), QComboBox::tr("Mission") + " \\1: \\2").replace("_", " "), QString(userentries[i]).replace(QRegExp("^(.*)\\.lua"), "\\1"));
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Missions/Campaign");
- tmpdir.setFilter(QDir::Files);
- QStringList entries = tmpdir.entryList(QStringList("*#*.lua"));
- //entries.sort();
- n = entries.count();
+ QStringList entries = HWDataManager::instance().entryList(
+ "Missions/Campaign",
+ QDir::Files,
+ QStringList("*#*.lua")
+ );
+
+ unsigned int n = entries.count();
for(unsigned int i = 0; (i < n) && (i <= team.campaignProgress()); i++) {
- if (userentries.contains(entries[i])) continue;
ui.pageCampaign->CBSelect->addItem(QString(entries[i]).replace(QRegExp("^(\\d+)#(.+)\\.lua"), QComboBox::tr("Mission") + " \\1: \\2").replace("_", " "), QString(entries[i]).replace(QRegExp("^(.*)\\.lua"), "\\1"));
}
}
--- a/QTfrontend/hwform.h Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/hwform.h Fri Oct 28 18:26:17 2011 +0200
@@ -22,11 +22,12 @@
#include <QMainWindow>
#include <QStack>
#include <QTime>
+#include <QPointer>
#include "netserver.h"
#include "game.h"
#include "ui_hwform.h"
-#include "SDLs.h"
+#include "SDLInteraction.h"
#include "bgwidget.h"
#ifdef __APPLE__
@@ -54,11 +55,11 @@
public:
HWForm(QWidget *parent = 0, QString styleSheet = "");
Ui_HWForm ui;
- SDLInteraction sdli;
GameUIConfig * config;
QSettings * gameSettings; // Same file GameUIConfig points to but without the baggage. Needs sync() calls if you want to get GameUIConfig changes though
void updateXfire();
void PlayDemoQuick(const QString & demofilename);
+ void exit();
private slots:
void GoToSaves();
@@ -76,20 +77,16 @@
QString getDemoArguments();
void AssociateFiles();
void btnExitPressed();
- void btnExitClicked();
void IntermediateSetup();
void NewTeam();
- void EditTeam();
- void DeleteTeam();
- void RandomNames();
- void RandomName(const int &i);
- void TeamSave();
- void TeamDiscard();
+ void EditTeam(const QString & teamName);
+ void AfterTeamEdit();
+ void DeleteTeam(const QString & teamName);
void DeleteScheme();
void DeleteWeaponSet();
void SimpleGame();
void PlayDemo();
- void StartTraining();
+ void startTraining(const QString&);
void StartCampaign();
void NetConnect();
void NetConnectServer(const QString & host, quint16 port);
@@ -160,11 +157,11 @@
ID_PAGE_DRAWMAP = 20,
ID_PAGE_DATADOWNLOAD = 21
};
- HWGame * game;
- HWNetServer* pnetserver;
- HWNetRegisterServer* pRegisterServer;
- HWTeam * editedTeam;
- HWNewNet * hwnet;
+ QPointer<HWGame> game;
+ QPointer<HWNetServer> pnetserver;
+ QPointer<HWNetRegisterServer> pRegisterServer;
+ QPointer<HWTeam> editedTeam;
+ QPointer<HWNewNet> hwnet;
HWNamegen * namegen;
AmmoSchemeModel * ammoSchemeModel;
QStack<int> PagesStack;
--- a/QTfrontend/hwmap.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Ulyanov Igor <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "hwconsts.h"
-#include "hwmap.h"
-
-HWMap::HWMap() :
- TCPBase(false)
-{
-}
-
-HWMap::~HWMap()
-{
-}
-
-void HWMap::getImage(const QString & seed, int filter, MapGenerator mapgen, int maze_size, const QByteArray & drawMapData)
-{
- m_seed = seed;
- templateFilter = filter;
- m_mapgen = mapgen;
- m_maze_size = maze_size;
- if(mapgen == MAPGEN_DRAWN) m_drawMapData = drawMapData;
- Start();
-}
-
-QStringList HWMap::getArguments()
-{
- QStringList arguments;
- arguments << cfgdir->absolutePath();
- arguments << QString("%1").arg(ipc_port);
- arguments << "landpreview";
- return arguments;
-}
-
-void HWMap::onClientDisconnect()
-{
- if (readbuffer.size() == 128 * 32 + 1)
- {
- quint8 *buf = (quint8*) readbuffer.constData();
- QImage im(buf, 256, 128, QImage::Format_Mono);
- im.setNumColors(2);
- emit HHLimitReceived(buf[128 * 32]);
- emit ImageReceived(im);
- }
-}
-
-void HWMap::SendToClientFirst()
-{
- SendIPC(QString("eseed %1").arg(m_seed).toUtf8());
- SendIPC(QString("e$template_filter %1").arg(templateFilter).toUtf8());
- SendIPC(QString("e$mapgen %1").arg(m_mapgen).toUtf8());
-
- switch (m_mapgen)
- {
- case MAPGEN_MAZE:
- SendIPC(QString("e$maze_size %1").arg(m_maze_size).toUtf8());
- break;
-
- case MAPGEN_DRAWN:
- {
- QByteArray data = m_drawMapData;
- while(data.size() > 0)
- {
- QByteArray tmp = data;
- tmp.truncate(200);
- SendIPC("edraw " + tmp);
- data.remove(0, 200);
- }
- break;
- }
- default: ;
- }
-
- SendIPC("!");
-}
--- a/QTfrontend/hwmap.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _HWMAP_INCLUDED
-#define _HWMAP_INCLUDED
-
-#include <QByteArray>
-#include <QString>
-#include <QImage>
-
-#include "tcpBase.h"
-
-enum MapGenerator
-{
- MAPGEN_REGULAR,
- MAPGEN_MAZE,
- MAPGEN_DRAWN,
- MAPGEN_MAP
-};
-
-class HWMap : public TCPBase
-{
- Q_OBJECT
-
- public:
- HWMap();
- virtual ~HWMap();
- void getImage(const QString & seed, int templateFilter, MapGenerator mapgen, int maze_size, const QByteArray & drawMapData);
-
- protected:
- virtual QStringList getArguments();
- virtual void onClientDisconnect();
- virtual void SendToClientFirst();
-
- signals:
- void ImageReceived(const QImage newImage);
- void HHLimitReceived(int hhLimit);
-
- private:
- QString m_seed;
- int templateFilter;
- MapGenerator m_mapgen;
- int m_maze_size;
- QByteArray m_drawMapData;
-
- private slots:
-};
-
-#endif // _HWMAP_INCLUDED
--- a/QTfrontend/igbox.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QPainter>
-#include <QPoint>
-#include <QStylePainter>
-#include <QStyleOptionGroupBox>
-
-#include "igbox.h"
-
-IconedGroupBox::IconedGroupBox(QWidget * parent)
- : QGroupBox(parent)
-{
-// Has issues with border-radius on children
-// setAttribute(Qt::WA_PaintOnScreen, true);
- titleLeftPadding = 49;
- contentTopPadding = 15;
-}
-
-void IconedGroupBox::setIcon(const QIcon & icon)
-{
- if (this->icon.isNull())
- setStyleSheet(QString(
- "IconedGroupBox{"
- "margin-top: 46px;"
- "margin-left: 12px;"
- "padding: %1px 2px 5px 2px;"
- "}"
- "IconedGroupBox::title{"
- "subcontrol-origin: margin;"
- "subcontrol-position: top left;"
- "padding-left: %2px;"
- "padding-top: %1px;"
- "text-align: left;"
- "}"
- ).arg(contentTopPadding).arg(titleLeftPadding)
- );
-
- this->icon = icon;
- repaint();
-}
-
-void IconedGroupBox::paintEvent(QPaintEvent * event)
-{
- Q_UNUSED(event);
-
- QStylePainter painter(this);
-
- QStyleOptionGroupBox option;
- initStyleOption(&option);
- painter.drawComplexControl(QStyle::CC_GroupBox, option);
-
- icon.paint(&painter, QRect(QPoint(0, 0), icon.actualSize(size())));
-}
-
-void IconedGroupBox::setTitleTextPadding(int px)
-{
- titleLeftPadding = px;
-}
-
-void IconedGroupBox::setContentTopPadding(int px)
-{
- contentTopPadding = px;
-}
--- a/QTfrontend/igbox.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _IGBOX_H
-#define _IGBOX_H
-
-#include <QGroupBox>
-#include <QIcon>
-
-class IconedGroupBox : public QGroupBox
-{
- Q_OBJECT
-
-public:
- IconedGroupBox(QWidget * parent = 0);
-
- void setIcon(const QIcon & icon);
- void setTitleTextPadding(int px);
- void setContentTopPadding(int px);
-protected:
- virtual void paintEvent(QPaintEvent * event);
-
-private:
- QIcon icon;
- int titleLeftPadding;
- int contentTopPadding;
-};
-
-#endif // _IGBOX_H
--- a/QTfrontend/input_ip.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QLineEdit>
-#include <QSpinBox>
-#include <QPushButton>
-#include <QGridLayout>
-#include <QLabel>
-
-#include "input_ip.h"
-
-HWHostPortDialog::HWHostPortDialog(QWidget* parent) : QDialog(parent)
-{
- QGridLayout * layout = new QGridLayout(this);
-
- QLabel * lbHost = new QLabel(this);
- lbHost->setText(QLabel::tr("Host:"));
- layout->addWidget(lbHost, 0, 0);
-
- QLabel * lbPort = new QLabel(this);
- lbPort->setText(QLabel::tr("Port:"));
- layout->addWidget(lbPort, 1, 0);
-
- leHost = new QLineEdit(this);
- layout->addWidget(leHost, 0, 1, 1, 2);
-
- sbPort = new QSpinBox(this);
- sbPort->setMinimum(0);
- sbPort->setMaximum(65535);
- layout->addWidget(sbPort, 1, 1, 1, 2);
-
- pbDefault = new QPushButton(this);
- pbDefault->setText(QPushButton::tr("default"));
- layout->addWidget(pbDefault, 1, 3);
-
- pbOK = new QPushButton(this);
- pbOK->setText(QPushButton::tr("OK"));
- pbOK->setDefault(true);
- layout->addWidget(pbOK, 3, 1);
-
- pbCancel = new QPushButton(this);
- pbCancel->setText(QPushButton::tr("Cancel"));
- layout->addWidget(pbCancel, 3, 2);
-
- connect(pbOK, SIGNAL(clicked()), this, SLOT(accept()));
- connect(pbCancel, SIGNAL(clicked()), this, SLOT(reject()));
- connect(pbDefault, SIGNAL(clicked()), this, SLOT(setDefaultPort()));
-}
-
-void HWHostPortDialog::setDefaultPort()
-{
- sbPort->setValue(46631);
-}
--- a/QTfrontend/input_ip.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-
-#ifndef INPUT_IP_H
-#define INPUT_IP_H
-
-#include <QDialog>
-#include <QHostAddress>
-
-class QLineEdit;
-class QSpinBox;
-class QPushButton;
-
-class HWHostPortDialog : public QDialog
-{
- Q_OBJECT
-public:
- HWHostPortDialog(QWidget* parent = 0);
-
- QLineEdit* leHost;
- QSpinBox* sbPort;
-
-private:
- QPushButton* pbOK;
- QPushButton* pbCancel;
- QPushButton * pbDefault;
-
-private slots:
- void setDefaultPort();
-};
-
-
-#endif // INPUT_IP_H
--- a/QTfrontend/itemNum.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Igor Ulyanov <iulyanov@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "itemNum.h"
-#include "hwform.h"
-
-#include <QMouseEvent>
-#include <QPainter>
-
-ItemNum::ItemNum(const QImage& im, const QImage& img, QWidget * parent, unsigned char min, unsigned char max) :
- QFrame(parent), m_im(im), m_img(img), infinityState(false), nonInteractive(false), minItems(min), maxItems(max),
- numItems(min+2 >= max ? min : min+2)
-{
- enabled = true;
- if(frontendEffects) setAttribute(Qt::WA_PaintOnScreen, true);
-}
-
-ItemNum::~ItemNum()
-{
-}
-
-void ItemNum::mousePressEvent ( QMouseEvent * event )
-{
- if(nonInteractive) return;
- if(event->button()==Qt::LeftButton && enabled) {
- event->accept();
- if((infinityState && numItems <= maxItems) || (!infinityState && numItems < maxItems)) {
- incItems();
- } else {
- numItems = minItems+1;
- // appears there's an emit in there
- decItems();
- }
- } else if (event->button()==Qt::RightButton && enabled) {
- event->accept();
- if(numItems > minItems) {
- decItems();
- } else {
- numItems = maxItems+(infinityState?0:-1);
- incItems();
- }
- } else {
- event->ignore();
- return;
- }
- repaint();
-}
-
-QSize ItemNum::sizeHint () const
-{
- return QSize((maxItems+1)*12, 32);
-}
-
-void ItemNum::paintEvent(QPaintEvent* event)
-{
- Q_UNUSED(event);
-
- QPainter painter(this);
-
- if (numItems==maxItems+1) {
- QRect target(0, 0, 100, 32);
- if (enabled) {
- painter.drawImage(target, QImage(":/res/infinity.png"));
- } else {
- painter.drawImage(target, QImage(":/res/infinitygrey.png"));
- }
- } else {
- for(int i=0; i<numItems; i++) {
- QRect target(11 * i, i % 2, 25, 35);
- if (enabled) {
- painter.drawImage(target, m_im);
- } else {
- painter.drawImage(target, m_img);
- }
- }
- }
-}
-
-unsigned char ItemNum::getItemsNum() const
-{
- return numItems;
-}
-
-void ItemNum::setItemsNum(const unsigned char num)
-{
- numItems=num;
- repaint();
-}
-
-void ItemNum::setInfinityState(bool value)
-{
- infinityState=value;
-}
-
-void ItemNum::setEnabled(bool value)
-{
- enabled=value;
- repaint();
-}
--- a/QTfrontend/itemNum.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Igor Ulyanov <iulyanov@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QFrame>
-#include <QImage>
-
-#ifndef _ITEM_NUM_INCLUDED
-#define _ITEM_NUM_INCLUDED
-
-class ItemNum : public QFrame
-{
- Q_OBJECT
-
- public:
- void setInfinityState(bool value);
- void setEnabled(bool value);
- unsigned char getItemsNum() const;
- void setItemsNum(const unsigned char num);
-
- private:
- QImage m_im;
- QImage m_img;
- bool infinityState;
- bool enabled;
-
- protected:
- ItemNum(const QImage& im, const QImage& img, QWidget * parent, unsigned char min=2, unsigned char max=8);
- virtual QSize sizeHint () const;
- virtual ~ItemNum()=0;
-
- bool nonInteractive;
- unsigned char minItems;
- unsigned char maxItems;
- unsigned char numItems;
-
- // from QWidget
- virtual void mousePressEvent ( QMouseEvent * event );
- virtual void paintEvent(QPaintEvent* event);
-
- // to be implemented in child
- virtual void incItems()=0;
- virtual void decItems()=0;
-};
-
-#endif // _ITEM_NUM_INCLUDED
--- a/QTfrontend/main.cpp Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/main.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -30,6 +30,8 @@
#include "hwform.h"
#include "hwconsts.h"
+#include "HWDataManager.h"
+
#ifdef _WIN32
#include <Shlobj.h>
#endif
@@ -96,229 +98,6 @@
Q_INIT_RESOURCE(hedgewars);
- QString styleSheetFromHell =
- QString(
- "HWForm,QDialog{"
- "background-image: url(\":/res/Background.png\");"
- "background-position: bottom center;"
- "background-repeat: repeat-x;"
- "background-color: #141250;"
- "}"
-
- "* {"
- "color: #ffcc00;"
- "selection-background-color: #ffcc00;"
- "selection-color: #00351d;"
- "}"
-
- "QLineEdit, QListWidget, QTableView, QTextBrowser, QSpinBox, QComboBox, "
- "QComboBox QAbstractItemView, QMenu::item {"
- "background-color: rgba(13, 5, 68, 70%);"
- "}"
-
- "QComboBox::separator {"
- "border: solid; border-width: 3px; border-color: #ffcc00;"
- "}"
-
- "QPushButton, QListWidget, QTableView, QLineEdit, QHeaderView, "
- "QTextBrowser, QSpinBox, QToolBox, QComboBox, "
- "QComboBox QAbstractItemView, IconedGroupBox, "
- ".QGroupBox, GameCFGWidget, TeamSelWidget, SelWeaponWidget, "
- "QTabWidget::pane, QTabBar::tab {"
- "border: solid;"
- "border-width: 3px;"
- "border-color: #ffcc00;"
- "}"
-
- "QPushButton:hover, QLineEdit:hover, QListWidget:hover, "
- "QSpinBox:hover, QToolBox:hover, QComboBox:hover {"
- "border-color: yellow;"
- "}"
-
- "QLineEdit, QListWidget,QTableView, QTextBrowser, "
- "QSpinBox, QToolBox { "
- "border-radius: 10px;"
- "}"
-
- "QLineEdit, QLabel, QHeaderView, QListWidget, QTableView, "
- "QSpinBox, QToolBox::tab, QComboBox, QComboBox QAbstractItemView, "
- "IconedGroupBox, .QGroupBox, GameCFGWidget, TeamSelWidget, "
- "SelWeaponWidget, QCheckBox, QRadioButton, QPushButton {"
- "font: bold 13px;"
- "}"
- "SelWeaponWidget QTabWidget::pane, SelWeaponWidget QTabBar::tab:selected {"
- "background-position: bottom center;"
- "background-repeat: repeat-x;"
- "background-color: #000000;"
- "}"
- ".QGroupBox,GameCFGWidget,TeamSelWidget,SelWeaponWidget {"
- "background-position: bottom center;"
- "background-repeat: repeat-x;"
- "border-radius: 16px;"
- "background-color: rgba(13, 5, 68, 70%);"
- "padding: 6px;"
- "}"
-/* Experimenting with PaintOnScreen and border-radius on IconedGroupBox children didn't work out well
- "IconedGroupBox QComboBox, IconedGroupBox QPushButton, IconedGroupBox QLineEdit, "
- "IconedGroupBox QSpinBox {"
- "border-radius: 0;"
- "}"
- "IconedGroupBox, IconedGroupBox *, QTabWidget::pane, QTabBar::tab:selected, QToolBox::tab QWidget{" */
- "IconedGroupBox, QTabWidget::pane, QTabBar::tab:selected, QToolBox::tab QWidget{"
- "background-color: #130f2c;"
- "}"
-
-
- "QPushButton {"
- "border-radius: 8px;"
- "background-origin: margin;"
- "background-position: top left;"
- "background-color: rgba(18, 42, 5, 70%);"
- "}"
-
- "QPushButton:pressed{"
- "border-color: white;"
- "}"
-
- "QHeaderView {"
- "border-radius: 0;"
- "border-width: 0;"
- "border-bottom-width: 3px;"
- "background-color: #00351d;"
- "}"
- "QTableView {"
- "alternate-background-color: #2f213a;"
- "gridline-color: transparent;"
- "}"
-
- "QTabBar::tab {"
- "border-bottom-width: 0;"
- "border-radius: 0;"
- "border-top-left-radius: 6px;"
- "border-top-right-radius: 6px;"
- "padding: 3px;"
- "}"
- "QTabBar::tab:!selected {"
- "color: #0d0544;"
- "background-color: #ffcc00;"
- "}"
- "QSpinBox::up-button{"
- "background: transparent;"
- "width: 16px;"
- "height: 10px;"
- "}"
-
- "QSpinBox::up-arrow {"
- "image: url(\":/res/spin_up.png\");"
- "}"
-
- "QSpinBox::down-arrow {"
- "image: url(\":/res/spin_down.png\");"
- "}"
-
- "QSpinBox::down-button {"
- "background: transparent;"
- "width: 16px;"
- "height: 10px;"
- "}"
-
- "QComboBox {"
- "border-radius: 10px;"
- "padding: 3px;"
- "}"
- "QComboBox:pressed{"
- "border-color: white;"
- "}"
- "QComboBox::drop-down{"
- "border: transparent;"
- "width: 25px;"
- "}"
- "QComboBox::down-arrow {"
- "image: url(\":/res/dropdown.png\");"
- "}"
-
- "VertScrArea {"
- "background-position: bottom center;"
- "background-repeat: repeat-x;"
- "}"
-
- "IconedGroupBox {"
- "border-radius: 16px;"
- "padding: 2px;"
- "}"
-
- "QGroupBox::title{"
- "subcontrol-origin: margin;"
- "subcontrol-position: top left;"
- "text-align: left;"
- "left: 15px;"
- "top: -4px;"
- "}"
-
- "QCheckBox::indicator:checked{"
- "image: url(\":/res/checked.png\");"
- "}"
- "QCheckBox::indicator:unchecked{"
- "image: url(\":/res/unchecked.png\");"
- "}"
-
- ".QWidget{"
- "background: transparent;"
- "}"
-
- "QTabWidget::pane {"
- "border-top-width: 2px;"
- "}"
-
- "QMenu{"
- "background-color: #ffcc00;"
- "margin: 3px;"
- "}"
- "QMenu::item {"
- "background-color: #0d0544;"
- "border: 1px solid transparent;"
- "font: bold;"
- "padding: 2px 25px 2px 20px;"
- "}"
- "QMenu::item:selected {"
- "background-color: #2d2564;"
- "}"
- "QMenu::indicator {"
- "width: 16px;"
- "height: 16px;"
- "}"
- "QMenu::indicator:non-exclusive:checked{"
- "image: url(\":/res/checked.png\");"
- "}"
- "QMenu::indicator:non-exclusive:unchecked{"
- "image: url(\":/res/unchecked.png\");"
- "}"
-
- "QToolTip{"
- "background-color: #0d0544;"
- "border: 1px solid #ffcc00;"
- "}"
-
- ":disabled{"
- "color: #a0a0a0;"
- "}"
- "SquareLabel, ItemNum {"
- "background-color: #000000;"
- "}"
- "QSlider::groove::horizontal {"
- "height: 2px;"
- "margin: 2px 0px;"
- "background-color: #ffcc00;"
- "}"
- "QSlider::handle::horizontal {"
- "border: 0px;"
- "margin: -2px 0px;"
- "border-radius: 3px;"
- "background-color: #ffcc00;"
- "width: 8px;"
- "}"
- );
-
bindir->cd("bin"); // workaround over NSIS installer
if(cConfigDir->length() == 0)
@@ -386,35 +165,36 @@
return 1;
}
+ HWDataManager & dataMgr = HWDataManager::instance();
+
{
- QDir dir;
- dir.setPath(cfgdir->absolutePath() + "/Data/Themes");
-
QStringList themes;
- themes.append(dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot));
- dir.setPath(datadir->absolutePath() + "/Themes");
- themes.append(dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot));
+ themes.append(dataMgr.entryList(
+ "Themes",
+ QDir::AllDirs | QDir::NoDotAndDotDot)
+ );
QList<QPair<QIcon, QIcon> > icons;
themes.sort();
for(int i = themes.size() - 1; i >= 0; --i)
{
- QFile tmpfile;
- tmpfile.setFileName(QString("%1/Data/Themes/%2/icon.png").arg(cfgdir->absolutePath()).arg(themes.at(i)));
- if (!tmpfile.exists())
- tmpfile.setFileName(QString("%1/Themes/%2/icon.png").arg(datadir->absolutePath()).arg(themes.at(i)));
+ QString file = dataMgr.findFileForRead(
+ QString("Themes/%1/icon.png").arg(themes.at(i))
+ );
- if(tmpfile.exists())
+ if(QFile::exists(file))
{ // load icon
QPair<QIcon, QIcon> ic;
- ic.first = QIcon(QFileInfo(tmpfile).absoluteFilePath());
+ ic.first = QIcon(file);
- QFile previewIconFile;
- previewIconFile.setFileName(QString("%1/Data/Themes/%2/icon@2x.png").arg(cfgdir->absolutePath()).arg(themes.at(i)));
- if (previewIconFile.exists()) ic.second = QIcon(QFileInfo(previewIconFile).absoluteFilePath());
- else ic.second = QIcon(QString("%1/Themes/%2/icon@2x.png").arg(datadir->absolutePath()).arg(themes.at(i)));
+ // load preview icon
+ ic.second = QIcon(
+ dataMgr.findFileForRead(
+ QString("Themes/%1/icon@2x.png").arg(themes.at(i))
+ )
+ );
icons.prepend(ic);
}
@@ -433,30 +213,18 @@
}
}
- QDir tmpdir;
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data/Maps");
- tmpdir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
- mapList = new QStringList(tmpdir.entryList(QStringList("*")));
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Maps");
- tmpdir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
- QStringList tmplist = QStringList(tmpdir.entryList(QStringList("*")));
- for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
- if (!mapList->contains(*it,Qt::CaseInsensitive)) mapList->append(*it);
+ mapList = new QStringList(dataMgr.entryList(
+ QString("Maps"),
+ QDir::Dirs | QDir::NoDotAndDotDot
+ )
+ );
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data/Scripts/Multiplayer");
- tmpdir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
- scriptList = new QStringList(tmpdir.entryList(QStringList("*.lua")));
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Scripts/Multiplayer");
- tmpdir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
- tmplist = QStringList(tmpdir.entryList(QStringList("*.lua")));
- for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
- if (!scriptList->contains(*it,Qt::CaseInsensitive)) scriptList->append(*it);
+ scriptList = new QStringList(dataMgr.entryList(
+ QString("Scripts/Multiplayer"),
+ QDir::Files,
+ QStringList("*.lua")
+ )
+ );
QTranslator Translator;
{
@@ -464,10 +232,13 @@
QString cc = settings.value("misc/locale", QString()).toString();
if(cc.isEmpty())
cc = QLocale::system().name();
- QFile tmpfile;
- tmpfile.setFileName(cfgdir->absolutePath() + "/Data/Locale/hedgewars_" + cc);
- if (!tmpfile.exists()) tmpfile.setFileName(datadir->absolutePath() + "/Locale/hedgewars_" + cc);
- Translator.load(QFileInfo(tmpfile).absoluteFilePath());
+
+ // load locale file into translator
+ Translator.load(
+ dataMgr.findFileForRead(
+ QString("Locale/hedgewars_" + cc)
+ )
+ );
app.installTranslator(&Translator);
}
@@ -485,8 +256,27 @@
CocoaInitializer initializer;
#endif
- app.form = new HWForm(NULL,styleSheetFromHell);
+ QString style = "";
+
+ // load external stylesheet if there is any
+ QFile extFile(dataMgr.findFileForRead("css/qt.css"));
+
+ QFile resFile(":/res/css/qt.css");
+
+ QFile & file = (extFile.exists()?extFile:resFile);
+ if (file.open(QIODevice::ReadOnly | QIODevice::Text))
+ {
+ QTextStream in(&file);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ if(!line.isEmpty())
+ style.append(line);
+ }
+ }
+
+ app.form = new HWForm(NULL, style);
app.form->show();
return app.exec();
}
--- a/QTfrontend/mapContainer.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,669 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Igor Ulyanov <iulyanov@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QPushButton>
-#include <QBuffer>
-#include <QUuid>
-#include <QBitmap>
-#include <QPainter>
-#include <QLinearGradient>
-#include <QColor>
-#include <QTextStream>
-#include <QLabel>
-#include <QListView>
-#include <QVBoxLayout>
-#include <QIcon>
-#include <QLineEdit>
-#include <QMessageBox>
-#include <QStringListModel>
-
-#include "hwconsts.h"
-#include "mapContainer.h"
-#include "igbox.h"
-#include "HWApplication.h"
-
-HWMapContainer::HWMapContainer(QWidget * parent) :
- QWidget(parent),
- mainLayout(this),
- pMap(0),
- mapgen(MAPGEN_REGULAR)
-{
- hhSmall.load(":/res/hh_small.png");
- hhLimit = 18;
- templateFilter = 0;
-
- mainLayout.setContentsMargins(HWApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
- 1,
- HWApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin),
- HWApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
-
- QWidget* mapWidget = new QWidget(this);
- mainLayout.addWidget(mapWidget, 0, 0, Qt::AlignHCenter);
-
- QGridLayout* mapLayout = new QGridLayout(mapWidget);
- mapLayout->setMargin(0);
-
- imageButt = new QPushButton(mapWidget);
- imageButt->setObjectName("imageButt");
- imageButt->setFixedSize(256 + 6, 128 + 6);
- imageButt->setFlat(true);
- imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
- mapLayout->addWidget(imageButt, 0, 0, 1, 2);
- connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomMap()));
-
- chooseMap = new QComboBox(mapWidget);
- chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- chooseMap->addItem(
-// FIXME - need real icons. Disabling until then
-//QIcon(":/res/mapRandom.png"),
-QComboBox::tr("generated map..."));
- chooseMap->addItem(
-// FIXME - need real icons. Disabling until then
-//QIcon(":/res/mapMaze.png"),
-QComboBox::tr("generated maze..."));
-
- chooseMap->addItem(QComboBox::tr("hand drawn map..."));
- chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
-
- chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
-
- int missionindex = chooseMap->count();
- numMissions = 0;
- QFile mapLuaFile;
- QFile mapCfgFile;
- for (int i = 0; i < mapList->size(); ++i) {
- QString map = (*mapList)[i];
- mapCfgFile.setFileName(
- QString("%1/Data/Maps/%2/map.cfg")
- .arg(cfgdir->absolutePath())
- .arg(map));
- if (mapCfgFile.exists()) {
- mapLuaFile.setFileName(
- QString("%1/Data/Maps/%2/map.lua")
- .arg(cfgdir->absolutePath())
- .arg(map));
- } else {
- mapCfgFile.setFileName(
- QString("%1/Maps/%2/map.cfg")
- .arg(datadir->absolutePath())
- .arg(map));
- mapLuaFile.setFileName(
- QString("%1/Maps/%2/map.lua")
- .arg(datadir->absolutePath())
- .arg(map));
- }
-
- if (mapCfgFile.open(QFile::ReadOnly)) {
- QString theme;
- quint32 limit = 0;
- QString scheme;
- QString weapons;
- QList<QVariant> mapInfo;
- QTextStream input(&mapCfgFile);
- input >> theme;
- input >> limit;
- input >> scheme;
- input >> weapons;
- mapInfo.push_back(map);
- mapInfo.push_back(theme);
- if (limit)
- mapInfo.push_back(limit);
- else
- mapInfo.push_back(18);
- mapInfo.push_back(mapLuaFile.exists());
- if (scheme.isEmpty())
- scheme = "locked";
- scheme.replace("_", " ");
- if (weapons.isEmpty())
- weapons = "locked";
- weapons.replace("_", " ");
- mapInfo.push_back(scheme);
- mapInfo.push_back(weapons);
- if(mapLuaFile.exists())
- {
- chooseMap->insertItem(missionindex++,
-// FIXME - need real icons. Disabling until then
-//QIcon(":/res/mapMission.png"),
-QComboBox::tr("Mission") + ": " + map, mapInfo);
- numMissions++;
- }
- else
- chooseMap->addItem(
-// FIXME - need real icons. Disabling until then
-//QIcon(":/res/mapCustom.png"),
-map, mapInfo);
- mapCfgFile.close();
- }
- }
- chooseMap->insertSeparator(missionindex); // separator between missions and maps
-
- connect(chooseMap, SIGNAL(activated(int)), this, SLOT(mapChanged(int)));
- mapLayout->addWidget(chooseMap, 1, 1);
-
- QLabel * lblMap = new QLabel(tr("Map"), mapWidget);
- mapLayout->addWidget(lblMap, 1, 0);
-
- lblFilter = new QLabel(tr("Filter"), mapWidget);
- mapLayout->addWidget(lblFilter, 2, 0);
-
- cbTemplateFilter = new QComboBox(mapWidget);
- cbTemplateFilter->addItem(tr("All"), 0);
- cbTemplateFilter->addItem(tr("Small"), 1);
- cbTemplateFilter->addItem(tr("Medium"), 2);
- cbTemplateFilter->addItem(tr("Large"), 3);
- cbTemplateFilter->addItem(tr("Cavern"), 4);
- cbTemplateFilter->addItem(tr("Wacky"), 5);
- mapLayout->addWidget(cbTemplateFilter, 2, 1);
-
- connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int)));
-
- maze_size_label = new QLabel(tr("Type"), mapWidget);
- mapLayout->addWidget(maze_size_label, 2, 0);
- maze_size_label->hide();
- cbMazeSize = new QComboBox(mapWidget);
- cbMazeSize->addItem(tr("Small tunnels"), 0);
- cbMazeSize->addItem(tr("Medium tunnels"), 1);
- cbMazeSize->addItem(tr("Large tunnels"), 2);
- cbMazeSize->addItem(tr("Small floating islands"), 3);
- cbMazeSize->addItem(tr("Medium floating islands"), 4);
- cbMazeSize->addItem(tr("Large floating islands"), 5);
- cbMazeSize->setCurrentIndex(1);
-
- mapLayout->addWidget(cbMazeSize, 2, 1);
- cbMazeSize->hide();
- connect(cbMazeSize, SIGNAL(activated(int)), this, SLOT(setMazeSize(int)));
-
- gbThemes = new IconedGroupBox(mapWidget);
- gbThemes->setTitleTextPadding(80);
- gbThemes->setContentTopPadding(15);
- gbThemes->setTitle(tr("Themes"));
-
- //gbThemes->setStyleSheet("padding: 0px"); // doesn't work - stylesheet is set with icon
- mapLayout->addWidget(gbThemes, 0, 2, 3, 1);
-
- QVBoxLayout * gbTLayout = new QVBoxLayout(gbThemes);
- gbTLayout->setContentsMargins(0, 0, 0 ,0);
- gbTLayout->setSpacing(0);
- lvThemes = new QListView(mapWidget);
- lvThemes->setMinimumHeight(30);
- lvThemes->setFixedWidth(140);
- lvThemes->setModel(themesModel);
- lvThemes->setIconSize(QSize(16, 16));
- lvThemes->setEditTriggers(QListView::NoEditTriggers);
-
- connect(lvThemes->selectionModel(), SIGNAL(currentRowChanged( const QModelIndex &, const QModelIndex &)), this, SLOT(themeSelected( const QModelIndex &, const QModelIndex &)));
-
- // override default style to tighten up theme scroller
- lvThemes->setStyleSheet(QString(
- "QListView{"
- "border: solid;"
- "border-width: 0px;"
- "border-radius: 0px;"
- "border-color: transparent;"
- "background-color: #0d0544;"
- "color: #ffcc00;"
- "font: bold 13px;"
- "}"
- )
- );
-
- gbTLayout->addWidget(lvThemes);
- lvThemes->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum);
-
- mapLayout->setSizeConstraint(QLayout::SetFixedSize);
-
- QWidget* seedWidget = new QWidget(this);
- mainLayout.addWidget(seedWidget, 1, 0);
-
- QGridLayout* seedLayout = new QGridLayout(seedWidget);
- seedLayout->setMargin(0);
-
- seedLabel = new QLabel(tr("Seed"), seedWidget);
- seedLayout->addWidget(seedLabel, 3, 0);
- seedEdit = new QLineEdit(seedWidget);
- seedEdit->setMaxLength(54);
- connect(seedEdit, SIGNAL(returnPressed()), this, SLOT(seedEdited()));
- seedLayout->addWidget(seedEdit, 3, 1);
- seedLayout->setColumnStretch(1, 5);
- seedSet = new QPushButton(seedWidget);
- seedSet->setText(QPushButton::tr("more"));
- connect(seedSet, SIGNAL(clicked()), this, SLOT(seedEdited()));
- seedLayout->setColumnStretch(2, 1);
- seedLayout->addWidget(seedSet, 3, 2);
-
- seedLabel->setVisible(false);
- seedEdit->setVisible(false);
-
- setRandomSeed();
- setRandomTheme();
-}
-
-void HWMapContainer::setImage(const QImage newImage)
-{
- QPixmap px(256, 128);
- QPixmap pxres(256, 128);
- QPainter p(&pxres);
-
- px.fill(Qt::yellow);
- QBitmap bm = QBitmap::fromImage(newImage);
- px.setMask(bm);
-
- QLinearGradient linearGrad(QPoint(128, 0), QPoint(128, 128));
- linearGrad.setColorAt(1, QColor(0, 0, 192));
- linearGrad.setColorAt(0, QColor(66, 115, 225));
- p.fillRect(QRect(0, 0, 256, 128), linearGrad);
- p.drawPixmap(QPoint(0, 0), px);
-
- addInfoToPreview(pxres);
- //chooseMap->setCurrentIndex(mapgen);
- pMap = 0;
-}
-
-void HWMapContainer::setHHLimit(int newHHLimit)
-{
- hhLimit = newHHLimit;
-}
-
-void HWMapContainer::mapChanged(int index)
-{
- switch(index) {
- case MAPGEN_REGULAR:
- mapgen = MAPGEN_REGULAR;
- updatePreview();
- gbThemes->show();
- lblFilter->show();
- cbTemplateFilter->show();
- maze_size_label->hide();
- cbMazeSize->hide();
- emit mapChanged("+rnd+");
- emit themeChanged(chooseMap->itemData(index).toList()[1].toString());
- break;
- case MAPGEN_MAZE:
- mapgen = MAPGEN_MAZE;
- updatePreview();
- gbThemes->show();
- lblFilter->hide();
- cbTemplateFilter->hide();
- maze_size_label->show();
- cbMazeSize->show();
- emit mapChanged("+maze+");
- emit themeChanged(chooseMap->itemData(index).toList()[1].toString());
- break;
- case MAPGEN_DRAWN:
- mapgen = MAPGEN_DRAWN;
- updatePreview();
- gbThemes->show();
- lblFilter->hide();
- cbTemplateFilter->hide();
- maze_size_label->hide();
- cbMazeSize->hide();
- emit mapChanged("+drawn+");
- emit themeChanged(chooseMap->itemData(index).toList()[1].toString());
- break;
- default:
- mapgen = MAPGEN_MAP;
- updatePreview();
- gbThemes->hide();
- lblFilter->hide();
- cbTemplateFilter->hide();
- maze_size_label->hide();
- cbMazeSize->hide();
- emit mapChanged(chooseMap->itemData(index).toList()[0].toString());
- }
-
- emit mapgenChanged(mapgen);
-}
-
-// Should this add text to identify map size?
-void HWMapContainer::addInfoToPreview(QPixmap image)
-{
- QPixmap finalImage = QPixmap(image.size());
- finalImage.fill(QColor(0, 0, 0, 0));
-
- QPainter p(&finalImage);
- p.drawPixmap(image.rect(), image);
- //p.setPen(QColor(0xf4,0x9e,0xe9));
- p.setPen(QColor(0xff,0xcc,0x00));
- p.setBrush(QColor(0, 0, 0));
- p.drawRect(image.rect().width() - hhSmall.rect().width() - 28, 3, 40, 20);
- p.setFont(QFont("MS Shell Dlg", 10));
- p.drawText(image.rect().width() - hhSmall.rect().width() - 14 - (hhLimit > 9 ? 10 : 0), 18, QString::number(hhLimit));
- p.drawPixmap(image.rect().width() - hhSmall.rect().width() - 5, 5, hhSmall.rect().width(), hhSmall.rect().height(), hhSmall);
-
- imageButt->setIcon(finalImage);
- imageButt->setIconSize(image.size());
-}
-
-void HWMapContainer::askForGeneratedPreview()
-{
- if (pMap)
- {
- disconnect(pMap, 0, this, SLOT(setImage(const QImage)));
- disconnect(pMap, 0, this, SLOT(setHHLimit(int)));
- pMap = 0;
- }
-
- pMap = new HWMap();
- connect(pMap, SIGNAL(ImageReceived(const QImage)), this, SLOT(setImage(const QImage)));
- connect(pMap, SIGNAL(HHLimitReceived(int)), this, SLOT(setHHLimit(int)));
- pMap->getImage(m_seed,
- getTemplateFilter(),
- get_mapgen(),
- getMazeSize(),
- getDrawnMapData()
- );
-}
-
-void HWMapContainer::themeSelected(const QModelIndex & current, const QModelIndex &)
-{
- QString theme = current.data().toString();
- QList<QVariant> mapInfo;
- mapInfo.push_back(QString("+rnd+"));
- mapInfo.push_back(theme);
- mapInfo.push_back(18);
- mapInfo.push_back(false);
- chooseMap->setItemData(0, mapInfo);
- mapInfo[0] = QString("+maze+");
- chooseMap->setItemData(1, mapInfo);
- mapInfo[0] = QString("+drawn+");
- chooseMap->setItemData(2, mapInfo);
-
- gbThemes->setIcon(qVariantValue<QIcon>(current.data(Qt::UserRole)));
- emit themeChanged(theme);
-}
-
-QString HWMapContainer::getCurrentSeed() const
-{
- return m_seed;
-}
-
-QString HWMapContainer::getCurrentMap() const
-{
- if(chooseMap->currentIndex() < MAPGEN_MAP) return QString();
- return chooseMap->itemData(chooseMap->currentIndex()).toList()[0].toString();
-}
-
-QString HWMapContainer::getCurrentTheme() const
-{
- return chooseMap->itemData(chooseMap->currentIndex()).toList()[1].toString();
-}
-
-bool HWMapContainer::getCurrentIsMission() const
-{
- if(!chooseMap->currentIndex()) return false;
- return chooseMap->itemData(chooseMap->currentIndex()).toList()[3].toBool();
-}
-
-int HWMapContainer::getCurrentHHLimit() const
-{
- return hhLimit;
-}
-
-QString HWMapContainer::getCurrentScheme() const
-{
- return chooseMap->itemData(chooseMap->currentIndex()).toList()[4].toString();
-}
-
-QString HWMapContainer::getCurrentWeapons() const
-{
- return chooseMap->itemData(chooseMap->currentIndex()).toList()[5].toString();
-}
-
-quint32 HWMapContainer::getTemplateFilter() const
-{
- return cbTemplateFilter->itemData(cbTemplateFilter->currentIndex()).toInt();
-}
-
-void HWMapContainer::resizeEvent ( QResizeEvent * event )
-{
- Q_UNUSED(event);
- //imageButt->setIconSize(imageButt->size());
-}
-
-void HWMapContainer::intSetSeed(const QString & seed)
-{
- m_seed = seed;
- if (seed != seedEdit->text())
- seedEdit->setText(seed);
-}
-
-void HWMapContainer::setSeed(const QString & seed)
-{
- intSetSeed(seed);
- if (chooseMap->currentIndex() < MAPGEN_DRAWN)
- updatePreview();
-}
-
-void HWMapContainer::intSetMap(const QString & map)
-{
- int id = 0;
- for(int i = 0; i < chooseMap->count(); i++)
- if(!chooseMap->itemData(i).isNull() && chooseMap->itemData(i).toList()[0].toString() == map)
- {
- id = i;
- break;
- }
-
- if(id > 0) {
- if (pMap)
- {
- disconnect(pMap, 0, this, SLOT(setImage(const QImage)));
- disconnect(pMap, 0, this, SLOT(setHHLimit(int)));
- pMap = 0;
- }
- chooseMap->setCurrentIndex(id);
- }
-}
-
-void HWMapContainer::setMap(const QString &map)
-{
- intSetMap(map);
- updatePreview();
-}
-
-void HWMapContainer::setTheme(const QString & theme)
-{
- QModelIndexList mdl = themesModel->match(themesModel->index(0), Qt::DisplayRole, theme);
-
- if(mdl.size())
- lvThemes->setCurrentIndex(mdl.at(0));
-}
-
-void HWMapContainer::setRandomMap()
-{
- setRandomSeed();
- switch(chooseMap->currentIndex())
- {
- case MAPGEN_REGULAR:
- case MAPGEN_MAZE:
- setRandomTheme();
- break;
- case MAPGEN_DRAWN:
- emit drawMapRequested();
- break;
- default:
- if(chooseMap->currentIndex() <= numMissions + MAPGEN_MAP + 1)
- setRandomMission();
- else
- setRandomStatic();
- break;
- }
-}
-
-void HWMapContainer::setRandomStatic()
-{
- int i = MAPGEN_MAP + 3 + numMissions + rand() % (chooseMap->count() - MAPGEN_MAP - 3 - numMissions);
- chooseMap->setCurrentIndex(i);
- mapChanged(i);
-}
-
-void HWMapContainer::setRandomMission()
-{
- int i = MAPGEN_MAP + 2 + rand() % numMissions;
- chooseMap->setCurrentIndex(i);
- mapChanged(i);
-}
-
-void HWMapContainer::setRandomSeed()
-{
- m_seed = QUuid::createUuid().toString();
- seedEdit->setText(m_seed);
- emit seedChanged(m_seed);
- if (chooseMap->currentIndex() < MAPGEN_MAP)
- updatePreview();
-}
-
-void HWMapContainer::setRandomTheme()
-{
- if(!themesModel->rowCount()) return;
- quint32 themeNum = rand() % themesModel->rowCount();
- lvThemes->setCurrentIndex(themesModel->index(themeNum));
-}
-
-void HWMapContainer::intSetTemplateFilter(int filter)
-{
- cbTemplateFilter->setCurrentIndex(filter);
- emit newTemplateFilter(filter);
-}
-
-void HWMapContainer::setTemplateFilter(int filter)
-{
- intSetTemplateFilter(filter);
- updatePreview();
-}
-
-MapGenerator HWMapContainer::get_mapgen(void) const
-{
- return mapgen;
-}
-
-int HWMapContainer::getMazeSize(void) const
-{
- return cbMazeSize->currentIndex();
-}
-
-void HWMapContainer::intSetMazeSize(int size)
-{
- cbMazeSize->setCurrentIndex(size);
- emit mazeSizeChanged(size);
-}
-
-void HWMapContainer::setMazeSize(int size)
-{
- intSetMazeSize(size);
- updatePreview();
-}
-
-void HWMapContainer::intSetMapgen(MapGenerator m)
-{
- mapgen = m;
-
- if(m != MAPGEN_MAP)
- chooseMap->setCurrentIndex(m);
-
- emit mapgenChanged(m);
-}
-
-void HWMapContainer::setMapgen(MapGenerator m)
-{
- intSetMapgen(m);
- updatePreview();
-}
-
-void HWMapContainer::setDrawnMapData(const QByteArray & ar)
-{
- drawMapScene.decode(ar);
- updatePreview();
-}
-
-QByteArray HWMapContainer::getDrawnMapData()
-{
- return drawMapScene.encode();
-}
-
-void HWMapContainer::seedEdited()
-{
- if (seedLabel->isVisible() == false )
- {
- seedLabel->setVisible(true);
- seedEdit->setVisible(true);
- seedSet->setText(tr("Set"));
- return;
- }
-
- if (seedEdit->text().isEmpty())
- seedEdit->setText(m_seed);
- else
- {
- setSeed(seedEdit->text());
- emit seedChanged(seedEdit->text());
- }
-}
-
-DrawMapScene * HWMapContainer::getDrawMapScene()
-{
- return &drawMapScene;
-}
-
-void HWMapContainer::mapDrawingFinished()
-{
- emit drawnMapChanged(getDrawnMapData());
-
- updatePreview();
-}
-
-void HWMapContainer::updatePreview()
-{
- int curIndex = chooseMap->currentIndex();
-
- switch(curIndex)
- {
- case MAPGEN_REGULAR:
- askForGeneratedPreview();
- break;
- case MAPGEN_MAZE:
- askForGeneratedPreview();
- break;
- case MAPGEN_DRAWN:
- askForGeneratedPreview();
- break;
- default:
- QPixmap mapImage;
- QFile tmpfile;
- tmpfile.setFileName(cfgdir->absolutePath() + "/Data/Maps/" + chooseMap->itemData(curIndex).toList()[0].toString() + "/preview.png");
- if (!tmpfile.exists()) tmpfile.setFileName(datadir->absolutePath() + "/Maps/" + chooseMap->itemData(curIndex).toList()[0].toString() + "/preview.png");
- if(!mapImage.load(QFileInfo(tmpfile).absoluteFilePath())) {
- imageButt->setIcon(QIcon());
- return;
- }
-
- hhLimit = chooseMap->itemData(curIndex).toList()[2].toInt();
- addInfoToPreview(mapImage);
- }
-}
-
-void HWMapContainer::setAllMapParameters(const QString &map, MapGenerator m, int mazesize, const QString &seed, int tmpl)
-{
- intSetMap(map);
- intSetMapgen(m);
- intSetMazeSize(mazesize);
- intSetSeed(seed);
- intSetTemplateFilter(tmpl);
-
- updatePreview();
-}
--- a/QTfrontend/mapContainer.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _HWMAP_CONTAINER_INCLUDED
-#define _HWMAP_CONTAINER_INCLUDED
-
-#include <QWidget>
-#include <QGridLayout>
-#include <QComboBox>
-#include <QLabel>
-#include <QByteArray>
-#include <QLineEdit>
-
-#include "hwmap.h"
-#include "drawmapscene.h"
-
-class QPushButton;
-class IconedGroupBox;
-class QListView;
-
-class MapFileErrorException
-{
-};
-
-class HWMapContainer : public QWidget
-{
- Q_OBJECT
-
- public:
- HWMapContainer(QWidget * parent=0);
- QString getCurrentSeed() const;
- QString getCurrentMap() const;
- QString getCurrentTheme() const;
- int getCurrentHHLimit() const;
- QString getCurrentScheme() const;
- QString getCurrentWeapons() const;
- quint32 getTemplateFilter() const;
- MapGenerator get_mapgen(void) const;
- int getMazeSize(void) const;
- bool getCurrentIsMission() const;
- QByteArray getDrawnMapData();
- DrawMapScene * getDrawMapScene();
- void mapDrawingFinished();
- QLineEdit* seedEdit;
-
- public slots:
- void askForGeneratedPreview();
- void setSeed(const QString & seed);
- void setMap(const QString & map);
- void setTheme(const QString & theme);
- void setTemplateFilter(int);
- void setMapgen(MapGenerator m);
- void setMazeSize(int size);
- void setDrawnMapData(const QByteArray & ar);
- void setAllMapParameters(const QString & map, MapGenerator m, int mazesize, const QString & seed, int tmpl);
-
- signals:
- void seedChanged(const QString & seed);
- void mapChanged(const QString & map);
- void themeChanged(const QString & theme);
- void newTemplateFilter(int filter);
- void mapgenChanged(MapGenerator m);
- void mazeSizeChanged(int s);
- void drawMapRequested();
- void drawnMapChanged(const QByteArray & data);
-
- private slots:
- void setImage(const QImage newImage);
- void setHHLimit(int hhLimit);
- void mapChanged(int index);
- void setRandomSeed();
- void setRandomTheme();
- void setRandomMap();
- void setRandomStatic();
- void setRandomMission();
- void themeSelected(const QModelIndex & current, const QModelIndex &);
- void addInfoToPreview(QPixmap image);
- void seedEdited();
-
- protected:
- virtual void resizeEvent ( QResizeEvent * event );
-
- private:
- QGridLayout mainLayout;
- QPushButton* imageButt;
- QComboBox* chooseMap;
- IconedGroupBox* gbThemes;
- QListView* lvThemes;
- HWMap* pMap;
- QString m_seed;
- QPushButton* seedSet;
- QLabel* seedLabel;
- int hhLimit;
- int templateFilter;
- QPixmap hhSmall;
- QLabel* lblFilter;
- QComboBox* cbTemplateFilter;
- QLabel *maze_size_label;
- QComboBox *cbMazeSize;
- MapGenerator mapgen;
- int numMissions;
- DrawMapScene drawMapScene;
-
- void intSetSeed(const QString & seed);
- void intSetMap(const QString & map);
- void intSetMapgen(MapGenerator m);
- void intSetTemplateFilter(int);
- void intSetMazeSize(int size);
- void updatePreview();
-};
-
-#endif // _HWMAP_CONTAINER_INCLUDED
--- a/QTfrontend/misc.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "misc.h"
--- a/QTfrontend/misc.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _MISC_H
-#define _MISC_H
-
-
-#include <QObject>
-#include <QSpinBox>
-
-class FreqSpinBox : public QSpinBox
-{
- Q_OBJECT
-
-public:
- FreqSpinBox(QWidget* parent) : QSpinBox(parent)
- {
-
- }
-
- QString textFromValue(int value) const
- {
- if (!value)
- return tr("Never");
- else
- return tr("Every %1 turn", "", value).arg(value);
- }
-};
-
-
-#endif // _MISC_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/ammoSchemeModel.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,786 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDebug>
+#include <QModelIndex>
+
+#include "ammoSchemeModel.h"
+#include "hwconsts.h"
+
+QList<QVariant> defaultScheme = QList<QVariant>()
+ << QVariant("Default") // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(4) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) :
+ QAbstractTableModel(parent),
+ fileConfig(fileName, QSettings::IniFormat)
+{
+ predefSchemesNames = QStringList()
+ << "Default"
+ << "Pro Mode"
+ << "Shoppa"
+ << "Clean Slate"
+ << "Minefield"
+ << "Barrel Mayhem"
+ << "Tunnel Hogs"
+ << "Fort Mode"
+ << "Timeless"
+ << "Thinking with Portals"
+ << "King Mode"
+ ;
+
+ numberOfDefaultSchemes = predefSchemesNames.size();
+
+ spNames = QStringList()
+ << "name" // 0
+ << "fortsmode" // 1
+ << "divteams" // 2
+ << "solidland" // 3
+ << "border" // 4
+ << "lowgrav" // 5
+ << "laser" // 6
+ << "invulnerability" // 7
+ << "resethealth" // 8
+ << "vampiric" // 9
+ << "karma" // 10
+ << "artillery" // 11
+ << "randomorder" // 12
+ << "king" // 13
+ << "placehog" // 14
+ << "sharedammo" // 15
+ << "disablegirders" // 16
+ << "disablelandobjects" // 17
+ << "aisurvival" // 18
+ << "infattack" // 19
+ << "resetweps" // 20
+ << "perhogammo" // 21
+ << "disablewind" // 22
+ << "morewind" // 23
+ << "tagteam" // 24
+ << "bottomborder" // 25
+ << "damagefactor" // 26
+ << "turntime" // 27
+ << "health" // 28
+ << "suddendeath" // 29
+ << "caseprobability" // 30
+ << "minestime" // 31
+ << "minesnum" // 32
+ << "minedudpct" // 33
+ << "explosives" // 34
+ << "healthprobability" // 35
+ << "healthcaseamount" // 36
+ << "waterrise" // 37
+ << "healthdecrease" // 38
+ << "ropepct" // 39
+ << "getawaytime" // 40
+ ;
+
+ QList<QVariant> proMode;
+ proMode
+ << predefSchemesNames[1] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(15) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> shoppa;
+ shoppa
+ << predefSchemesNames[2] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(true) // solid land 3
+ << QVariant(true) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(true) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(50) // sudden death 29
+ << QVariant(1) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(0) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> cleanslate;
+ cleanslate
+ << predefSchemesNames[3] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(true) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(true) // inf. attack 19
+ << QVariant(true) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(4) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> minefield;
+ minefield
+ << predefSchemesNames[4] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(50) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(0) // mines time 31
+ << QVariant(80) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> barrelmayhem;
+ barrelmayhem
+ << predefSchemesNames[5] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(0) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(80) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> tunnelhogs;
+ tunnelhogs
+ << predefSchemesNames[6] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(true) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(true) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(10) // mines number 32
+ << QVariant(10) // mine dud pct 33
+ << QVariant(10) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> forts;
+ forts
+ << predefSchemesNames[7] // name 0
+ << QVariant(true) // fortsmode 1
+ << QVariant(true) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(true) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> timeless;
+ timeless
+ << predefSchemesNames[8] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(true) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(9999) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(5) // mines number 32
+ << QVariant(10) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(30) // health case amt 36
+ << QVariant(0) // water rise amt 37
+ << QVariant(0) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> thinkingportals;
+ thinkingportals
+ << predefSchemesNames[9] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(true) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(2) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(5) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(5) // explosives 34
+ << QVariant(25) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+ QList<QVariant> kingmode;
+ kingmode
+ << predefSchemesNames[10] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(true) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(4) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(35) // health case pct 35
+ << QVariant(25) // health case amt 36
+ << QVariant(47) // water rise amt 37
+ << QVariant(5) // health dec amt 38
+ << QVariant(100) // rope modfier 39
+ << QVariant(100) // get away time 40
+ ;
+
+
+ schemes.append(defaultScheme);
+ schemes.append(proMode);
+ schemes.append(shoppa);
+ schemes.append(cleanslate);
+ schemes.append(minefield);
+ schemes.append(barrelmayhem);
+ schemes.append(tunnelhogs);
+ schemes.append(forts);
+ schemes.append(timeless);
+ schemes.append(thinkingportals);
+ schemes.append(kingmode);
+
+
+ int size = fileConfig.beginReadArray("schemes");
+ for (int i = 0; i < size; ++i) {
+ fileConfig.setArrayIndex(i);
+
+ if (!predefSchemesNames.contains(fileConfig.value(spNames[0]).toString()))
+ {
+ QList<QVariant> scheme;
+
+ for (int k = 0; k < spNames.size(); ++k)
+ scheme << fileConfig.value(spNames[k], defaultScheme[k]);
+
+ schemes.append(scheme);
+ }
+ }
+ fileConfig.endArray();
+}
+
+QVariant AmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ Q_UNUSED(section);
+ Q_UNUSED(orientation);
+ Q_UNUSED(role);
+
+ return QVariant();
+}
+
+int AmmoSchemeModel::rowCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return schemes.size();
+}
+
+int AmmoSchemeModel::columnCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return defaultScheme.size();
+}
+
+Qt::ItemFlags AmmoSchemeModel::flags(const QModelIndex & index) const
+{
+ Q_UNUSED(index);
+
+ return
+ Qt::ItemIsEnabled
+ | Qt::ItemIsSelectable
+ | Qt::ItemIsEditable;
+}
+
+bool AmmoSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role)
+{
+ if (!index.isValid() || index.row() < numberOfDefaultSchemes
+ || index.row() >= schemes.size()
+ || index.column() >= defaultScheme.size()
+ || role != Qt::EditRole)
+ return false;
+
+ schemes[index.row()][index.column()] = value;
+
+ emit dataChanged(index, index);
+ return true;
+}
+
+bool AmmoSchemeModel::insertRows(int row, int count, const QModelIndex & parent)
+{
+ Q_UNUSED(count);
+
+ beginInsertRows(parent, schemes.size(), schemes.size());
+
+ if (row == -1)
+ {
+ QList<QVariant> newScheme = defaultScheme;
+ newScheme[0] = QVariant(tr("new"));
+ schemes.insert(schemes.size(), newScheme);
+ }
+ else
+ {
+ QList<QVariant> newScheme = schemes[row];
+ newScheme[0] = QVariant(tr("copy of") + " " + newScheme[0].toString());
+ schemes.insert(schemes.size(), newScheme);
+ }
+
+ endInsertRows();
+
+ return true;
+}
+
+bool AmmoSchemeModel::removeRows(int row, int count, const QModelIndex & parent)
+{
+ if(count != 1
+ || row < numberOfDefaultSchemes
+ || row >= schemes.size())
+ return false;
+
+ beginRemoveRows(parent, row, row);
+
+ schemes.removeAt(row);
+
+ endRemoveRows();
+
+ return true;
+}
+
+QVariant AmmoSchemeModel::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid() || index.row() < 0
+ || index.row() >= schemes.size()
+ || index.column() >= defaultScheme.size()
+ || (role != Qt::EditRole && role != Qt::DisplayRole)
+ )
+ return QVariant();
+
+ return schemes[index.row()][index.column()];
+}
+
+void AmmoSchemeModel::Save()
+{
+ fileConfig.beginWriteArray("schemes", schemes.size() - numberOfDefaultSchemes);
+
+ for (int i = 0; i < schemes.size() - numberOfDefaultSchemes; ++i) {
+ fileConfig.setArrayIndex(i);
+
+ QList<QVariant> scheme = schemes[i + numberOfDefaultSchemes];
+
+ for (int k = 0; k < scheme.size(); ++k)
+ fileConfig.setValue(spNames[k], scheme[k]);
+ }
+ fileConfig.endArray();
+}
+
+
+NetAmmoSchemeModel::NetAmmoSchemeModel(QObject * parent) :
+ QAbstractTableModel(parent)
+{
+ netScheme = defaultScheme;
+}
+
+QVariant NetAmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ Q_UNUSED(section);
+ Q_UNUSED(orientation);
+ Q_UNUSED(role);
+
+ return QVariant();
+}
+
+int NetAmmoSchemeModel::rowCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return 1;
+}
+
+int NetAmmoSchemeModel::columnCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return defaultScheme.size();
+}
+
+QVariant NetAmmoSchemeModel::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid() || index.row() < 0
+ || index.row() > 1
+ || index.column() >= defaultScheme.size()
+ || (role != Qt::EditRole && role != Qt::DisplayRole)
+ )
+ return QVariant();
+
+ return netScheme[index.column()];
+}
+
+void NetAmmoSchemeModel::setNetSchemeConfig(QStringList & cfg)
+{
+ if(cfg.size() != netScheme.size())
+ {
+ qWarning("Incorrect scheme cfg size");
+ return;
+ }
+
+ for(int i = 0; i < cfg.size(); ++i)
+ netScheme[i] = QVariant(cfg[i]);
+
+ reset();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/ammoSchemeModel.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,79 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _AMMO_SCHEME_MODEL_INCLUDED
+#define _AMMO_SCHEME_MODEL_INCLUDED
+
+#include <QSettings>
+#include <QAbstractTableModel>
+#include <QStringList>
+#include <QList>
+
+class AmmoSchemeModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+public:
+ AmmoSchemeModel(QObject * parent, const QString & fileName);
+
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ int rowCount(const QModelIndex & parent) const;
+ int columnCount(const QModelIndex & parent) const;
+ Qt::ItemFlags flags(const QModelIndex & index) const;
+ bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
+ bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex());
+ bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
+ QVariant data(const QModelIndex &index, int role) const;
+
+ int numberOfDefaultSchemes;
+ QStringList predefSchemesNames;
+ QStringList spNames;
+
+public slots:
+ void Save();
+
+signals:
+ void dataChanged(const QModelIndex & topLeft, const QModelIndex & bottomRight);
+
+protected:
+ QList< QList<QVariant> > schemes;
+
+private:
+ QSettings fileConfig;
+};
+
+class NetAmmoSchemeModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+public:
+ NetAmmoSchemeModel(QObject * parent);
+
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ int rowCount(const QModelIndex & parent) const;
+ int columnCount(const QModelIndex & parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+
+public slots:
+ void setNetSchemeConfig(QStringList & cfg);
+
+private:
+ QList<QVariant> netScheme;
+};
+
+#endif // _AMMO_SCHEME_MODEL_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/hats.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,129 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDir>
+#include <QPixmap>
+#include <QPainter>
+#include "hwconsts.h"
+#include "hwform.h"
+#include "hats.h"
+
+#include "HWDataManager.h"
+
+HatsModel::HatsModel(QObject* parent) :
+ QAbstractListModel(parent)
+{
+ HWDataManager & dataMgr = HWDataManager::instance();
+
+ QPixmap hhpix = QPixmap(
+ dataMgr.findFileForRead("Graphics/Hedgehog/Idle.png")
+ ).copy(0, 0, 32, 32);
+
+ // my reserved hats
+ QStringList hatsList = dataMgr.entryList(
+ "Graphics/Hats/Reserved",
+ QDir::Files,
+ QStringList(playerHash+"*.png")
+ );
+
+ int nReserved = hatsList.size();
+
+ // regular hats
+ hatsList.append(dataMgr.entryList(
+ "Graphics/Hats",
+ QDir::Files,
+ QStringList("*.png")
+ )
+ );
+
+
+ int nHats = hatsList.size();
+
+ for (int i = 0; i < nHats; i++)
+ {
+ bool isReserved = (i < nReserved);
+
+ QString str = hatsList.at(i);
+ str = str.remove(QRegExp("\\.png$"));
+ QPixmap pix(
+ dataMgr.findFileForRead(
+ "Graphics/Hats/" + QString(isReserved?"Reserved/":"") + str +
+ ".png"
+ )
+ );
+
+ // rename properly
+ if (isReserved)
+ str = "Reserved "+str.remove(0,32);
+
+ QPixmap tmppix(32, 37);
+ tmppix.fill(QColor(Qt::transparent));
+
+ QPainter painter(&tmppix);
+ painter.drawPixmap(QPoint(0, 5), hhpix);
+ painter.drawPixmap(QPoint(0, 0), pix.copy(0, 0, 32, 32));
+ if(pix.width() > 32)
+ painter.drawPixmap(QPoint(0, 0), pix.copy(32, 0, 32, 32));
+ painter.end();
+
+ if (str == "NoHat")
+ hats.prepend(qMakePair(str, QIcon(tmppix)));
+ else
+ hats.append(qMakePair(str, QIcon(tmppix)));
+ }
+}
+
+QVariant HatsModel::headerData(int section,
+ Qt::Orientation orientation, int role) const
+{
+ Q_UNUSED(section);
+ Q_UNUSED(orientation);
+ Q_UNUSED(role);
+
+ return QVariant();
+}
+
+int HatsModel::rowCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return hats.size();
+}
+
+/*int HatsModel::columnCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return 2;
+}
+*/
+QVariant HatsModel::data(const QModelIndex &index,
+ int role) const
+{
+ if (!index.isValid() || index.row() < 0
+ || index.row() >= hats.size()
+ || (role != Qt::DisplayRole && role != Qt::DecorationRole))
+ return QVariant();
+
+ if (role == Qt::DisplayRole)
+ return hats.at(index.row()).first;
+ else // role == Qt::DecorationRole
+ return hats.at(index.row()).second;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/hats.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,44 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _HATS_INCLUDED
+#define _HATS_INCLUDED
+
+#include <QAbstractListModel>
+#include <QStringList>
+#include <QVector>
+#include <QPair>
+#include <QIcon>
+
+class HatsModel : public QAbstractListModel
+{
+ Q_OBJECT
+
+public:
+ HatsModel(QObject *parent = 0);
+
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ int rowCount(const QModelIndex & parent) const;
+ //int columnCount(const QModelIndex & parent) const;
+
+ QVariant data(const QModelIndex &index, int role) const;
+protected:
+ QVector<QPair<QString, QIcon> > hats;
+};
+
+#endif // _HATS_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/netserverslist.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,68 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QUdpSocket>
+#include <QListWidget>
+
+#include "netserverslist.h"
+
+HWNetServersModel::HWNetServersModel(QObject* parent) :
+ QAbstractTableModel(parent)
+{
+
+}
+
+void HWNetServersModel::updateList()
+{
+
+}
+
+QVariant HWNetServersModel::headerData(int section,
+ Qt::Orientation orientation, int role) const
+{
+ if (role != Qt::DisplayRole)
+ return QVariant();
+
+ if (orientation == Qt::Horizontal)
+ {
+ switch (section)
+ {
+ case 0: return tr("Title");
+ case 1: return tr("IP");
+ case 2: return tr("Port");
+ default: return QVariant();
+ }
+ } else
+ return QString("%1").arg(section + 1);
+}
+
+int HWNetServersModel::rowCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return games.size();
+}
+
+int HWNetServersModel::columnCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return 3;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/netserverslist.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,43 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _NET_SERVERSLIST_INCLUDED
+#define _NET_SERVERSLIST_INCLUDED
+
+#include <QAbstractTableModel>
+#include <QStringList>
+
+class HWNetServersModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+public:
+ HWNetServersModel(QObject *parent = 0);
+
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ int rowCount(const QModelIndex & parent) const;
+ int columnCount(const QModelIndex & parent) const;
+
+public slots:
+ virtual void updateList();
+
+protected:
+ QList<QStringList> games;
+};
+
+#endif // _NET_SERVERSLIST_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/themesmodel.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,49 @@
+
+#include "themesmodel.h"
+
+ThemesModel::ThemesModel(QStringList themes, QObject *parent) :
+ QAbstractListModel(parent)
+{
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
+ m_data.reserve(themes.size());
+#endif
+
+ foreach(QString theme, themes)
+ {
+ m_data.append(QHash<int, QVariant>());
+ m_data.last().insert(Qt::DisplayRole, theme);
+ }
+}
+
+int ThemesModel::rowCount(const QModelIndex &parent) const
+{
+ if(parent.isValid())
+ return 0;
+ else
+ return m_data.size();
+}
+
+QVariant ThemesModel::data(const QModelIndex &index, int role) const
+{
+ if(index.column() > 0 || index.row() >= m_data.size())
+ return QVariant();
+ else
+ return m_data.at(index.row()).value(role);
+}
+
+bool ThemesModel::setData(const QModelIndex &index, const QVariant &value, int role)
+{
+ if(index.column() > 0 || index.row() >= m_data.size())
+ return false;
+ else
+ {
+ m_data[index.row()].insert(role, value);
+
+ return true;
+ }
+
+}
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/themesmodel.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,28 @@
+#ifndef THEMESMODEL_H
+#define THEMESMODEL_H
+
+#include <QAbstractListModel>
+#include <QStringList>
+#include <QHash>
+
+class ThemesModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ explicit ThemesModel(QStringList themes, QObject *parent = 0);
+
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QVariant data(const QModelIndex &index, int role) const;
+ bool setData(const QModelIndex &index, const QVariant &value,
+ int role = Qt::EditRole);
+
+signals:
+
+public slots:
+
+private:
+
+ QList<QHash<int, QVariant> > m_data;
+};
+
+#endif // THEMESMODEL_H
--- a/QTfrontend/namegen.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2009 Martin Minarik <ttsmj@pokec.sk>
- * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QFile>
-#include <QTextStream>
-#include <QStringList>
-#include <QLineEdit>
-#include "namegen.h"
-#include "hwform.h"
-#include "hwconsts.h"
-
-
-HWNamegen::HWNamegen() :
- typesAvailable(false)
-{
-
- loadTypes();
-}
-
-HWNamegen::~HWNamegen()
-{
-}
-
-
-
-void HWNamegen::teamRandomName(HWTeam & team, const int HedgehogNumber)
-{
- randomNameByHat(team, HedgehogNumber);
-}
-
-void HWNamegen::teamRandomNames(HWTeam & team, const bool changeteamname)
-{
- if ((TypesHatnames.size() > 0) && typesAvailable){
-
- int kind = (rand()%(TypesHatnames.size()));
-
- if (changeteamname){
- if (TypesTeamnames[kind].size() > 0){
- team.setName(TypesTeamnames[kind][rand()%(TypesTeamnames[kind].size())]);
- }
- team.setGrave(getRandomGrave());
- team.setFort(getRandomFort());
- team.setVoicepack("Default");
- }
-
- //give each hedgehog a random name:
- //TODO: load the dictionary only once! (right now it's loaded once for each hedgehog)
- for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
- {
- if ((TypesHatnames[kind].size()) > 0){
- HWHog hh = team.hedgehog(i);
- hh.Hat = TypesHatnames[kind][rand()%(TypesHatnames[kind].size())];
- team.setHedgehog(i,hh);
- }
- randomNameByHat(team,i);
- }
-
- }
-
-}
-
-
-void HWNamegen::randomNameByHat(HWTeam & team, const int HedgehogNumber)
-{
- QStringList Dictionaries;
- hatCfgLoad(team.hedgehog(HedgehogNumber).Hat,Dictionaries);
-
- QStringList Dictionary;
- dictLoad(Dictionaries[rand()%(Dictionaries.size())],Dictionary);
-
- HWHog hh = team.hedgehog(HedgehogNumber);
- hh.Name = Dictionary[rand()%(Dictionary.size())];
- team.setHedgehog(HedgehogNumber, hh);
-}
-
-void HWNamegen::dictLoad(const QString filename, QStringList &list)
-{
- list.clear();
-
- QFile file;
- file.setFileName(QString("%1/Data/Names/%2.txt").arg(cfgdir->absolutePath()).arg(filename));
- if (!file.exists()) file.setFileName(QString("%1/Names/%2.txt").arg(datadir->absolutePath()).arg(filename));
- if (file.open(QIODevice::ReadOnly | QIODevice::Text))
- {
-
- QTextStream in(&file);
- while (!in.atEnd()) {
- QString line = in.readLine();
- if(line != QString(""))
- {list.append(line);}
- }
- }
-
- if (list.size()==0)
- list.append(filename);
-
-}
-
-
-void HWNamegen::hatCfgLoad(const QString hatname, QStringList &list)
-{
- list.clear();
-
- QFile file;
- file.setFileName(QString("%1/Data/Names/%2.cfg").arg(cfgdir->absolutePath()).arg(hatname));
- if (!file.exists()) file.setFileName(QString("%1/Names/%2.cfg").arg(datadir->absolutePath()).arg(hatname));
- if (file.open(QIODevice::ReadOnly | QIODevice::Text))
- {
-
- QTextStream in(&file);
- while (!in.atEnd()) {
- QString line = in.readLine();
- if(line != QString(""))
- {list.append(line);}
- }
- }
-
- if (list.size()==0)
- list.append(QString("generic"));
-
-}
-
-
-void HWNamegen::loadTypes()
-{
- QFile file;
- file.setFileName(QString("%1/Data/Names/types.ini").arg(cfgdir->absolutePath()));
- if (!file.exists()) file.setFileName(QString("%1/Names/types.ini").arg(datadir->absolutePath()));
- if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
- {typesAvailable = false; return;}
-
- int counter = 0; //counter starts with 0 (teamnames mode)
- TypesTeamnames.append(QStringList());
- TypesHatnames.append(QStringList());
-
- QTextStream in(&file);
- while (!in.atEnd()) {
- QString line = in.readLine();
- if (line == QString("#####")){
- counter++; //toggle mode (teamnames || hats)
- if ((counter%2) == 0){
- TypesTeamnames.append(QStringList());
- TypesHatnames.append(QStringList());
- }
- } else if ((line == QString("*****")) || (line == QString("*END*"))){
- typesAvailable = true; return; // bye bye
- } else {
- if ((counter%2) == 0){ // even => teamnames mode
- TypesTeamnames[(counter/2)].append(line);
- } else { // odd => hats mode
- TypesHatnames[((counter-1)/2)].append(line);
- }
- }
-// Types.append(line);
- }
- typesAvailable = true;
- return;
-}
-
-
-
-QString HWNamegen::getRandomGrave()
-{
- QStringList Graves;
-
- //list all available Graves
- QDir tmpdir;
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data/Graphics/Graves");
- tmpdir.setFilter(QDir::Files);
- Graves.append(tmpdir.entryList(QStringList("*.png")).replaceInStrings(QRegExp("^(.*)\\.png"), "\\1"));
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Graphics/Graves");
- tmpdir.setFilter(QDir::Files);
- QStringList tmpList = tmpdir.entryList(QStringList("*.png")).replaceInStrings(QRegExp("^(.*)\\.png"), "\\1");
- for (QStringList::Iterator it = tmpList.begin(); it != tmpList.end(); ++it)
- if (!Graves.contains(*it,Qt::CaseInsensitive)) Graves.append(*it);
-
- if(Graves.size()==0)
- {
- //do some serious error handling
- return "Error";
- }
-
- //pick a random grave
- return Graves[rand()%(Graves.size())];
-}
-
-QString HWNamegen::getRandomFort()
-{
- QStringList Forts;
-
- //list all available Forts
- QDir tmpdir;
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Forts");
- tmpdir.setFilter(QDir::Files);
- Forts.append(tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1"));
-
- if(Forts.size()==0)
- {
- //do some serious error handling
- return "Error";
- }
-
- //pick a random fort
- return Forts[rand()%(Forts.size())];
-}
--- a/QTfrontend/namegen.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2009 Martin Minarik <ttsmj@pokec.sk>
- * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef NAMEGEN_H
-#define NAMEGEN_H
-
-#include <QString>
-
-class HWForm;
-class HWTeam;
-
-class HWNamegen
-{
-public:
- HWNamegen();
- ~HWNamegen();
-
- void teamRandomName(HWTeam & team, const int HedgehogNumber);
- void teamRandomNames(HWTeam & team, const bool changeteamname);
- void randomNameByHat(HWTeam & team, const int HedgehogNumber);
-
-private:
-
- QList<QStringList> TypesTeamnames;
- QList<QStringList> TypesHatnames;
- bool typesAvailable;
- void loadTypes();
- void dictLoad(const QString filename, QStringList &list);
- void hatCfgLoad(const QString hatname, QStringList &list);
-
- QString getRandomGrave();
- QString getRandomFort();
-};
-
-
-
-#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/hwmap.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,91 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Ulyanov Igor <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "hwconsts.h"
+#include "hwmap.h"
+
+HWMap::HWMap() :
+ TCPBase(false)
+{
+}
+
+HWMap::~HWMap()
+{
+}
+
+void HWMap::getImage(const QString & seed, int filter, MapGenerator mapgen, int maze_size, const QByteArray & drawMapData)
+{
+ m_seed = seed;
+ templateFilter = filter;
+ m_mapgen = mapgen;
+ m_maze_size = maze_size;
+ if(mapgen == MAPGEN_DRAWN) m_drawMapData = drawMapData;
+ Start();
+}
+
+QStringList HWMap::getArguments()
+{
+ QStringList arguments;
+ arguments << cfgdir->absolutePath();
+ arguments << QString("%1").arg(ipc_port);
+ arguments << "landpreview";
+ return arguments;
+}
+
+void HWMap::onClientDisconnect()
+{
+ if (readbuffer.size() == 128 * 32 + 1)
+ {
+ quint8 *buf = (quint8*) readbuffer.constData();
+ QImage im(buf, 256, 128, QImage::Format_Mono);
+ im.setNumColors(2);
+ emit HHLimitReceived(buf[128 * 32]);
+ emit ImageReceived(im);
+ }
+}
+
+void HWMap::SendToClientFirst()
+{
+ SendIPC(QString("eseed %1").arg(m_seed).toUtf8());
+ SendIPC(QString("e$template_filter %1").arg(templateFilter).toUtf8());
+ SendIPC(QString("e$mapgen %1").arg(m_mapgen).toUtf8());
+
+ switch (m_mapgen)
+ {
+ case MAPGEN_MAZE:
+ SendIPC(QString("e$maze_size %1").arg(m_maze_size).toUtf8());
+ break;
+
+ case MAPGEN_DRAWN:
+ {
+ QByteArray data = m_drawMapData;
+ while(data.size() > 0)
+ {
+ QByteArray tmp = data;
+ tmp.truncate(200);
+ SendIPC("edraw " + tmp);
+ data.remove(0, 200);
+ }
+ break;
+ }
+ default: ;
+ }
+
+ SendIPC("!");
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/hwmap.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,65 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _HWMAP_INCLUDED
+#define _HWMAP_INCLUDED
+
+#include <QByteArray>
+#include <QString>
+#include <QImage>
+
+#include "tcpBase.h"
+
+enum MapGenerator
+{
+ MAPGEN_REGULAR,
+ MAPGEN_MAZE,
+ MAPGEN_DRAWN,
+ MAPGEN_MAP
+};
+
+class HWMap : public TCPBase
+{
+ Q_OBJECT
+
+ public:
+ HWMap();
+ virtual ~HWMap();
+ void getImage(const QString & seed, int templateFilter, MapGenerator mapgen, int maze_size, const QByteArray & drawMapData);
+
+ protected:
+ virtual QStringList getArguments();
+ virtual void onClientDisconnect();
+ virtual void SendToClientFirst();
+
+ signals:
+ void ImageReceived(const QImage newImage);
+ void HHLimitReceived(int hhLimit);
+
+ private:
+ QString m_seed;
+ int templateFilter;
+ MapGenerator m_mapgen;
+ int m_maze_size;
+ QByteArray m_drawMapData;
+
+ private slots:
+};
+
+#endif // _HWMAP_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netregister.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,31 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "netregister.h"
+
+HWNetRegisterServer::HWNetRegisterServer(QObject *parent, const QString & descr, quint16 port) :
+ QObject(parent)
+{
+ Q_UNUSED(descr);
+ Q_UNUSED(port);
+}
+
+void HWNetRegisterServer::unregister()
+{
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netregister.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,35 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _NET_REGISTER_INCLUDED
+#define _NET_REGISTER_INCLUDED
+
+#include <QObject>
+
+class HWNetRegisterServer : public QObject
+{
+ Q_OBJECT
+
+public:
+ HWNetRegisterServer(QObject *parent, const QString & descr, quint16 port);
+
+public slots:
+ virtual void unregister();
+};
+
+#endif // _NET_REGISTER_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netserver.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,52 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QMessageBox>
+
+#include "hwconsts.h"
+#include "netserver.h"
+
+HWNetServer::~HWNetServer()
+{
+ StopServer();
+}
+
+bool HWNetServer::StartServer(quint16 port)
+{
+ ds_port = port;
+
+ QStringList params;
+ params << QString("--port=%1").arg(port);
+ params << "--dedicated=False";
+
+ process.start(bindir->absolutePath() + "/hedgewars-server", params);
+
+ return process.waitForStarted(5000);
+}
+
+void HWNetServer::StopServer()
+{
+ process.close();
+}
+
+
+quint16 HWNetServer::getRunningPort() const
+{
+ return ds_port;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netserver.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,42 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _NETSERVER_INCLUDED
+#define _NETSERVER_INCLUDED
+
+#include <QObject>
+#include <QProcess>
+
+class HWNetServer : public QObject
+{
+ Q_OBJECT
+
+public:
+ ~HWNetServer();
+ bool StartServer(quint16 port);
+ void StopServer();
+ QString getRunningHostName() const;
+ quint16 getRunningPort() const;
+
+private:
+ quint16 ds_port;
+ QProcess process;
+};
+
+#endif // _NETSERVER_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netudpserver.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,51 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QUdpSocket>
+
+#include "netudpserver.h"
+
+HWNetUdpServer::HWNetUdpServer(QObject *parent, const QString & descr, quint16 port) :
+ HWNetRegisterServer(parent, descr, port),
+ m_descr(descr)
+{
+ pUdpSocket = new QUdpSocket(this);
+ pUdpSocket->bind(46631);
+ connect(pUdpSocket, SIGNAL(readyRead()), this, SLOT(onClientRead()));
+}
+
+void HWNetUdpServer::onClientRead()
+{
+ while (pUdpSocket->hasPendingDatagrams()) {
+ QByteArray datagram;
+ datagram.resize(pUdpSocket->pendingDatagramSize());
+ QHostAddress clientAddr;
+ quint16 clientPort;
+ pUdpSocket->readDatagram(datagram.data(), datagram.size(), &clientAddr, &clientPort);
+ if(datagram.startsWith("hedgewars client")) {
+ // send answer to client
+ pUdpSocket->writeDatagram(QString("hedgewars server\n%1").arg(m_descr).toUtf8(), clientAddr, clientPort);
+ }
+ }
+}
+
+void HWNetUdpServer::unregister()
+{
+ deleteLater();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netudpserver.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,46 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _NET_UDPSERVER_INCLUDED
+#define _NET_UDPSERVER_INCLUDED
+
+#include <QObject>
+#include "netregister.h"
+
+class QUdpSocket;
+
+class HWNetUdpServer : public HWNetRegisterServer
+{
+ Q_OBJECT
+
+ public:
+ HWNetUdpServer(QObject *parent, const QString & descr, quint16 port);
+
+ public slots:
+ void unregister();
+
+ private slots:
+ void onClientRead();
+
+ private:
+ QUdpSocket* pUdpSocket;
+ QString m_descr;
+};
+
+#endif // _NET_UDPSERVER_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netudpwidget.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,72 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QUdpSocket>
+
+#include "netudpwidget.h"
+
+HWNetUdpModel::HWNetUdpModel(QObject* parent) :
+ HWNetServersModel(parent)
+{
+ pUdpSocket = new QUdpSocket(this);
+
+ pUdpSocket->bind();
+ connect(pUdpSocket, SIGNAL(readyRead()), this, SLOT(onClientRead()));
+}
+
+void HWNetUdpModel::updateList()
+{
+ games.clear();
+
+ reset();
+
+ pUdpSocket->writeDatagram("hedgewars client", QHostAddress::Broadcast, 46631);
+}
+
+void HWNetUdpModel::onClientRead()
+{
+ while (pUdpSocket->hasPendingDatagrams()) {
+ QByteArray datagram;
+ datagram.resize(pUdpSocket->pendingDatagramSize());
+ QHostAddress clientAddr;
+ quint16 clientPort;
+
+ pUdpSocket->readDatagram(datagram.data(), datagram.size(), &clientAddr, &clientPort);
+
+ QString packet = QString::fromUtf8(datagram.data());
+ if(packet.startsWith("hedgewars server")) {
+ QStringList sl;
+ sl << packet.remove(0, 17) << clientAddr.toString() << "46631";
+ games.append(sl);
+ }
+ }
+
+ reset();
+}
+
+QVariant HWNetUdpModel::data(const QModelIndex &index,
+ int role) const
+{
+ if (!index.isValid() || index.row() < 0
+ || index.row() >= games.size()
+ || role != Qt::DisplayRole)
+ return QVariant();
+
+ return games[index.row()][index.column()];
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/netudpwidget.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,46 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _NET_UDPWIDGET_INCLUDED
+#define _NET_UDPWIDGET_INCLUDED
+
+#include "netserverslist.h"
+
+class QUdpSocket;
+
+class HWNetUdpModel : public HWNetServersModel
+{
+ Q_OBJECT
+
+public:
+ HWNetUdpModel(QObject *parent = 0);
+
+ QVariant data(const QModelIndex &index, int role) const;
+
+public slots:
+ void updateList();
+
+private slots:
+ void onClientRead();
+
+private:
+ QUdpSocket* pUdpSocket;
+};
+
+#endif // _NET_UDPWIDGET_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/newnetclient.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,786 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDebug>
+#include <QInputDialog>
+#include <QCryptographicHash>
+
+#include "hwconsts.h"
+#include "newnetclient.h"
+#include "proto.h"
+#include "game.h"
+
+char delimeter='\n';
+
+HWNewNet::HWNewNet() :
+ isChief(false),
+ m_game_connected(false),
+ loginStep(0),
+ netClientState(Disconnected)
+{
+// socket stuff
+ connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
+ connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect()));
+ connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect()));
+ connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this,
+ SLOT(displayError(QAbstractSocket::SocketError)));
+}
+
+HWNewNet::~HWNewNet()
+{
+ if (m_game_connected)
+ {
+ RawSendNet(QString("QUIT%1%2").arg(delimeter).arg("User quit"));
+ emit disconnected(tr("User quit"));
+ }
+ NetSocket.flush();
+}
+
+void HWNewNet::Connect(const QString & hostName, quint16 port, const QString & nick)
+{
+ netClientState = Connecting;
+ mynick = nick;
+ myhost = hostName + QString(":%1").arg(port);
+ NetSocket.connectToHost(hostName, port);
+}
+
+void HWNewNet::Disconnect()
+{
+ if (m_game_connected)
+ RawSendNet(QString("QUIT%1%2").arg(delimeter).arg("User quit"));
+ m_game_connected = false;
+
+ NetSocket.disconnectFromHost();
+}
+
+void HWNewNet::CreateRoom(const QString & room)
+{
+ if(netClientState != InLobby)
+ {
+ qWarning("Illegal try to create room!");
+ return;
+ }
+
+ myroom = room;
+
+ RawSendNet(QString("CREATE_ROOM%1%2").arg(delimeter).arg(room));
+ isChief = true;
+}
+
+void HWNewNet::JoinRoom(const QString & room)
+{
+ if(netClientState != InLobby)
+ {
+ qWarning("Illegal try to join room!");
+ return;
+ }
+
+ myroom = room;
+
+ RawSendNet(QString("JOIN_ROOM%1%2").arg(delimeter).arg(room));
+ isChief = false;
+}
+
+void HWNewNet::AddTeam(const HWTeam & team)
+{
+ QString cmd = QString("ADD_TEAM") + delimeter +
+ team.name() + delimeter +
+ team.color().name() + delimeter +
+ team.grave() + delimeter +
+ team.fort() + delimeter +
+ team.voicepack() + delimeter +
+ team.flag() + delimeter +
+ QString::number(team.difficulty());
+
+ for(int i = 0; i < HEDGEHOGS_PER_TEAM; ++i)
+ {
+ cmd.append(delimeter);
+ cmd.append(team.hedgehog(i).Name);
+ cmd.append(delimeter);
+ cmd.append(team.hedgehog(i).Hat);
+ }
+ RawSendNet(cmd);
+}
+
+void HWNewNet::RemoveTeam(const HWTeam & team)
+{
+ RawSendNet(QString("REMOVE_TEAM") + delimeter + team.name());
+}
+
+void HWNewNet::NewNick(const QString & nick)
+{
+ RawSendNet(QString("NICK%1%2").arg(delimeter).arg(nick));
+}
+
+void HWNewNet::ToggleReady()
+{
+ RawSendNet(QString("TOGGLE_READY"));
+}
+
+void HWNewNet::SendNet(const QByteArray & buf)
+{
+ QString msg = QString(buf.toBase64());
+
+ RawSendNet(QString("EM%1%2").arg(delimeter).arg(msg));
+}
+
+void HWNewNet::RawSendNet(const QString & str)
+{
+ RawSendNet(str.toUtf8());
+}
+
+void HWNewNet::RawSendNet(const QByteArray & buf)
+{
+ qDebug() << "Client: " << QString(buf).split("\n");
+ NetSocket.write(buf);
+ NetSocket.write("\n\n", 2);
+}
+
+void HWNewNet::ClientRead()
+{
+ while (NetSocket.canReadLine()) {
+ QString s = QString::fromUtf8(NetSocket.readLine());
+ if (s.endsWith('\n')) s.chop(1);
+
+ if (s.size() == 0) {
+ ParseCmd(cmdbuf);
+ cmdbuf.clear();
+ } else
+ cmdbuf << s;
+ }
+}
+
+void HWNewNet::OnConnect()
+{
+ netClientState = Connected;
+}
+
+void HWNewNet::OnDisconnect()
+{
+ netClientState = Disconnected;
+ if(m_game_connected) emit disconnected("");
+ m_game_connected = false;
+}
+
+void HWNewNet::displayError(QAbstractSocket::SocketError socketError)
+{
+ m_game_connected = false;
+
+ switch (socketError) {
+ case QAbstractSocket::RemoteHostClosedError:
+ break;
+ case QAbstractSocket::HostNotFoundError:
+ emit disconnected(tr("The host was not found. Please check the host name and port settings."));
+ break;
+ case QAbstractSocket::ConnectionRefusedError:
+ emit disconnected(tr("Connection refused"));
+ break;
+ default:
+ emit disconnected(NetSocket.errorString());
+ }
+}
+
+void HWNewNet::SendPasswordHash(const QString & hash)
+{
+ RawSendNet(QString("PASSWORD%1%2").arg(delimeter).arg(hash));
+}
+
+void HWNewNet::ParseCmd(const QStringList & lst)
+{
+ qDebug() << "Server: " << lst;
+
+ if(!lst.size())
+ {
+ qWarning("Net client: Bad message");
+ return;
+ }
+
+ if (lst[0] == "NICK")
+ {
+ mynick = lst[1];
+ return ;
+ }
+
+ if (lst[0] == "PROTO")
+ return ;
+
+ if (lst[0] == "ERROR") {
+ if (lst.size() == 2)
+ emit Error(lst[1]);
+ else
+ emit Error("Unknown error");
+ return;
+ }
+
+ if (lst[0] == "WARNING") {
+ if (lst.size() == 2)
+ emit Warning(lst[1]);
+ else
+ emit Warning("Unknown warning");
+ return;
+ }
+
+ if (lst[0] == "CONNECTED") {
+ if(lst.size() < 3 || lst[2].toInt() < cMinServerVersion)
+ {
+ // TODO: Warn user, disconnect
+ qWarning() << "Server too old";
+ }
+
+ RawSendNet(QString("NICK%1%2").arg(delimeter).arg(mynick));
+ RawSendNet(QString("PROTO%1%2").arg(delimeter).arg(*cProtoVer));
+ netClientState = Connected;
+ m_game_connected = true;
+ emit adminAccess(false);
+ return;
+ }
+
+ if (lst[0] == "PING") {
+ if (lst.size() > 1)
+ RawSendNet(QString("PONG%1%2").arg(delimeter).arg(lst[1]));
+ else
+ RawSendNet(QString("PONG"));
+ return;
+ }
+
+ if (lst[0] == "ROOMS") {
+ QStringList tmp = lst;
+ tmp.removeFirst();
+ emit roomsList(tmp);
+ return;
+ }
+
+ if (lst[0] == "SERVER_MESSAGE") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Empty SERVERMESSAGE message");
+ return;
+ }
+ emit serverMessage(lst[1]);
+ return;
+ }
+
+ if (lst[0] == "CHAT") {
+ if(lst.size() < 3)
+ {
+ qWarning("Net: Empty CHAT message");
+ return;
+ }
+ if (netClientState == InLobby)
+ emit chatStringLobby(lst[1], HWProto::formatChatMsgForFrontend(lst[2]));
+ else
+ emit chatStringFromNet(HWProto::formatChatMsg(lst[1], lst[2]));
+ return;
+ }
+
+ if (lst[0] == "INFO") {
+ if(lst.size() < 5)
+ {
+ qWarning("Net: Malformed INFO message");
+ return;
+ }
+ QStringList tmp = lst;
+ tmp.removeFirst();
+ if (netClientState == InLobby)
+ emit chatStringLobby(tmp.join("\n").prepend('\x01'));
+ else
+ emit chatStringFromNet(tmp.join("\n").prepend('\x01'));
+ return;
+ }
+
+ if (lst[0] == "SERVER_VARS") {
+ QStringList tmp = lst;
+ tmp.removeFirst();
+ while (tmp.size() >= 2)
+ {
+ if(tmp[0] == "MOTD_NEW") emit serverMessageNew(tmp[1]);
+ else if(tmp[0] == "MOTD_OLD") emit serverMessageOld(tmp[1]);
+ else if(tmp[0] == "LATEST_PROTO") emit latestProtocolVar(tmp[1].toInt());
+
+ tmp.removeFirst();
+ tmp.removeFirst();
+ }
+ return;
+ }
+
+ if (lst[0] == "CLIENT_FLAGS")
+ {
+ if(lst.size() < 3 || lst[1].size() < 2)
+ {
+ qWarning("Net: Malformed CLIENT_FLAGS message");
+ return;
+ }
+
+ QString flags = lst[1];
+ bool setFlag = flags[0] == '+';
+
+ while(flags.size() > 1)
+ {
+ flags.remove(0, 1);
+ char c = flags[0].toAscii();
+
+ switch(c)
+ {
+ case 'r':
+ {
+ for(int i = 2; i < lst.size(); ++i)
+ {
+ if (lst[i] == mynick)
+ emit setMyReadyStatus(setFlag);
+ emit setReadyStatus(lst[i], setFlag);
+ }
+ }
+ }
+ }
+
+ return;
+ }
+
+ if (lst[0] == "ADD_TEAM") {
+ if(lst.size() != 24)
+ {
+ qWarning("Net: Bad ADDTEAM message");
+ return;
+ }
+ QStringList tmp = lst;
+ tmp.removeFirst();
+ emit AddNetTeam(tmp);
+ return;
+ }
+
+ if (lst[0] == "REMOVE_TEAM") {
+ if(lst.size() != 2)
+ {
+ qWarning("Net: Bad REMOVETEAM message");
+ return;
+ }
+ emit RemoveNetTeam(HWTeam(lst[1]));
+ return;
+ }
+
+ if(lst[0] == "ROOMABANDONED") {
+ netClientState = InLobby;
+ emit LeftRoom(tr("Room destroyed"));
+ return;
+ }
+
+ if(lst[0] == "KICKED") {
+ netClientState = InLobby;
+ emit LeftRoom(tr("You got kicked"));
+ return;
+ }
+
+ if(lst[0] == "JOINED") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Bad JOINED message");
+ return;
+ }
+
+ for(int i = 1; i < lst.size(); ++i)
+ {
+ if (lst[i] == mynick)
+ {
+ netClientState = InRoom;
+ emit EnteredGame();
+ emit roomMaster(isChief);
+ if (isChief)
+ emit configAsked();
+ }
+
+ emit nickAdded(lst[i], isChief && (lst[i] != mynick));
+ emit chatStringFromNet(tr("%1 *** %2 has joined the room").arg('\x03').arg(lst[i]));
+ }
+ return;
+ }
+
+ if(lst[0] == "LOBBY:JOINED") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Bad JOINED message");
+ return;
+ }
+
+ for(int i = 1; i < lst.size(); ++i)
+ {
+ if (lst[i] == mynick)
+ {
+ netClientState = InLobby;
+ RawSendNet(QString("LIST"));
+ emit connected();
+ }
+
+ emit nickAddedLobby(lst[i], false);
+ emit chatStringLobby(lst[i], tr("%1 *** %2 has joined").arg('\x03').arg("|nick|"));
+ }
+ return;
+ }
+
+ if(lst[0] == "LEFT") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Bad LEFT message");
+ return;
+ }
+ emit nickRemoved(lst[1]);
+ if (lst.size() < 3)
+ emit chatStringFromNet(tr("%1 *** %2 has left").arg('\x03').arg(lst[1]));
+ else
+ emit chatStringFromNet(tr("%1 *** %2 has left (%3)").arg('\x03').arg(lst[1], lst[2]));
+ return;
+ }
+
+ if(lst[0] == "ROOM") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Bad ROOM message");
+ return;
+ }
+ RawSendNet(QString("LIST"));
+ return;
+ }
+
+ if(lst[0] == "LOBBY:LEFT") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Bad LOBBY:LEFT message");
+ return;
+ }
+ emit nickRemovedLobby(lst[1]);
+ if (lst.size() < 3)
+ emit chatStringLobby(tr("%1 *** %2 has left").arg('\x03').arg(lst[1]));
+ else
+ emit chatStringLobby(lst[1], tr("%1 *** %2 has left (%3)").arg('\x03').arg("|nick|", lst[2]));
+ return;
+ }
+
+ if (lst[0] == "RUN_GAME") {
+ netClientState = InGame;
+ emit AskForRunGame();
+ return;
+ }
+
+ if (lst[0] == "ASKPASSWORD") {
+ emit AskForPassword(mynick);
+ return;
+ }
+
+ if (lst[0] == "NOTICE") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Bad NOTICE message");
+ return;
+ }
+
+ bool ok;
+ int n = lst[1].toInt(&ok);
+ if(!ok)
+ {
+ qWarning("Net: Bad NOTICE message");
+ return;
+ }
+
+ handleNotice(n);
+
+ return;
+ }
+
+ if (lst[0] == "TEAM_ACCEPTED") {
+ if (lst.size() != 2)
+ {
+ qWarning("Net: Bad TEAM_ACCEPTED message");
+ return;
+ }
+ emit TeamAccepted(lst[1]);
+ return;
+ }
+
+
+ if (lst[0] == "CFG") {
+ if(lst.size() < 3)
+ {
+ qWarning("Net: Bad CFG message");
+ return;
+ }
+ QStringList tmp = lst;
+ tmp.removeFirst();
+ tmp.removeFirst();
+ if (lst[1] == "SCHEME")
+ emit netSchemeConfig(tmp);
+ else
+ emit paramChanged(lst[1], tmp);
+ return;
+ }
+
+ if (lst[0] == "HH_NUM") {
+ if (lst.size() != 3)
+ {
+ qWarning("Net: Bad TEAM_ACCEPTED message");
+ return;
+ }
+ HWTeam tmptm(lst[1]);
+ tmptm.setNumHedgehogs(lst[2].toUInt());
+ emit hhnumChanged(tmptm);
+ return;
+ }
+
+ if (lst[0] == "TEAM_COLOR") {
+ if (lst.size() != 3)
+ {
+ qWarning("Net: Bad TEAM_COLOR message");
+ return;
+ }
+ HWTeam tmptm(lst[1]);
+ tmptm.setColor(QColor(lst[2]));
+ emit teamColorChanged(tmptm);
+ return;
+ }
+
+ if (lst[0] == "EM") {
+ if(lst.size() < 2)
+ {
+ qWarning("Net: Bad EM message");
+ return;
+ }
+ for(int i = 1; i < lst.size(); ++i)
+ {
+ QByteArray em = QByteArray::fromBase64(lst[i].toAscii());
+ emit FromNet(em);
+ }
+ return;
+ }
+
+ if (lst[0] == "BYE") {
+ if (lst.size() < 2)
+ {
+ qWarning("Net: Bad BYE message");
+ return;
+ }
+ if (lst[1] == "Authentication failed")
+ {
+ emit AuthFailed();
+ }
+ m_game_connected = false;
+ Disconnect();
+ emit disconnected(lst[1]);
+ return;
+ }
+
+
+ if (lst[0] == "ADMIN_ACCESS") {
+ emit adminAccess(true);
+ return;
+ }
+
+ if (lst[0] == "ROOM_CONTROL_ACCESS") {
+ if (lst.size() < 2)
+ {
+ qWarning("Net: Bad ROOM_CONTROL_ACCESS message");
+ return;
+ }
+ isChief = (lst[1] != "0");
+ emit roomMaster(isChief);
+ return;
+ }
+
+ qWarning() << "Net: Unknown message:" << lst;
+}
+
+void HWNewNet::onHedgehogsNumChanged(const HWTeam& team)
+{
+ if (isChief)
+ RawSendNet(QString("HH_NUM%1%2%1%3")
+ .arg(delimeter)
+ .arg(team.name())
+ .arg(team.numHedgehogs()));
+}
+
+void HWNewNet::onTeamColorChanged(const HWTeam& team)
+{
+ if (isChief)
+ RawSendNet(QString("TEAM_COLOR%1%2%1%3")
+ .arg(delimeter)
+ .arg(team.name())
+ .arg(team.color().name()));
+}
+
+void HWNewNet::onParamChanged(const QString & param, const QStringList & value)
+{
+ if (isChief)
+ RawSendNet(
+ QString("CFG%1%2%1%3")
+ .arg(delimeter)
+ .arg(param)
+ .arg(value.join(QString(delimeter)))
+ );
+}
+
+void HWNewNet::chatLineToNet(const QString& str)
+{
+ if(str != "") {
+ RawSendNet(QString("CHAT") + delimeter + str);
+ emit(chatStringFromMe(HWProto::formatChatMsg(mynick, str)));
+ }
+}
+
+void HWNewNet::chatLineToLobby(const QString& str)
+{
+ if(str != "") {
+ RawSendNet(QString("CHAT") + delimeter + str);
+ emit chatStringLobby(mynick, HWProto::formatChatMsgForFrontend(str));
+ }
+}
+
+void HWNewNet::SendTeamMessage(const QString& str)
+{
+ RawSendNet(QString("TEAMCHAT") + delimeter + str);
+}
+
+void HWNewNet::askRoomsList()
+{
+ if(netClientState != InLobby)
+ {
+ qWarning("Illegal try to get rooms list!");
+ return;
+ }
+ RawSendNet(QString("LIST"));
+}
+
+HWNewNet::ClientState HWNewNet::clientState()
+{
+ return netClientState;
+}
+
+QString HWNewNet::getNick()
+{
+ return mynick;
+}
+
+QString HWNewNet::getRoom()
+{
+ return myroom;
+}
+
+QString HWNewNet::getHost()
+{
+ return myhost;
+}
+
+bool HWNewNet::isRoomChief()
+{
+ return isChief;
+}
+
+void HWNewNet::gameFinished(bool correctly)
+{
+ if (netClientState == InGame) netClientState = InRoom;
+ RawSendNet(QString("ROUNDFINISHED%1%2").arg(delimeter).arg(correctly ? "1" : "0"));
+}
+
+void HWNewNet::banPlayer(const QString & nick)
+{
+ RawSendNet(QString("BAN%1%2").arg(delimeter).arg(nick));
+}
+
+void HWNewNet::kickPlayer(const QString & nick)
+{
+ RawSendNet(QString("KICK%1%2").arg(delimeter).arg(nick));
+}
+
+void HWNewNet::infoPlayer(const QString & nick)
+{
+ RawSendNet(QString("INFO%1%2").arg(delimeter).arg(nick));
+}
+
+void HWNewNet::followPlayer(const QString & nick)
+{
+ if (!isInRoom()) {
+ RawSendNet(QString("FOLLOW%1%2").arg(delimeter).arg(nick));
+ isChief = false;
+ }
+}
+
+void HWNewNet::startGame()
+{
+ RawSendNet(QString("START_GAME"));
+}
+
+void HWNewNet::updateRoomName(const QString & name)
+{
+ RawSendNet(QString("ROOM_NAME%1%2").arg(delimeter).arg(name));
+}
+
+
+void HWNewNet::toggleRestrictJoins()
+{
+ RawSendNet(QString("TOGGLE_RESTRICT_JOINS"));
+}
+
+void HWNewNet::toggleRestrictTeamAdds()
+{
+ RawSendNet(QString("TOGGLE_RESTRICT_TEAMS"));
+}
+
+void HWNewNet::clearAccountsCache()
+{
+ RawSendNet(QString("CLEAR_ACCOUNTS_CACHE"));
+}
+
+void HWNewNet::partRoom()
+{
+ netClientState = InLobby;
+ RawSendNet(QString("PART"));
+}
+
+bool HWNewNet::isInRoom()
+{
+ return netClientState >= InRoom;
+}
+
+void HWNewNet::setServerMessageNew(const QString & msg)
+{
+ RawSendNet(QString("SET_SERVER_VAR%1MOTD_NEW%1%2").arg(delimeter).arg(msg));
+}
+
+void HWNewNet::setServerMessageOld(const QString & msg)
+{
+ RawSendNet(QString("SET_SERVER_VAR%1MOTD_OLD%1%2").arg(delimeter).arg(msg));
+}
+
+void HWNewNet::setLatestProtocolVar(int proto)
+{
+ RawSendNet(QString("SET_SERVER_VAR%1LATEST_PROTO%1%2").arg(delimeter).arg(proto));
+}
+
+void HWNewNet::askServerVars()
+{
+ RawSendNet(QString("GET_SERVER_VAR"));
+}
+
+void HWNewNet::handleNotice(int n)
+{
+ switch(n)
+ {
+ case 0:
+ {
+ emit NickTaken(mynick);
+ break;
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/newnetclient.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,177 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _NEW_NETCLIENT_INCLUDED
+#define _NEW_NETCLIENT_INCLUDED
+
+#include <QObject>
+#include <QString>
+#include <QTcpSocket>
+#include <QMap>
+
+#include "team.h"
+#include "game.h" // for GameState
+
+class GameUIConfig;
+class GameCFGWidget;
+class TeamSelWidget;
+
+extern char delimeter;
+
+class HWNewNet : public QObject
+{
+ Q_OBJECT
+
+ public:
+ enum ClientState { Disconnected, Connecting, Connected, InLobby, InRoom, InGame };
+
+ HWNewNet();
+ ~HWNewNet();
+ void Connect(const QString & hostName, quint16 port, const QString & nick);
+ void Disconnect();
+ void SendPasswordHash(const QString & hash);
+ void NewNick(const QString & nick);
+ bool isRoomChief();
+ bool isInRoom();
+ ClientState clientState();
+ QString getNick();
+ QString getRoom();
+ QString getHost();
+
+ private:
+ bool isChief;
+ QString mynick;
+ QString myroom;
+ QString myhost;
+ QTcpSocket NetSocket;
+ QString seed;
+ bool m_game_connected;
+
+ template <typename T>
+ void SendCfgStrNet(T a) {
+ QByteArray strmsg;
+ strmsg.append(a);
+ quint8 sz = strmsg.size();
+ QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
+ QString _msg = delimeter + QString(enginemsg.toBase64());
+ RawSendNet(_msg);
+ }
+
+ template <typename T>
+ void SendCfgStrLoc(T a) {
+ QByteArray strmsg;
+ strmsg.append(QString(a).toUtf8());
+ quint8 sz = strmsg.size();
+ QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
+ emit FromNet(enginemsg);
+ }
+
+ QStringList cmdbuf;
+
+ void RawSendNet(const QString & buf);
+ void RawSendNet(const QByteArray & buf);
+ void ParseCmd(const QStringList & lst);
+ void handleNotice(int n);
+
+ int loginStep;
+ ClientState netClientState;
+
+ signals:
+ void AskForRunGame();
+ void connected();
+ void disconnected(const QString & reason);
+ void Error(const QString & errmsg);
+ void Warning(const QString & wrnmsg);
+ void AskForPassword(const QString & nick);
+ void NickTaken(const QString & nick);
+ void AuthFailed();
+ void EnteredGame();
+ void LeftRoom(const QString & reason);
+ void nickAdded(const QString& nick, bool notifyNick);
+ void nickRemoved(const QString& nick);
+ void nickAddedLobby(const QString& nick, bool notifyNick);
+ void nickRemovedLobby(const QString& nick);
+ void FromNet(const QByteArray & buf);
+ void adminAccess(bool);
+ void roomMaster(bool);
+
+ void netSchemeConfig(QStringList &);
+ void paramChanged(const QString & param, const QStringList & value);
+ void configAsked();
+
+ void TeamAccepted(const QString&);
+ void AddNetTeam(const HWTeam&);
+ void RemoveNetTeam(const HWTeam&);
+ void hhnumChanged(const HWTeam&);
+ void teamColorChanged(const HWTeam&);
+ void chatStringLobby(const QString&);
+ void chatStringLobby(const QString&, const QString&);
+ void chatStringFromNet(const QString&);
+ void chatStringFromMe(const QString&);
+ void chatStringFromMeLobby(const QString&);
+
+ void roomsList(const QStringList&);
+ void serverMessage(const QString &);
+ void serverMessageNew(const QString &);
+ void serverMessageOld(const QString &);
+ void latestProtocolVar(int);
+
+ void setReadyStatus(const QString & nick, bool isReady);
+ void setMyReadyStatus(bool isReady);
+
+ public slots:
+ void ToggleReady();
+ void chatLineToNet(const QString& str);
+ void chatLineToLobby(const QString& str);
+ void SendTeamMessage(const QString& str);
+ void SendNet(const QByteArray & buf);
+ void AddTeam(const HWTeam & team);
+ void RemoveTeam(const HWTeam& team);
+ void onHedgehogsNumChanged(const HWTeam& team);
+ void onTeamColorChanged(const HWTeam& team);
+ void onParamChanged(const QString & param, const QStringList & value);
+
+ void setServerMessageNew(const QString &);
+ void setServerMessageOld(const QString &);
+ void setLatestProtocolVar(int proto);
+ void askServerVars();
+
+ void JoinRoom(const QString & room);
+ void CreateRoom(const QString & room);
+ void updateRoomName(const QString &);
+ void askRoomsList();
+ void gameFinished(bool correcly);
+ void banPlayer(const QString &);
+ void kickPlayer(const QString &);
+ void infoPlayer(const QString &);
+ void followPlayer(const QString &);
+ void startGame();
+ void toggleRestrictJoins();
+ void toggleRestrictTeamAdds();
+ void partRoom();
+ void clearAccountsCache();
+
+ private slots:
+ void ClientRead();
+ void OnConnect();
+ void OnDisconnect();
+ void displayError(QAbstractSocket::SocketError socketError);
+};
+
+#endif // _NEW_NETCLIENT_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/proto.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,59 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "proto.h"
+
+HWProto::HWProto()
+{
+
+}
+
+QByteArray & HWProto::addByteArrayToBuffer(QByteArray & buf, const QByteArray & msg)
+{
+ QByteArray bmsg = msg;
+ bmsg = bmsg.left(250);
+ quint8 sz = bmsg.size();
+ buf.append(QByteArray((char *)&sz, 1));
+ buf.append(bmsg);
+ return buf;
+}
+
+QByteArray & HWProto::addStringToBuffer(QByteArray & buf, const QString & string)
+{
+ return addByteArrayToBuffer(buf, string.toUtf8());
+}
+
+QByteArray & HWProto::addStringListToBuffer(QByteArray & buf, const QStringList & strList)
+{
+ for (int i = 0; i < strList.size(); i++)
+ addStringToBuffer(buf, strList[i]);
+ return buf;
+}
+
+QString HWProto::formatChatMsgForFrontend(const QString & msg)
+{
+ return formatChatMsg("|nick|", msg);
+}
+
+QString HWProto::formatChatMsg(const QString & nick, const QString & msg)
+{
+ if(msg.left(4) == "/me ")
+ return QString("\x02* %1 %2").arg(nick).arg(msg.mid(4));
+ else
+ return QString("\x01%1: %2").arg(nick).arg(msg);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/proto.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,40 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _PROTO_H
+#define _PROTO_H
+
+#include <QByteArray>
+#include <QString>
+#include <QStringList>
+
+
+class HWProto : public QObject
+{
+ Q_OBJECT
+
+public:
+ HWProto();
+ static QByteArray & addStringToBuffer(QByteArray & buf, const QString & string);
+ static QByteArray & addByteArrayToBuffer(QByteArray & buf, const QByteArray & msg);
+ static QByteArray & addStringListToBuffer(QByteArray & buf, const QStringList & strList);
+ static QString formatChatMsg(const QString & nick, const QString & msg);
+ static QString formatChatMsgForFrontend(const QString & msg);
+};
+
+#endif // _PROTO_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/tcpBase.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,166 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "tcpBase.h"
+
+#include <QMessageBox>
+#include <QList>
+
+#include <QImage>
+
+#include "hwconsts.h"
+
+QList<TCPBase*> srvsList;
+QPointer<QTcpServer> TCPBase::IPCServer(0);
+
+TCPBase::~TCPBase()
+{
+}
+
+TCPBase::TCPBase(bool demoMode) :
+ m_isDemoMode(demoMode),
+ IPCSocket(0)
+{
+ if(!IPCServer) {
+ IPCServer = new QTcpServer(0);
+ IPCServer->setMaxPendingConnections(1);
+ if (!IPCServer->listen(QHostAddress::LocalHost)) {
+ QMessageBox::critical(0, tr("Error"),
+ tr("Unable to start the server: %1.")
+ .arg(IPCServer->errorString()));
+ exit(0); // FIXME - should be graceful exit here
+ }
+ }
+ ipc_port=IPCServer->serverPort();
+}
+
+void TCPBase::NewConnection()
+{
+ if(IPCSocket) {
+ // connection should be already finished
+ return;
+ }
+ disconnect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection()));
+ IPCSocket = IPCServer->nextPendingConnection();
+ if(!IPCSocket) return;
+ connect(IPCSocket, SIGNAL(disconnected()), this, SLOT(ClientDisconnect()));
+ connect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
+ SendToClientFirst();
+}
+
+void TCPBase::RealStart()
+{
+ connect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection()));
+ IPCSocket = 0;
+
+ QProcess * process;
+ process = new QProcess;
+ connect(process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(StartProcessError(QProcess::ProcessError)));
+ QStringList arguments=getArguments();
+
+ // redirect everything written on stdout/stderr
+ if(isDevBuild)
+ process->setProcessChannelMode(QProcess::ForwardedChannels);
+ process->start(bindir->absolutePath() + "/hwengine", arguments);
+}
+
+void TCPBase::ClientDisconnect()
+{
+ disconnect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
+ onClientDisconnect();
+
+ if(srvsList.size()==1) srvsList.pop_front();
+ emit isReadyNow();
+ IPCSocket->deleteLater();
+ deleteLater();
+}
+
+void TCPBase::ClientRead()
+{
+ QByteArray readed=IPCSocket->readAll();
+ if(readed.isEmpty()) return;
+ readbuffer.append(readed);
+ onClientRead();
+}
+
+void TCPBase::StartProcessError(QProcess::ProcessError error)
+{
+ QMessageBox::critical(0, tr("Error"),
+ tr("Unable to run engine: %1 (")
+ .arg(error) + bindir->absolutePath() + "/hwengine)");
+}
+
+void TCPBase::tcpServerReady()
+{
+ disconnect(srvsList.takeFirst(), SIGNAL(isReadyNow()), this, SLOT(tcpServerReady()));
+
+ RealStart();
+}
+
+void TCPBase::Start()
+{
+ if(srvsList.isEmpty()) {
+ srvsList.push_back(this);
+ } else {
+ connect(srvsList.back(), SIGNAL(isReadyNow()), this, SLOT(tcpServerReady()));
+ srvsList.push_back(this);
+ return;
+ }
+
+ RealStart();
+}
+
+void TCPBase::onClientRead()
+{
+}
+
+void TCPBase::onClientDisconnect()
+{
+}
+
+void TCPBase::SendToClientFirst()
+{
+}
+
+void TCPBase::SendIPC(const QByteArray & buf)
+{
+ if (buf.size() > MAXMSGCHARS) return;
+ quint8 len = buf.size();
+ RawSendIPC(QByteArray::fromRawData((char *)&len, 1) + buf);
+}
+
+void TCPBase::RawSendIPC(const QByteArray & buf)
+{
+ if (!IPCSocket)
+ {
+ toSendBuf += buf;
+ } else
+ {
+ if (toSendBuf.size() > 0)
+ {
+ IPCSocket->write(toSendBuf);
+ if(m_isDemoMode) demo.append(toSendBuf);
+ toSendBuf.clear();
+ }
+ if(!buf.isEmpty()) {
+ IPCSocket->write(buf);
+ if(m_isDemoMode) demo.append(buf);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/net/tcpBase.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,81 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _TCPBASE_INCLUDED
+#define _TCPBASE_INCLUDED
+
+#include <QObject>
+#include <QTcpServer>
+#include <QTcpSocket>
+#include <QByteArray>
+#include <QString>
+#include <QDir>
+#include <QProcess>
+#include <QPointer>
+
+#include <QImage>
+
+#define MAXMSGCHARS 255
+
+class TCPBase : public QObject
+{
+ Q_OBJECT
+
+ public:
+ TCPBase(bool demoMode);
+ virtual ~TCPBase();
+
+ signals:
+ void isReadyNow();
+
+ protected:
+ quint16 ipc_port;
+
+ void Start();
+
+ QByteArray readbuffer;
+
+ QByteArray toSendBuf;
+ QByteArray demo;
+
+ void SendIPC(const QByteArray & buf);
+ void RawSendIPC(const QByteArray & buf);
+
+ virtual QStringList getArguments()=0;
+ virtual void onClientRead();
+ virtual void onClientDisconnect();
+ virtual void SendToClientFirst();
+
+ private:
+ static QPointer<QTcpServer> IPCServer;
+
+ bool m_isDemoMode;
+ void RealStart();
+ QPointer<QTcpSocket> IPCSocket;
+
+ private slots:
+ void NewConnection();
+ void ClientDisconnect();
+ void ClientRead();
+ void StartProcessError(QProcess::ProcessError error);
+
+ void tcpServerReady();
+};
+
+#endif // _TCPBASE_INCLUDED
--- a/QTfrontend/netregister.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "netregister.h"
-
-HWNetRegisterServer::HWNetRegisterServer(QObject *parent, const QString & descr, quint16 port) :
- QObject(parent)
-{
- Q_UNUSED(descr);
- Q_UNUSED(port);
-}
-
-void HWNetRegisterServer::unregister()
-{
-
-}
--- a/QTfrontend/netregister.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _NET_REGISTER_INCLUDED
-#define _NET_REGISTER_INCLUDED
-
-#include <QObject>
-
-class HWNetRegisterServer : public QObject
-{
- Q_OBJECT
-
-public:
- HWNetRegisterServer(QObject *parent, const QString & descr, quint16 port);
-
-public slots:
- virtual void unregister();
-};
-
-#endif // _NET_REGISTER_INCLUDED
--- a/QTfrontend/netserver.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QMessageBox>
-
-#include "hwconsts.h"
-#include "netserver.h"
-
-HWNetServer::~HWNetServer()
-{
- StopServer();
-}
-
-bool HWNetServer::StartServer(quint16 port)
-{
- ds_port = port;
-
- QStringList params;
- params << QString("--port=%1").arg(port);
- params << "--dedicated=False";
-
- process.start(bindir->absolutePath() + "/hedgewars-server", params);
-
- return process.waitForStarted(5000);
-}
-
-void HWNetServer::StopServer()
-{
- process.close();
-}
-
-
-quint16 HWNetServer::getRunningPort() const
-{
- return ds_port;
-}
--- a/QTfrontend/netserver.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _NETSERVER_INCLUDED
-#define _NETSERVER_INCLUDED
-
-#include <QObject>
-#include <QProcess>
-
-class HWNetServer : public QObject
-{
- Q_OBJECT
-
-public:
- ~HWNetServer();
- bool StartServer(quint16 port);
- void StopServer();
- QString getRunningHostName() const;
- quint16 getRunningPort() const;
-
-private:
- quint16 ds_port;
- QProcess process;
-};
-
-#endif // _NETSERVER_INCLUDED
--- a/QTfrontend/netserverslist.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QUdpSocket>
-#include <QListWidget>
-
-#include "netserverslist.h"
-
-HWNetServersModel::HWNetServersModel(QObject* parent) :
- QAbstractTableModel(parent)
-{
-
-}
-
-void HWNetServersModel::updateList()
-{
-
-}
-
-QVariant HWNetServersModel::headerData(int section,
- Qt::Orientation orientation, int role) const
-{
- if (role != Qt::DisplayRole)
- return QVariant();
-
- if (orientation == Qt::Horizontal)
- {
- switch (section)
- {
- case 0: return tr("Title");
- case 1: return tr("IP");
- case 2: return tr("Port");
- default: return QVariant();
- }
- } else
- return QString("%1").arg(section + 1);
-}
-
-int HWNetServersModel::rowCount(const QModelIndex &parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return games.size();
-}
-
-int HWNetServersModel::columnCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return 3;
-}
--- a/QTfrontend/netserverslist.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _NET_SERVERSLIST_INCLUDED
-#define _NET_SERVERSLIST_INCLUDED
-
-#include <QAbstractTableModel>
-#include <QStringList>
-
-class HWNetServersModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- HWNetServersModel(QObject *parent = 0);
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- int rowCount(const QModelIndex & parent) const;
- int columnCount(const QModelIndex & parent) const;
-
-public slots:
- virtual void updateList();
-
-protected:
- QList<QStringList> games;
-};
-
-#endif // _NET_SERVERSLIST_INCLUDED
--- a/QTfrontend/netudpserver.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QUdpSocket>
-
-#include "netudpserver.h"
-
-HWNetUdpServer::HWNetUdpServer(QObject *parent, const QString & descr, quint16 port) :
- HWNetRegisterServer(parent, descr, port),
- m_descr(descr)
-{
- pUdpSocket = new QUdpSocket(this);
- pUdpSocket->bind(46631);
- connect(pUdpSocket, SIGNAL(readyRead()), this, SLOT(onClientRead()));
-}
-
-void HWNetUdpServer::onClientRead()
-{
- while (pUdpSocket->hasPendingDatagrams()) {
- QByteArray datagram;
- datagram.resize(pUdpSocket->pendingDatagramSize());
- QHostAddress clientAddr;
- quint16 clientPort;
- pUdpSocket->readDatagram(datagram.data(), datagram.size(), &clientAddr, &clientPort);
- if(datagram.startsWith("hedgewars client")) {
- // send answer to client
- pUdpSocket->writeDatagram(QString("hedgewars server\n%1").arg(m_descr).toUtf8(), clientAddr, clientPort);
- }
- }
-}
-
-void HWNetUdpServer::unregister()
-{
- deleteLater();
-}
--- a/QTfrontend/netudpserver.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _NET_UDPSERVER_INCLUDED
-#define _NET_UDPSERVER_INCLUDED
-
-#include <QObject>
-#include "netregister.h"
-
-class QUdpSocket;
-
-class HWNetUdpServer : public HWNetRegisterServer
-{
- Q_OBJECT
-
- public:
- HWNetUdpServer(QObject *parent, const QString & descr, quint16 port);
-
- public slots:
- void unregister();
-
- private slots:
- void onClientRead();
-
- private:
- QUdpSocket* pUdpSocket;
- QString m_descr;
-};
-
-#endif // _NET_UDPSERVER_INCLUDED
--- a/QTfrontend/netudpwidget.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QUdpSocket>
-
-#include "netudpwidget.h"
-
-HWNetUdpModel::HWNetUdpModel(QObject* parent) :
- HWNetServersModel(parent)
-{
- pUdpSocket = new QUdpSocket(this);
-
- pUdpSocket->bind();
- connect(pUdpSocket, SIGNAL(readyRead()), this, SLOT(onClientRead()));
-}
-
-void HWNetUdpModel::updateList()
-{
- games.clear();
-
- reset();
-
- pUdpSocket->writeDatagram("hedgewars client", QHostAddress::Broadcast, 46631);
-}
-
-void HWNetUdpModel::onClientRead()
-{
- while (pUdpSocket->hasPendingDatagrams()) {
- QByteArray datagram;
- datagram.resize(pUdpSocket->pendingDatagramSize());
- QHostAddress clientAddr;
- quint16 clientPort;
-
- pUdpSocket->readDatagram(datagram.data(), datagram.size(), &clientAddr, &clientPort);
-
- QString packet = QString::fromUtf8(datagram.data());
- if(packet.startsWith("hedgewars server")) {
- QStringList sl;
- sl << packet.remove(0, 17) << clientAddr.toString() << "46631";
- games.append(sl);
- }
- }
-
- reset();
-}
-
-QVariant HWNetUdpModel::data(const QModelIndex &index,
- int role) const
-{
- if (!index.isValid() || index.row() < 0
- || index.row() >= games.size()
- || role != Qt::DisplayRole)
- return QVariant();
-
- return games[index.row()][index.column()];
-}
--- a/QTfrontend/netudpwidget.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _NET_UDPWIDGET_INCLUDED
-#define _NET_UDPWIDGET_INCLUDED
-
-#include "netserverslist.h"
-
-class QUdpSocket;
-
-class HWNetUdpModel : public HWNetServersModel
-{
- Q_OBJECT
-
-public:
- HWNetUdpModel(QObject *parent = 0);
-
- QVariant data(const QModelIndex &index, int role) const;
-
-public slots:
- void updateList();
-
-private slots:
- void onClientRead();
-
-private:
- QUdpSocket* pUdpSocket;
-};
-
-#endif // _NET_UDPWIDGET_INCLUDED
--- a/QTfrontend/newnetclient.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,797 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QDebug>
-#include <QInputDialog>
-#include <QCryptographicHash>
-
-#include "hwconsts.h"
-#include "newnetclient.h"
-#include "proto.h"
-#include "game.h"
-#include "misc.h"
-/* only to get the ignoreList from the chat widget */
-#include "hwform.h"
-#include "pageroomslist.h"
-#include "chatwidget.h"
-
-char delimeter='\n';
-
-HWNewNet::HWNewNet() :
- isChief(false),
- m_game_connected(false),
- loginStep(0),
- netClientState(0)
-{
-// socket stuff
- connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
- connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect()));
- connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect()));
- connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this,
- SLOT(displayError(QAbstractSocket::SocketError)));
-}
-
-HWNewNet::~HWNewNet()
-{
- if (m_game_connected)
- {
- RawSendNet(QString("QUIT%1%2").arg(delimeter).arg("User quit"));
- emit Disconnected(tr("User quit"));
- }
- NetSocket.flush();
-}
-
-void HWNewNet::Connect(const QString & hostName, quint16 port, const QString & nick)
-{
- mynick = nick;
- myhost = hostName + QString(":%1").arg(port);
- NetSocket.connectToHost(hostName, port);
-}
-
-void HWNewNet::Disconnect()
-{
- if (m_game_connected)
- RawSendNet(QString("QUIT%1%2").arg(delimeter).arg("User quit"));
- m_game_connected = false;
-
- NetSocket.disconnectFromHost();
-}
-
-void HWNewNet::CreateRoom(const QString & room)
-{
- if(netClientState != 2)
- {
- qWarning("Illegal try to create room!");
- return;
- }
-
- myroom = room;
-
- RawSendNet(QString("CREATE_ROOM%1%2").arg(delimeter).arg(room));
- isChief = true;
-}
-
-void HWNewNet::JoinRoom(const QString & room)
-{
- if(netClientState != 2)
- {
- qWarning("Illegal try to join room!");
- return;
- }
-
- myroom = room;
-
- RawSendNet(QString("JOIN_ROOM%1%2").arg(delimeter).arg(room));
- isChief = false;
-}
-
-void HWNewNet::AddTeam(const HWTeam & team)
-{
- QString cmd = QString("ADD_TEAM") + delimeter +
- team.name() + delimeter +
- team.color().name() + delimeter +
- team.grave() + delimeter +
- team.fort() + delimeter +
- team.voicepack() + delimeter +
- team.flag() + delimeter +
- QString::number(team.difficulty());
-
- for(unsigned int i = 0; i < HEDGEHOGS_PER_TEAM; ++i)
- {
- cmd.append(delimeter);
- cmd.append(team.hedgehog(i).Name);
- cmd.append(delimeter);
- cmd.append(team.hedgehog(i).Hat);
- }
- RawSendNet(cmd);
-}
-
-void HWNewNet::RemoveTeam(const HWTeam & team)
-{
- RawSendNet(QString("REMOVE_TEAM") + delimeter + team.name());
-}
-
-void HWNewNet::NewNick(const QString & nick)
-{
- RawSendNet(QString("NICK%1%2").arg(delimeter).arg(nick));
-}
-
-void HWNewNet::ToggleReady()
-{
- RawSendNet(QString("TOGGLE_READY"));
-}
-
-void HWNewNet::SendNet(const QByteArray & buf)
-{
- QString msg = QString(buf.toBase64());
-
- RawSendNet(QString("EM%1%2").arg(delimeter).arg(msg));
-}
-
-void HWNewNet::RawSendNet(const QString & str)
-{
- RawSendNet(str.toUtf8());
-}
-
-void HWNewNet::RawSendNet(const QByteArray & buf)
-{
- qDebug() << "Client: " << QString(buf).split("\n");
- NetSocket.write(buf);
- NetSocket.write("\n\n", 2);
-}
-
-void HWNewNet::ClientRead()
-{
- while (NetSocket.canReadLine()) {
- QString s = QString::fromUtf8(NetSocket.readLine());
- if (s.endsWith('\n')) s.chop(1);
-
- if (s.size() == 0) {
- ParseCmd(cmdbuf);
- cmdbuf.clear();
- } else
- cmdbuf << s;
- }
-}
-
-void HWNewNet::OnConnect()
-{
-}
-
-void HWNewNet::OnDisconnect()
-{
- if(m_game_connected) emit Disconnected("");
- m_game_connected = false;
-}
-
-void HWNewNet::displayError(QAbstractSocket::SocketError socketError)
-{
- m_game_connected = false;
-
- switch (socketError) {
- case QAbstractSocket::RemoteHostClosedError:
- break;
- case QAbstractSocket::HostNotFoundError:
- emit Disconnected(tr("The host was not found. Please check the host name and port settings."));
- break;
- case QAbstractSocket::ConnectionRefusedError:
- emit Disconnected(tr("Connection refused"));
- break;
- default:
- emit Disconnected(NetSocket.errorString());
- }
-}
-
-void HWNewNet::SendPasswordHash(const QString & hash)
-{
- RawSendNet(QString("PASSWORD%1%2").arg(delimeter).arg(hash));
-}
-
-void HWNewNet::ParseCmd(const QStringList & lst)
-{
- qDebug() << "Server: " << lst;
-
- if(!lst.size())
- {
- qWarning("Net client: Bad message");
- return;
- }
-
- if (lst[0] == "NICK")
- {
- mynick = lst[1];
- return ;
- }
-
- if (lst[0] == "PROTO")
- return ;
-
- if (lst[0] == "ERROR") {
- if (lst.size() == 2)
- emit Error(lst[1]);
- else
- emit Error("Unknown error");
- return;
- }
-
- if (lst[0] == "WARNING") {
- if (lst.size() == 2)
- emit Warning(lst[1]);
- else
- emit Warning("Unknown warning");
- return;
- }
-
- if (lst[0] == "CONNECTED") {
- if(lst.size() < 3 || lst[2].toInt() < cMinServerVersion)
- {
- // TODO: Warn user, disconnect
- qWarning() << "Server too old";
- }
-
- RawSendNet(QString("NICK%1%2").arg(delimeter).arg(mynick));
- RawSendNet(QString("PROTO%1%2").arg(delimeter).arg(*cProtoVer));
- netClientState = 1;
- m_game_connected = true;
- emit adminAccess(false);
- return;
- }
-
- if (lst[0] == "PING") {
- if (lst.size() > 1)
- RawSendNet(QString("PONG%1%2").arg(delimeter).arg(lst[1]));
- else
- RawSendNet(QString("PONG"));
- return;
- }
-
- if (lst[0] == "ROOMS") {
- QStringList tmp = lst;
- tmp.removeFirst();
- emit roomsList(tmp);
- return;
- }
-
- if (lst[0] == "SERVER_MESSAGE") {
- if(lst.size() < 2)
- {
- qWarning("Net: Empty SERVERMESSAGE message");
- return;
- }
- emit serverMessage(lst[1]);
- return;
- }
-
- if (lst[0] == "CHAT") {
- if(lst.size() < 3)
- {
- qWarning("Net: Empty CHAT message");
- return;
- }
- if (netClientState == 2)
- emit chatStringLobby(lst[1], HWProto::formatChatMsgForFrontend(lst[2]));
- else
- emit chatStringFromNet(HWProto::formatChatMsg(lst[1], lst[2]));
- return;
- }
-
- if (lst[0] == "INFO") {
- if(lst.size() < 5)
- {
- qWarning("Net: Malformed INFO message");
- return;
- }
- QStringList tmp = lst;
- tmp.removeFirst();
- if (netClientState == 2)
- emit chatStringLobby(tmp.join("\n").prepend('\x01'));
- else
- emit chatStringFromNet(tmp.join("\n").prepend('\x01'));
- return;
- }
-
- if (lst[0] == "SERVER_VARS") {
- QStringList tmp = lst;
- tmp.removeFirst();
- while (tmp.size() >= 2)
- {
- if(tmp[0] == "MOTD_NEW") emit serverMessageNew(tmp[1]);
- else if(tmp[0] == "MOTD_OLD") emit serverMessageOld(tmp[1]);
- else if(tmp[0] == "LATEST_PROTO") emit latestProtocolVar(tmp[1].toInt());
-
- tmp.removeFirst();
- tmp.removeFirst();
- }
- return;
- }
-
- if (lst[0] == "CLIENT_FLAGS")
- {
- if(lst.size() < 3 || lst[1].size() < 2)
- {
- qWarning("Net: Malformed CLIENT_FLAGS message");
- return;
- }
-
- QString flags = lst[1];
- bool setFlag = flags[0] == '+';
-
- while(flags.size() > 1)
- {
- flags.remove(0, 1);
- char c = flags[0].toAscii();
-
- switch(c)
- {
- case 'r':
- {
- for(int i = 2; i < lst.size(); ++i)
- {
- if (lst[i] == mynick)
- emit setMyReadyStatus(setFlag);
- emit setReadyStatus(lst[i], setFlag);
- }
- }
- }
- }
-
- return;
- }
-
- if (lst[0] == "ADD_TEAM") {
- if(lst.size() != 24)
- {
- qWarning("Net: Bad ADDTEAM message");
- return;
- }
- QStringList tmp = lst;
- tmp.removeFirst();
- emit AddNetTeam(tmp);
- return;
- }
-
- if (lst[0] == "REMOVE_TEAM") {
- if(lst.size() != 2)
- {
- qWarning("Net: Bad REMOVETEAM message");
- return;
- }
- emit RemoveNetTeam(HWTeam(lst[1]));
- return;
- }
-
- if(lst[0] == "ROOMABANDONED") {
- netClientState = 2;
- emit LeftRoom(tr("Room destroyed"));
- return;
- }
-
- if(lst[0] == "KICKED") {
- netClientState = 2;
- emit LeftRoom(tr("You got kicked"));
- return;
- }
-
- if(lst[0] == "JOINED") {
- if(lst.size() < 2)
- {
- qWarning("Net: Bad JOINED message");
- return;
- }
-
- for(int i = 1; i < lst.size(); ++i)
- {
- if (lst[i] == mynick)
- {
- netClientState = 3;
- emit EnteredGame();
- emit roomMaster(isChief);
- if (isChief)
- emit configAsked();
- }
- // TODO reactivate
-/*
- if (lst[i] != mynick && isChief && config->Form->ui.pageRoomsList->chatWidget->ignoreList.contains(lst[i], Qt::CaseInsensitive) && !config->Form->ui.pageRoomsList->chatWidget->friendsList.contains(lst[i], Qt::CaseInsensitive))
- {
- kickPlayer(lst[i]);
- }
- else
-*/
- {
- emit nickAdded(lst[i], isChief && (lst[i] != mynick));
- emit chatStringFromNet(tr("%1 *** %2 has joined the room").arg('\x03').arg(lst[i]));
- }
- }
- return;
- }
-
- if(lst[0] == "LOBBY:JOINED") {
- if(lst.size() < 2)
- {
- qWarning("Net: Bad JOINED message");
- return;
- }
-
- for(int i = 1; i < lst.size(); ++i)
- {
- if (lst[i] == mynick)
- {
- netClientState = 2;
- RawSendNet(QString("LIST"));
- emit Connected();
- }
-
- emit nickAddedLobby(lst[i], false);
- emit chatStringLobby(lst[i], tr("%1 *** %2 has joined").arg('\x03').arg("|nick|"));
- }
- return;
- }
-
- if(lst[0] == "LEFT") {
- if(lst.size() < 2)
- {
- qWarning("Net: Bad LEFT message");
- return;
- }
- emit nickRemoved(lst[1]);
- if (lst.size() < 3)
- emit chatStringFromNet(tr("%1 *** %2 has left").arg('\x03').arg(lst[1]));
- else
- emit chatStringFromNet(tr("%1 *** %2 has left (%3)").arg('\x03').arg(lst[1], lst[2]));
- return;
- }
-
- if(lst[0] == "ROOM") {
- if(lst.size() < 2)
- {
- qWarning("Net: Bad ROOM message");
- return;
- }
- RawSendNet(QString("LIST"));
- return;
- }
-
- if(lst[0] == "LOBBY:LEFT") {
- if(lst.size() < 2)
- {
- qWarning("Net: Bad LOBBY:LEFT message");
- return;
- }
- emit nickRemovedLobby(lst[1]);
- if (lst.size() < 3)
- emit chatStringLobby(tr("%1 *** %2 has left").arg('\x03').arg(lst[1]));
- else
- emit chatStringLobby(tr("%1 *** %2 has left (%3)").arg('\x03').arg(lst[1], lst[2]));
- return;
- }
-
- if (lst[0] == "RUN_GAME") {
- netClientState = 5;
- emit AskForRunGame();
- return;
- }
-
- if (lst[0] == "ASKPASSWORD") {
- emit AskForPassword(mynick);
- return;
- }
-
- if (lst[0] == "NOTICE") {
- if(lst.size() < 2)
- {
- qWarning("Net: Bad NOTICE message");
- return;
- }
-
- bool ok;
- int n = lst[1].toInt(&ok);
- if(!ok)
- {
- qWarning("Net: Bad NOTICE message");
- return;
- }
-
- handleNotice(n);
-
- return;
- }
-
- if (lst[0] == "TEAM_ACCEPTED") {
- if (lst.size() != 2)
- {
- qWarning("Net: Bad TEAM_ACCEPTED message");
- return;
- }
- emit TeamAccepted(lst[1]);
- return;
- }
-
-
- if (lst[0] == "CFG") {
- if(lst.size() < 3)
- {
- qWarning("Net: Bad CFG message");
- return;
- }
- QStringList tmp = lst;
- tmp.removeFirst();
- tmp.removeFirst();
- if (lst[1] == "SCHEME")
- emit netSchemeConfig(tmp);
- else
- emit paramChanged(lst[1], tmp);
- return;
- }
-
- if (lst[0] == "HH_NUM") {
- if (lst.size() != 3)
- {
- qWarning("Net: Bad TEAM_ACCEPTED message");
- return;
- }
- HWTeam tmptm(lst[1]);
- tmptm.setNumHedgehogs(lst[2].toUInt());
- emit hhnumChanged(tmptm);
- return;
- }
-
- if (lst[0] == "TEAM_COLOR") {
- if (lst.size() != 3)
- {
- qWarning("Net: Bad TEAM_COLOR message");
- return;
- }
- HWTeam tmptm(lst[1]);
- tmptm.setColor(QColor(lst[2]));
- emit teamColorChanged(tmptm);
- return;
- }
-
- if (lst[0] == "EM") {
- if(lst.size() < 2)
- {
- qWarning("Net: Bad EM message");
- return;
- }
- for(int i = 1; i < lst.size(); ++i)
- {
- QByteArray em = QByteArray::fromBase64(lst[i].toAscii());
- emit FromNet(em);
- }
- return;
- }
-
- if (lst[0] == "BYE") {
- if (lst.size() < 2)
- {
- qWarning("Net: Bad BYE message");
- return;
- }
- if (lst[1] == "Authentication failed")
- {
- emit AuthFailed();
- }
- m_game_connected = false;
- Disconnect();
- emit Disconnected(lst[1]);
- return;
- }
-
-
- if (lst[0] == "ADMIN_ACCESS") {
- emit adminAccess(true);
- return;
- }
-
- if (lst[0] == "ROOM_CONTROL_ACCESS") {
- if (lst.size() < 2)
- {
- qWarning("Net: Bad ROOM_CONTROL_ACCESS message");
- return;
- }
- isChief = (lst[1] != "0");
- emit roomMaster(isChief);
- return;
- }
-
- qWarning() << "Net: Unknown message:" << lst;
-}
-
-void HWNewNet::onHedgehogsNumChanged(const HWTeam& team)
-{
- if (isChief)
- RawSendNet(QString("HH_NUM%1%2%1%3")
- .arg(delimeter)
- .arg(team.name())
- .arg(team.numHedgehogs()));
-}
-
-void HWNewNet::onTeamColorChanged(const HWTeam& team)
-{
- if (isChief)
- RawSendNet(QString("TEAM_COLOR%1%2%1%3")
- .arg(delimeter)
- .arg(team.name())
- .arg(team.color().name()));
-}
-
-void HWNewNet::onParamChanged(const QString & param, const QStringList & value)
-{
- if (isChief)
- RawSendNet(
- QString("CFG%1%2%1%3")
- .arg(delimeter)
- .arg(param)
- .arg(value.join(QString(delimeter)))
- );
-}
-
-void HWNewNet::chatLineToNet(const QString& str)
-{
- if(str != "") {
- RawSendNet(QString("CHAT") + delimeter + str);
- emit(chatStringFromMe(HWProto::formatChatMsg(mynick, str)));
- }
-}
-
-void HWNewNet::chatLineToLobby(const QString& str)
-{
- if(str != "") {
- RawSendNet(QString("CHAT") + delimeter + str);
- emit(chatStringFromMeLobby(HWProto::formatChatMsg(mynick, str)));
- }
-}
-
-void HWNewNet::SendTeamMessage(const QString& str)
-{
- RawSendNet(QString("TEAMCHAT") + delimeter + str);
-}
-
-void HWNewNet::askRoomsList()
-{
- if(netClientState != 2)
- {
- qWarning("Illegal try to get rooms list!");
- return;
- }
- RawSendNet(QString("LIST"));
-}
-
-int HWNewNet::getClientState()
-{
- return netClientState;
-}
-
-QString HWNewNet::getNick()
-{
- return mynick;
-}
-
-QString HWNewNet::getRoom()
-{
- return myroom;
-}
-
-QString HWNewNet::getHost()
-{
- return myhost;
-}
-
-bool HWNewNet::isRoomChief()
-{
- return isChief;
-}
-
-void HWNewNet::gameFinished(bool correctly)
-{
- if (netClientState == 5) netClientState = 3;
- RawSendNet(QString("ROUNDFINISHED%1%2").arg(delimeter).arg(correctly ? "1" : "0"));
-}
-
-void HWNewNet::banPlayer(const QString & nick)
-{
- RawSendNet(QString("BAN%1%2").arg(delimeter).arg(nick));
-}
-
-void HWNewNet::kickPlayer(const QString & nick)
-{
- RawSendNet(QString("KICK%1%2").arg(delimeter).arg(nick));
-}
-
-void HWNewNet::infoPlayer(const QString & nick)
-{
- RawSendNet(QString("INFO%1%2").arg(delimeter).arg(nick));
-}
-
-void HWNewNet::followPlayer(const QString & nick)
-{
- if (!isInRoom()) {
- RawSendNet(QString("FOLLOW%1%2").arg(delimeter).arg(nick));
- isChief = false;
- }
-}
-
-void HWNewNet::startGame()
-{
- RawSendNet(QString("START_GAME"));
-}
-
-void HWNewNet::updateRoomName(const QString & name)
-{
- RawSendNet(QString("ROOM_NAME%1%2").arg(delimeter).arg(name));
-}
-
-
-void HWNewNet::toggleRestrictJoins()
-{
- RawSendNet(QString("TOGGLE_RESTRICT_JOINS"));
-}
-
-void HWNewNet::toggleRestrictTeamAdds()
-{
- RawSendNet(QString("TOGGLE_RESTRICT_TEAMS"));
-}
-
-void HWNewNet::clearAccountsCache()
-{
- RawSendNet(QString("CLEAR_ACCOUNTS_CACHE"));
-}
-
-void HWNewNet::partRoom()
-{
- netClientState = 2;
- RawSendNet(QString("PART"));
-}
-
-bool HWNewNet::isInRoom()
-{
- return netClientState > 2;
-}
-
-void HWNewNet::setServerMessageNew(const QString & msg)
-{
- RawSendNet(QString("SET_SERVER_VAR%1MOTD_NEW%1%2").arg(delimeter).arg(msg));
-}
-
-void HWNewNet::setServerMessageOld(const QString & msg)
-{
- RawSendNet(QString("SET_SERVER_VAR%1MOTD_OLD%1%2").arg(delimeter).arg(msg));
-}
-
-void HWNewNet::setLatestProtocolVar(int proto)
-{
- RawSendNet(QString("SET_SERVER_VAR%1LATEST_PROTO%1%2").arg(delimeter).arg(proto));
-}
-
-void HWNewNet::askServerVars()
-{
- RawSendNet(QString("GET_SERVER_VAR"));
-}
-
-void HWNewNet::handleNotice(int n)
-{
- switch(n)
- {
- case 0:
- {
- emit NickTaken(mynick);
- break;
- }
- }
-}
--- a/QTfrontend/newnetclient.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _NEW_NETCLIENT_INCLUDED
-#define _NEW_NETCLIENT_INCLUDED
-
-#include <QObject>
-#include <QString>
-#include <QTcpSocket>
-#include <QMap>
-
-#include "team.h"
-#include "game.h" // for GameState
-
-class GameUIConfig;
-class GameCFGWidget;
-class TeamSelWidget;
-
-extern char delimeter;
-
-class HWNewNet : public QObject
-{
- Q_OBJECT
-
- public:
- HWNewNet();
- ~HWNewNet();
- void Connect(const QString & hostName, quint16 port, const QString & nick);
- void Disconnect();
- void SendPasswordHash(const QString & hash);
- void NewNick(const QString & nick);
- bool isRoomChief();
- bool isInRoom();
- int getClientState();
- QString getNick();
- QString getRoom();
- QString getHost();
-
- private:
- bool isChief;
- QString mynick;
- QString myroom;
- QString myhost;
- QTcpSocket NetSocket;
- QString seed;
- bool m_game_connected;
-
- template <typename T>
- void SendCfgStrNet(T a) {
- QByteArray strmsg;
- strmsg.append(a);
- quint8 sz = strmsg.size();
- QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
- QString _msg = delimeter + QString(enginemsg.toBase64());
- RawSendNet(_msg);
- }
-
- template <typename T>
- void SendCfgStrLoc(T a) {
- QByteArray strmsg;
- strmsg.append(QString(a).toUtf8());
- quint8 sz = strmsg.size();
- QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
- emit FromNet(enginemsg);
- }
-
- QStringList cmdbuf;
-
- void RawSendNet(const QString & buf);
- void RawSendNet(const QByteArray & buf);
- void ParseCmd(const QStringList & lst);
- void handleNotice(int n);
-
- int loginStep;
- int netClientState;
-
- signals:
- void AskForRunGame();
- void Connected();
- void Disconnected(const QString & reason);
- void Error(const QString & errmsg);
- void Warning(const QString & wrnmsg);
- void AskForPassword(const QString & nick);
- void NickTaken(const QString & nick);
- void AuthFailed();
- void EnteredGame();
- void LeftRoom(const QString & reason);
- void nickAdded(const QString& nick, bool notifyNick);
- void nickRemoved(const QString& nick);
- void nickAddedLobby(const QString& nick, bool notifyNick);
- void nickRemovedLobby(const QString& nick);
- void FromNet(const QByteArray & buf);
- void adminAccess(bool);
- void roomMaster(bool);
-
- void netSchemeConfig(QStringList &);
- void paramChanged(const QString & param, const QStringList & value);
- void configAsked();
-
- void TeamAccepted(const QString&);
- void AddNetTeam(const HWTeam&);
- void RemoveNetTeam(const HWTeam&);
- void hhnumChanged(const HWTeam&);
- void teamColorChanged(const HWTeam&);
- void chatStringLobby(const QString&);
- void chatStringLobby(const QString&, const QString&);
- void chatStringFromNet(const QString&);
- void chatStringFromMe(const QString&);
- void chatStringFromMeLobby(const QString&);
-
- void roomsList(const QStringList&);
- void serverMessage(const QString &);
- void serverMessageNew(const QString &);
- void serverMessageOld(const QString &);
- void latestProtocolVar(int);
-
- void setReadyStatus(const QString & nick, bool isReady);
- void setMyReadyStatus(bool isReady);
-
- public slots:
- void ToggleReady();
- void chatLineToNet(const QString& str);
- void chatLineToLobby(const QString& str);
- void SendTeamMessage(const QString& str);
- void SendNet(const QByteArray & buf);
- void AddTeam(const HWTeam & team);
- void RemoveTeam(const HWTeam& team);
- void onHedgehogsNumChanged(const HWTeam& team);
- void onTeamColorChanged(const HWTeam& team);
- void onParamChanged(const QString & param, const QStringList & value);
-
- void setServerMessageNew(const QString &);
- void setServerMessageOld(const QString &);
- void setLatestProtocolVar(int proto);
- void askServerVars();
-
- void JoinRoom(const QString & room);
- void CreateRoom(const QString & room);
- void updateRoomName(const QString &);
- void askRoomsList();
- void gameFinished(bool correcly);
- void banPlayer(const QString &);
- void kickPlayer(const QString &);
- void infoPlayer(const QString &);
- void followPlayer(const QString &);
- void startGame();
- void toggleRestrictJoins();
- void toggleRestrictTeamAdds();
- void partRoom();
- void clearAccountsCache();
-
- private slots:
- void ClientRead();
- void OnConnect();
- void OnDisconnect();
- void displayError(QAbstractSocket::SocketError socketError);
-};
-
-#endif // _NEW_NETCLIENT_INCLUDED
--- a/QTfrontend/pageadmin.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QLabel>
-#include <QLineEdit>
-#include <QSpinBox>
-#include <QPushButton>
-#include <QTextBrowser>
-
-#include "pageadmin.h"
-#include "chatwidget.h"
-
-PageAdmin::PageAdmin(QWidget* parent) :
- AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
-
- // 0
- pbAsk = addButton(tr("Fetch data"), pageLayout, 0, 0, 1, 3);
- connect(pbAsk, SIGNAL(clicked()), this, SIGNAL(askServerVars()));
-
- // 1
- QLabel * lblSMN = new QLabel(this);
- lblSMN->setText(tr("Server message for latest version:"));
- pageLayout->addWidget(lblSMN, 1, 0);
-
- leServerMessageNew = new QLineEdit(this);
- pageLayout->addWidget(leServerMessageNew, 1, 1);
-
- // 2
- QLabel * lblSMO = new QLabel(this);
- lblSMO->setText(tr("Server message for previous versions:"));
- pageLayout->addWidget(lblSMO, 2, 0);
-
- leServerMessageOld = new QLineEdit(this);
- pageLayout->addWidget(leServerMessageOld, 2, 1);
-
- // 3
- QLabel * lblP = new QLabel(this);
- lblP->setText(tr("Latest version protocol number:"));
- pageLayout->addWidget(lblP, 3, 0);
-
- sbProtocol = new QSpinBox(this);
- pageLayout->addWidget(sbProtocol, 3, 1);
-
- // 4
- QLabel * lblPreview = new QLabel(this);
- lblPreview->setText(tr("MOTD preview:"));
- pageLayout->addWidget(lblPreview, 4, 0);
-
- tb = new QTextBrowser(this);
- tb->setOpenExternalLinks(true);
- tb->document()->setDefaultStyleSheet(HWChatWidget::STYLE);
- pageLayout->addWidget(tb, 4, 1, 1, 2);
- connect(leServerMessageNew, SIGNAL(textEdited(const QString &)), tb, SLOT(setHtml(const QString &)));
- connect(leServerMessageOld, SIGNAL(textEdited(const QString &)), tb, SLOT(setHtml(const QString &)));
-
- // 5
- pbClearAccountsCache = addButton(tr("Clear Accounts Cache"), pageLayout, 5, 0);
- connect(pbClearAccountsCache, SIGNAL(clicked()), this, SIGNAL(clearAccountsCache()));
-
- // 6
- pbSetSM = addButton(tr("Set data"), pageLayout, 6, 0, 1, 3);
- connect(pbSetSM, SIGNAL(clicked()), this, SLOT(smChanged()));
-
-
- // 7
- BtnBack = addButton(":/res/Exit.png", pageLayout, 7, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
-
-void PageAdmin::smChanged()
-{
- emit setServerMessageNew(leServerMessageNew->text());
- emit setServerMessageOld(leServerMessageOld->text());
- emit setProtocol(sbProtocol->value());
-}
-
-void PageAdmin::serverMessageNew(const QString & str)
-{
- leServerMessageNew->setText(str);
-}
-
-void PageAdmin::serverMessageOld(const QString & str)
-{
- leServerMessageOld->setText(str);
-}
-void PageAdmin::protocol(int proto)
-{
- sbProtocol->setValue(proto);
-}
--- a/QTfrontend/pageadmin.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_ADMIN_H
-#define PAGE_ADMIN_H
-
-#include "AbstractPage.h"
-
-class PageAdmin : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageAdmin(QWidget* parent = 0);
-
-private:
- QLineEdit * leServerMessageNew;
- QLineEdit * leServerMessageOld;
- QPushButton * pbSetSM;
- QPushButton * pbAsk;
- QSpinBox * sbProtocol;
- QTextBrowser * tb;
- QPushButton * BtnBack;
- QPushButton * pbClearAccountsCache;
-
-private slots:
- void smChanged();
-
-public slots:
- void serverMessageNew(const QString & str);
- void serverMessageOld(const QString & str);
- void protocol(int proto);
-
-signals:
- void setServerMessageNew(const QString & str);
- void setServerMessageOld(const QString & str);
- void setProtocol(int proto);
- void askServerVars();
- void clearAccountsCache();
-};
-
-#endif
--- a/QTfrontend/pagecampaign.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QComboBox>
-
-#include "pagecampaign.h"
-
-PageCampaign::PageCampaign(QWidget* parent) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 2);
- pageLayout->setColumnStretch(2, 1);
- pageLayout->setRowStretch(0, 1);
- pageLayout->setRowStretch(3, 1);
-
- CBSelect = new QComboBox(this);
- CBTeam = new QComboBox(this);
-
- pageLayout->addWidget(CBTeam, 1, 1);
- pageLayout->addWidget(CBSelect, 2, 1);
-
- BtnStartCampaign = new QPushButton(this);
- BtnStartCampaign->setFont(*font14);
- BtnStartCampaign->setText(QPushButton::tr("Go!"));
- pageLayout->addWidget(BtnStartCampaign, 2, 2);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
--- a/QTfrontend/pagecampaign.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_CAMPAIGN_H
-#define PAGE_CAMPAIGN_H
-
-#include "AbstractPage.h"
-
-class PageCampaign : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageCampaign(QWidget* parent = 0);
-
- QPushButton *BtnStartCampaign;
- QComboBox *CBSelect;
- QComboBox *CBTeam;
-
-private:
- QPushButton *BtnBack;
-};
-
-#endif
--- a/QTfrontend/pageconnecting.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QLabel>
-
-#include "pageconnecting.h"
-
-PageConnecting::PageConnecting(QWidget* parent) :
- AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
-
- QLabel * lblConnecting = new QLabel(this);
- lblConnecting->setText(tr("Connecting..."));
- pageLayout->addWidget(lblConnecting);
-
- QPushButton * pbCancel = new QPushButton(this);
- pbCancel->setText(tr("Cancel"));
- pageLayout->addWidget(pbCancel);
- connect(pbCancel, SIGNAL(clicked()), this, SIGNAL(cancelConnection()));
-}
--- a/QTfrontend/pageconnecting.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_CONNECTING_H
-#define PAGE_CONNECTING_H
-
-#include "AbstractPage.h"
-
-class PageConnecting : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageConnecting(QWidget* parent = 0);
-
-signals:
- void cancelConnection();
-};
-
-#endif
--- a/QTfrontend/pagedata.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QNetworkAccessManager>
-#include <QNetworkRequest>
-#include <QNetworkReply>
-#include <QFileInfo>
-#include <QFileDialog>
-#include <QDebug>
-#include <QProgressBar>
-#include <QBuffer>
-
-#include "pagedata.h"
-#include "databrowser.h"
-#include "hwconsts.h"
-
-#include "quazip.h"
-#include "quazipfile.h"
-
-PageDataDownload::PageDataDownload(QWidget* parent) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 1);
- pageLayout->setColumnStretch(2, 1);
-
-
- web = new DataBrowser(this);
- connect(web, SIGNAL(anchorClicked(QUrl)), this, SLOT(request(const QUrl&)));
- web->setOpenLinks(false);
- pageLayout->addWidget(web, 0, 0, 1, 3);
-
- progressBarsLayout = new QVBoxLayout();
- pageLayout->addLayout(progressBarsLayout, 1, 0, 1, 3);
-
- fetchList();
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 2, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
-
-void PageDataDownload::request(const QUrl &url)
-{
- QUrl finalUrl;
- if(url.host().isEmpty())
- finalUrl = QUrl("http://www.hedgewars.org" + url.path());
- else
- finalUrl = url;
-
- if(url.path().endsWith(".zip"))
- {
- qWarning() << "Download Request" << url.toString();
- QString fileName = QFileInfo(url.toString()).fileName();
-
- QNetworkRequest newRequest(finalUrl);
- newRequest.setAttribute(QNetworkRequest::User, fileName);
-
- QNetworkAccessManager *manager = new QNetworkAccessManager(this);
- QNetworkReply *reply = manager->get(newRequest);
- connect(reply, SIGNAL(finished()), this, SLOT(fileDownloaded()));
- connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(downloadProgress(qint64, qint64)));
-
- QProgressBar *progressBar = new QProgressBar(this);
- progressBarsLayout->addWidget(progressBar);
- progressBars.insert(reply, progressBar);
- } else
- {
- qWarning() << "Page Request" << url.toString();
-
- QNetworkRequest newRequest(finalUrl);
-
- QNetworkAccessManager *manager = new QNetworkAccessManager(this);
- QNetworkReply *reply = manager->get(newRequest);
- connect(reply, SIGNAL(finished()), this, SLOT(pageDownloaded()));
- }
-}
-
-
-void PageDataDownload::pageDownloaded()
-{
- QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
-
- if(reply)
- {
- QString html = QString::fromUtf8(reply->readAll());
- int begin = html.indexOf("<!-- BEGIN -->");
- int end = html.indexOf("<!-- END -->");
- if(begin != -1 && begin < end)
- {
- html.truncate(end);
- html.remove(0, begin);
- }
- web->setHtml(html);
- }
-}
-
-void PageDataDownload::fileDownloaded()
-{
- QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
-
- if(reply)
- {
- QByteArray fileContents = reply->readAll();
- QProgressBar *progressBar = progressBars.value(reply, 0);
-
- if(progressBar)
- {
- progressBars.remove(reply);
- progressBar->deleteLater();
- }
-
- extractDataPack(&fileContents);
- }
-}
-
-void PageDataDownload::downloadProgress(qint64 bytesRecieved, qint64 bytesTotal)
-{
- QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
-
- if(reply)
- {
- QProgressBar *progressBar = progressBars.value(reply, 0);
-
- if(progressBar)
- {
- progressBar->setValue(bytesRecieved);
- progressBar->setMaximum(bytesTotal);
- }
- }
-}
-
-void PageDataDownload::fetchList()
-{
- request(QUrl("http://hedgewars.org/content.html"));
-}
-
-bool PageDataDownload::extractDataPack(QByteArray * buf)
-{
- QBuffer buffer;
- buffer.setBuffer(buf);
-
- QuaZip zip;
- zip.setIoDevice(&buffer);
- if(!zip.open(QuaZip::mdUnzip))
- {
- qWarning("testRead(): zip.open(): %d", zip.getZipError());
- return false;
- }
-
- QuaZipFile file(&zip);
-
- QDir extractDir(*cfgdir);
- extractDir.cd("Data");
-
- for(bool more = zip.goToFirstFile(); more; more = zip.goToNextFile())
- {
- if(!file.open(QIODevice::ReadOnly))
- {
- qWarning("file.open(): %d", file.getZipError());
- return false;
- }
-
-
- QString fileName = file.getActualFileName();
- QString filePath = extractDir.filePath(fileName);
- if (fileName.endsWith("/"))
- {
- QFileInfo fi(filePath);
- QDir().mkpath(fi.filePath());
- } else
- {
- qDebug() << "Extracting" << filePath;
- QFile out(filePath);
- if(!out.open(QFile::WriteOnly))
- {
- qWarning() << "out.open():" << out.errorString();
- return false;
- }
-
- out.write(file.readAll());
-
- out.close();
-
- if(file.getZipError() != UNZ_OK) {
- qWarning("file.getFileName(): %d", file.getZipError());
- return false;
- }
-
- if(!file.atEnd()) {
- qWarning("read all but not EOF");
- return false;
- }
- }
-
- file.close();
-
- if(file.getZipError()!=UNZ_OK) {
- qWarning("file.close(): %d", file.getZipError());
- return false;
- }
- }
-
- zip.close();
-
- return true;
-}
--- a/QTfrontend/pagedata.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_DATA_H
-#define PAGE_DATA_H
-
-#include <QUrl>
-#include "AbstractPage.h"
-
-class DataBrowser;
-class QProgressBar;
-class QNetworkReply;
-class QVBoxLayout;
-
-class PageDataDownload : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageDataDownload(QWidget* parent = 0);
-
-public slots:
- void fetchList();
-
-private:
- QPushButton *BtnBack;
- DataBrowser *web;
- QHash<QNetworkReply*, QProgressBar *> progressBars;
- QVBoxLayout *progressBarsLayout;
-
- bool extractDataPack(QByteArray * buf);
-
-private slots:
- void request(const QUrl &url);
-
- void pageDownloaded();
- void fileDownloaded();
- void downloadProgress(qint64, qint64);
-};
-
-#endif
--- a/QTfrontend/pagedrawmap.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QFileDialog>
-
-#include "pagedrawmap.h"
-#include "drawmapwidget.h"
-
-PageDrawMap::PageDrawMap(QWidget* parent) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
-
- QPushButton * pbUndo = addButton(tr("Undo"), pageLayout, 0, 0);
- QPushButton * pbClear = addButton(tr("Clear"), pageLayout, 1, 0);
- QPushButton * pbLoad = addButton(tr("Load"), pageLayout, 2, 0);
- QPushButton * pbSave = addButton(tr("Save"), pageLayout, 3, 0);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 5, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- drawMapWidget = new DrawMapWidget(this);
- pageLayout->addWidget(drawMapWidget, 0, 1, 5, 1);
-
- connect(pbUndo, SIGNAL(clicked()), drawMapWidget, SLOT(undo()));
- connect(pbClear, SIGNAL(clicked()), drawMapWidget, SLOT(clear()));
- connect(pbLoad, SIGNAL(clicked()), this, SLOT(load()));
- connect(pbSave, SIGNAL(clicked()), this, SLOT(save()));
-}
-
-void PageDrawMap::load()
-{
- QString fileName = QFileDialog::getOpenFileName(NULL, tr("Load drawn map"), ".", tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)");
-
- if(!fileName.isEmpty())
- drawMapWidget->load(fileName);
-}
-
-void PageDrawMap::save()
-{
- QString fileName = QFileDialog::getSaveFileName(NULL, tr("Save drawn map"), ".", tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)");
-
- if(!fileName.isEmpty())
- drawMapWidget->save(fileName);
-}
--- a/QTfrontend/pagedrawmap.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_DRAWMAP_H
-#define PAGE_DRAWMAP_H
-
-#include "AbstractPage.h"
-
-class DrawMapWidget;
-
-class PageDrawMap : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageDrawMap(QWidget* parent = 0);
-
- DrawMapWidget * drawMapWidget;
-
-private:
- QPushButton * BtnBack;
-
-private slots:
- void load();
- void save();
-};
-
-#endif
-
--- a/QTfrontend/pageeditteam.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,386 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QComboBox>
-#include <QLabel>
-#include <QLineEdit>
-#include <QTabWidget>
-#include <QGroupBox>
-#include <QToolBox>
-
-#include "pageeditteam.h"
-#include "sdlkeys.h"
-#include "hwconsts.h"
-#include "SquareLabel.h"
-#include "hats.h"
-#include "HWApplication.h"
-
-PageEditTeam::PageEditTeam(QWidget* parent, SDLInteraction * sdli) :
- AbstractPage(parent)
-{
- mySdli = sdli;
- QGridLayout * pageLayout = new QGridLayout(this);
- QTabWidget * tbw = new QTabWidget(this);
- QWidget * page1 = new QWidget(this);
- QWidget * page2 = new QWidget(this);
- tbw->addTab(page1, tr("General"));
- tbw->addTab(page2, tr("Advanced"));
- pageLayout->addWidget(tbw, 0, 0, 1, 3);
- BtnTeamDiscard = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
- BtnTeamSave = addButton(":/res/Save.png", pageLayout, 1, 2, true);;
- BtnTeamSave->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
- BtnTeamDiscard->setFixedHeight(BtnTeamSave->height());
- BtnTeamDiscard->setStyleSheet("QPushButton{margin-top: 31px;}");
-
- QHBoxLayout * page1Layout = new QHBoxLayout(page1);
- page1Layout->setAlignment(Qt::AlignTop);
- QGridLayout * page2Layout = new QGridLayout(page2);
-
-// ====== Page 1 ======
- QVBoxLayout * vbox1 = new QVBoxLayout();
- QVBoxLayout * vbox2 = new QVBoxLayout();
- page1Layout->addLayout(vbox1);
- page1Layout->addLayout(vbox2);
-
- GBoxHedgehogs = new QGroupBox(this);
- GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
- GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
-
- signalMapper1 = new QSignalMapper(this);
- signalMapper2 = new QSignalMapper(this);
-
- connect(signalMapper1, SIGNAL(mapped(int)), this, SLOT(fixHHname(int)));
-
- HatsModel * hatsModel = new HatsModel(GBoxHedgehogs);
- for(int i = 0; i < 8; i++)
- {
- HHHats[i] = new QComboBox(GBoxHedgehogs);
- HHHats[i]->setModel(hatsModel);
- HHHats[i]->setIconSize(QSize(32, 37));
- //HHHats[i]->setSizeAdjustPolicy(QComboBox::AdjustToContents);
- //HHHats[i]->setModelColumn(1);
- //HHHats[i]->setMinimumWidth(132);
- GBHLayout->addWidget(HHHats[i], i, 0);
-
- HHNameEdit[i] = new QLineEdit(GBoxHedgehogs);
- HHNameEdit[i]->setMaxLength(64);
- HHNameEdit[i]->setMinimumWidth(120);
- GBHLayout->addWidget(HHNameEdit[i], i, 1);
-
- connect(HHNameEdit[i], SIGNAL(editingFinished()), signalMapper1, SLOT(map()));
- signalMapper1->setMapping(HHNameEdit[i], i);
-
- randButton[i] = addButton(":/res/dice.png", GBHLayout, i, 3, true);
-
- connect(randButton[i], SIGNAL(clicked()), signalMapper2, SLOT(map()));
- signalMapper2->setMapping(randButton[i], i);
- }
-
- randTeamButton = addButton(QPushButton::tr("Random Team"), GBHLayout, 9, false);
-
- vbox1->addWidget(GBoxHedgehogs);
-
-
- GBoxTeam = new QGroupBox(this);
- GBoxTeam->setTitle(QGroupBox::tr("Team Settings"));
- GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- QGridLayout * GBTLayout = new QGridLayout(GBoxTeam);
- QLabel * tmpLabel = new QLabel(GBoxTeam);
- tmpLabel->setText(QLabel::tr("Name"));
- GBTLayout->addWidget(tmpLabel, 0, 0);
- tmpLabel = new QLabel(GBoxTeam);
- tmpLabel->setText(QLabel::tr("Type"));
- GBTLayout->addWidget(tmpLabel, 1, 0);
- tmpLabel = new QLabel(GBoxTeam);
- tmpLabel->setText(QLabel::tr("Grave"));
- GBTLayout->addWidget(tmpLabel, 2, 0);
- tmpLabel = new QLabel(GBoxTeam);
- tmpLabel->setText(QLabel::tr("Flag"));
- GBTLayout->addWidget(tmpLabel, 3, 0);
- tmpLabel = new QLabel(GBoxTeam);
- tmpLabel->setText(QLabel::tr("Voice"));
- GBTLayout->addWidget(tmpLabel, 4, 0);
-
-
- TeamNameEdit = new QLineEdit(GBoxTeam);
- TeamNameEdit->setMaxLength(64);
- GBTLayout->addWidget(TeamNameEdit, 0, 1);
- vbox2->addWidget(GBoxTeam);
-
- CBTeamLvl = new QComboBox(GBoxTeam);
- CBTeamLvl->setIconSize(QSize(48, 48));
- CBTeamLvl->addItem(QIcon(":/res/botlevels/0.png"), QComboBox::tr("Human"));
- for(int i = 5; i > 0; i--)
- CBTeamLvl->addItem(
- QIcon(QString(":/res/botlevels/%1.png").arg(6 - i)),
- QString("%1 %2").arg(QComboBox::tr("Level")).arg(i)
- );
- GBTLayout->addWidget(CBTeamLvl, 1, 1);
-
- CBGrave = new QComboBox(GBoxTeam);
- CBGrave->setMaxCount(65535);
- CBGrave->setIconSize(QSize(32, 32));
- GBTLayout->addWidget(CBGrave, 2, 1);
-
- CBFlag = new QComboBox(GBoxTeam);
- CBFlag->setMaxCount(65535);
- CBFlag->setIconSize(QSize(22, 15));
- GBTLayout->addWidget(CBFlag, 3, 1);
-
- {
- QHBoxLayout * hbox = new QHBoxLayout();
- CBVoicepack = new QComboBox(GBoxTeam);
- {
- QDir tmpdir;
- QStringList list;
- tmpdir.cd(cfgdir->absolutePath());
- if (tmpdir.cd("Data/Sounds/voices"))
- {
- list = tmpdir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name);
- CBVoicepack->addItems(list);
- }
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Sounds/voices");
- QStringList tmplist = tmpdir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name);
- QStringList tmplist2;
- for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
- if (!list.contains(*it,Qt::CaseInsensitive)) tmplist2.append(*it);
-
- CBVoicepack->addItems(tmplist2);
- }
- hbox->addWidget(CBVoicepack, 100);
- BtnTestSound = addButton(":/res/PlaySound.png", hbox, 1, true);
- hbox->setStretchFactor(BtnTestSound, 1);
- connect(BtnTestSound, SIGNAL(clicked()), this, SLOT(testSound()));
- GBTLayout->addLayout(hbox, 4, 1);
- }
-
- GBoxFort = new QGroupBox(this);
- GBoxFort->setTitle(QGroupBox::tr("Fort"));
- QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
- CBFort = new QComboBox(GBoxFort);
- CBFort->setMaxCount(65535);
- GBFLayout->addWidget(CBFort, 0, 0);
- FortPreview = new SquareLabel(GBoxFort);
- FortPreview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- FortPreview->setMinimumSize(128, 128);
- FortPreview->setPixmap(QPixmap());
- // perhaps due to handling its own paintevents, SquareLabel doesn't play nice with the stars
- //FortPreview->setAttribute(Qt::WA_PaintOnScreen, true);
- GBFLayout->addWidget(FortPreview, 1, 0);
- vbox2->addWidget(GBoxFort);
-
- QDir tmpdir;
- QStringList userforts;
- tmpdir.cd(cfgdir->absolutePath());
- if (tmpdir.cd("Data/Forts"))
- {
- tmpdir.setFilter(QDir::Files);
- userforts = tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1");
- CBFort->addItems(userforts);
- }
-
- tmpdir.cd("../Graphics/Graves");
- QStringList userlist = tmpdir.entryList(QStringList("*.png"));
- for (QStringList::Iterator it = userlist.begin(); it != userlist.end(); ++it )
- {
- QPixmap pix(cfgdir->absolutePath() + "/Data/Graphics/Graves/" + *it);
- QIcon icon(pix.copy(0, 0, 32, 32));
- CBGrave->addItem(icon, QString(*it).replace(QRegExp("^(.*)\\.png"), "\\1"));
- }
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Forts");
- tmpdir.setFilter(QDir::Files);
-
- QStringList tmplist = tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1");
- QStringList dataforts;
- for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
- if (!userforts.contains(*it,Qt::CaseInsensitive)) dataforts.append(*it);
-
- CBFort->addItems(dataforts);
- connect(CBFort, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(CBFort_activated(const QString &)));
-
- tmpdir.cd("../Graphics/Graves");
- QStringList datalist = tmpdir.entryList(QStringList("*.png"));
- for (QStringList::Iterator it = datalist.begin(); it != datalist.end(); ++it )
- {
- if (userlist.contains(*it,Qt::CaseInsensitive)) continue;
- QPixmap pix(datadir->absolutePath() + "/Graphics/Graves/" + *it);
- QIcon icon(pix.copy(0, 0, 32, 32));
- CBGrave->addItem(icon, (*it).replace(QRegExp("^(.*)\\.png"), "\\1"));
- }
-
- // add the default flag
- CBFlag->addItem(QIcon(QPixmap(datadir->absolutePath() + "/Graphics/Flags/hedgewars.png").copy(0, 0, 22, 15)), "Hedgewars", "hedgewars");
- CBFlag->insertSeparator(CBFlag->count());
-
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data/Graphics/Flags");
- userlist = tmpdir.entryList(QStringList("*.png"));
-
- // add all country flags
- for (QStringList::Iterator it = userlist.begin(); it != userlist.end(); ++it )
- {
- QPixmap pix(cfgdir->absolutePath() + "/Data/Graphics/Flags/" + *it);
- QIcon icon(pix.copy(0, 0, 22, 15));
- if(it->compare("cpu.png") && it->compare("hedgewars.png") && (it->indexOf("cm_") == -1)) // skip cpu and hedgewars flags as well as all community flags
- {
- QString flag = QString(*it).replace(QRegExp("^(.*)\\.png"), "\\1");
- CBFlag->addItem(icon, QString(flag).replace("_", " "), flag);
- }
- }
-
- CBFlag->insertSeparator(CBFlag->count());
-
- // add all community flags
- for (QStringList::Iterator it = userlist.begin(); it != userlist.end(); ++it )
- {
- QPixmap pix(cfgdir->absolutePath() + "/Data/Graphics/Flags/" + *it);
- QIcon icon(pix.copy(0, 0, 22, 15));
- if(it->indexOf("cm_") > -1) // skip non community flags this time
- {
- QString flag = QString(*it).replace(QRegExp("^(.*)\\.png"), "\\1");
- CBFlag->addItem(icon, QString(flag).replace("cm_", QComboBox::tr("Community") + ": "), flag);
- }
- }
-
- CBFlag->insertSeparator(CBFlag->count());
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Graphics/Flags");
- datalist = tmpdir.entryList(QStringList("*.png"));
-
- // add all country flags
- for (QStringList::Iterator it = datalist.begin(); it != datalist.end(); ++it )
- {
- if (userlist.contains(*it,Qt::CaseInsensitive)) continue;
- QPixmap pix(datadir->absolutePath() + "/Graphics/Flags/" + *it);
- QIcon icon(pix.copy(0, 0, 22, 15));
- if(it->compare("cpu.png") && it->compare("hedgewars.png") && (it->indexOf("cm_") == -1)) // skip cpu and hedgewars flags as well as all community flags
- {
- QString flag = QString(*it).replace(QRegExp("^(.*)\\.png"), "\\1");
- CBFlag->addItem(icon, QString(flag).replace("_", " "), flag);
- }
- }
-
- CBFlag->insertSeparator(CBFlag->count());
-
- // add all community flags
- for (QStringList::Iterator it = datalist.begin(); it != datalist.end(); ++it )
- {
- if (userlist.contains(*it,Qt::CaseInsensitive)) continue;
- QPixmap pix(datadir->absolutePath() + "/Graphics/Flags/" + *it);
- QIcon icon(pix.copy(0, 0, 22, 15));
- if(it->indexOf("cm_") > -1) // skip non community flags this time
- {
- QString flag = (*it).replace(QRegExp("^(.*)\\.png"), "\\1");
- CBFlag->addItem(icon, QString(flag).replace("cm_", QComboBox::tr("Community") + ": "), flag);
- }
- }
-
- vbox1->addStretch();
- vbox2->addStretch();
-
-// ====== Page 2 ======
- GBoxBinds = new QGroupBox(this);
- GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
- QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
- BindsBox = new QToolBox(GBoxBinds);
- BindsBox->setLineWidth(0);
- GBBLayout->addWidget(BindsBox);
- page2Layout->addWidget(GBoxBinds, 0, 0);
-
- quint16 i = 0;
- quint16 num = 0;
- QWidget * curW = NULL;
- QGridLayout * pagelayout = NULL;
- QLabel* l = NULL;
- while (i < BINDS_NUMBER) {
- if(cbinds[i].category != NULL)
- {
- if(curW != NULL)
- {
- l = new QLabel(curW);
- l->setText("");
- pagelayout->addWidget(l, num++, 0, 1, 2);
- }
- curW = new QWidget(this);
- BindsBox->addItem(curW, HWApplication::translate("binds (categories)", cbinds[i].category));
- pagelayout = new QGridLayout(curW);
- num = 0;
- }
- if(cbinds[i].description != NULL)
- {
- l = new QLabel(curW);
- l->setText((num > 0 ? QString("\n") : QString("")) + HWApplication::translate("binds (descriptions)", cbinds[i].description));
- pagelayout->addWidget(l, num++, 0, 1, 2);
- }
-
- l = new QLabel(curW);
- l->setText(HWApplication::translate("binds", cbinds[i].name));
- l->setAlignment(Qt::AlignRight);
- pagelayout->addWidget(l, num, 0);
- CBBind[i] = new QComboBox(curW);
- for(int j = 0; sdlkeys[j][1][0] != '\0'; j++)
- CBBind[i]->addItem(HWApplication::translate("binds (keys)", sdlkeys[j][1]).contains(": ") ? HWApplication::translate("binds (keys)", sdlkeys[j][1]) : HWApplication::translate("binds (keys)", "Keyboard") + QString(": ") + HWApplication::translate("binds (keys)", sdlkeys[j][1]), sdlkeys[j][0]);
- pagelayout->addWidget(CBBind[i++], num++, 1);
- }
-}
-
-void PageEditTeam::fixHHname(int idx)
-{
- HHNameEdit[idx]->setText(HHNameEdit[idx]->text().trimmed());
-
- if (HHNameEdit[idx]->text().isEmpty())
- HHNameEdit[idx]->setText(QLineEdit::tr("hedgehog %1").arg(idx+1));
-}
-
-void PageEditTeam::CBFort_activated(const QString & fortname)
-{
- QFile tmp;
- tmp.setFileName(cfgdir->absolutePath() + "/Data/Forts/" + fortname + "L.png");
- if (!tmp.exists()) tmp.setFileName(datadir->absolutePath() + "/Forts/" + fortname + "L.png");
- QPixmap pix(QFileInfo(tmp).absoluteFilePath());
- FortPreview->setPixmap(pix);
-}
-
-void PageEditTeam::testSound()
-{
- Mix_Chunk *sound;
- QDir tmpdir;
- mySdli->SDLMusicInit();
-
- tmpdir.cd(cfgdir->absolutePath());
- if (!tmpdir.cd("Data/Sounds/voices/"+CBVoicepack->currentText()))
- {
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Sounds/voices");
- tmpdir.cd(CBVoicepack->currentText());
- }
-
- QStringList list = tmpdir.entryList(QStringList() << "Illgetyou.ogg" << "Incoming.ogg" << "Stupid.ogg" << "Coward.ogg" << "Firstblood.ogg", QDir::Files);
- if (list.size()) {
- sound = Mix_LoadWAV(QString(tmpdir.absolutePath() + "/" + list[rand() % list.size()]).toLocal8Bit().constData());
- Mix_PlayChannel(-1, sound, 0);
- }
-}
--- a/QTfrontend/pageeditteam.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_EDITTEAM_H
-#define PAGE_EDITTEAM_H
-
-#include "AbstractPage.h"
-#include "binds.h"
-#include "SDLs.h"
-
-class SquareLabel;
-
-class PageEditTeam : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageEditTeam(QWidget* parent, SDLInteraction * sdli);
- QSignalMapper* signalMapper1;
- QSignalMapper* signalMapper2;
- QGroupBox *GBoxHedgehogs;
- QGroupBox *GBoxTeam;
- QGroupBox *GBoxFort;
- QComboBox *CBFort;
- SquareLabel *FortPreview;
- QComboBox *CBGrave;
- QComboBox *CBFlag;
- QComboBox *CBTeamLvl;
- QComboBox *CBVoicepack;
- QGroupBox *GBoxBinds;
- QToolBox *BindsBox;
- QPushButton *BtnTeamDiscard;
- QPushButton *BtnTeamSave;
- QPushButton * BtnTestSound;
- QLineEdit * TeamNameEdit;
- QLineEdit * HHNameEdit[8];
- QComboBox * HHHats[8];
- QPushButton * randButton[8];
- QComboBox * CBBind[BINDS_NUMBER];
- QPushButton * randTeamButton;
-
-private:
- SDLInteraction * mySdli;
-
-public slots:
- void CBFort_activated(const QString & gravename);
-
-private slots:
- void testSound();
- void fixHHname(int idx);
-};
-
-#endif
-
--- a/QTfrontend/pagegamestats.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2010-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QLabel>
-#include <QGridLayout>
-#include <QGraphicsScene>
-#include <QGroupBox>
-#include <QSizePolicy>
-
-#include "pagegamestats.h"
-#include "team.h"
-
-FitGraphicsView::FitGraphicsView(QWidget* parent) : QGraphicsView(parent)
-{
-
-}
-
-void FitGraphicsView::resizeEvent(QResizeEvent * event)
-{
- Q_UNUSED(event);
-
- fitInView(sceneRect());
-}
-
-PageGameStats::PageGameStats(QWidget* parent) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setSpacing(20);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 1);
- pageLayout->setContentsMargins(7, 7, 7, 0);
-
- BtnSave = addButton(":/res/Save.png", pageLayout, 3, 2, true);
- BtnSave->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
- connect(BtnSave, SIGNAL(clicked()), this, SIGNAL(saveDemoRequested()));
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 3, 0, true);
- BtnBack->setFixedHeight(BtnSave->height());
- BtnBack->setFixedWidth(BtnBack->width()+2);
- BtnBack->setStyleSheet("QPushButton{margin: 22px 0 9px 2px;}");
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- QGroupBox * gb = new QGroupBox(this);
- QVBoxLayout * gbl = new QVBoxLayout;
-
- // details
- labelGameStats = new QLabel(this);
- QLabel * l = new QLabel(this);
- l->setTextFormat(Qt::RichText);
- l->setText("<h1><img src=\":/res/StatsD.png\"> " + PageGameStats::tr("Details") + "</h1>");
- l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- labelGameStats->setTextFormat(Qt::RichText);
- labelGameStats->setAlignment(Qt::AlignTop);
- labelGameStats->setWordWrap(true);
- gbl->addWidget(l);
- gbl->addWidget(labelGameStats);
- gb->setLayout(gbl);
- pageLayout->addWidget(gb, 1, 1, 1, 2);
-
- // graph
- graphic = new FitGraphicsView(gb);
- l = new QLabel(this);
- l->setTextFormat(Qt::RichText);
- l->setText("<br><h1><img src=\":/res/StatsH.png\"> " + PageGameStats::tr("Health graph") + "</h1>");
- l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- gbl->addWidget(l);
- gbl->addWidget(graphic);
- graphic->scale(1.0, -1.0);
- graphic->setBackgroundBrush(QBrush(Qt::black));
-
- labelGameWin = new QLabel(this);
- labelGameWin->setTextFormat(Qt::RichText);
- pageLayout->addWidget(labelGameWin, 0, 0, 1, 2);
-
- // ranking box
- gb = new QGroupBox(this);
- gbl = new QVBoxLayout;
- labelGameRank = new QLabel(gb);
- l = new QLabel(this);
- l->setTextFormat(Qt::RichText);
- l->setText("<h1><img src=\":/res/StatsR.png\"> " + PageGameStats::tr("Ranking") + "</h1>");
- l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- gbl->addWidget(l);
- gbl->addWidget(labelGameRank);
- gb->setLayout(gbl);
-
- labelGameRank->setTextFormat(Qt::RichText);
- labelGameRank->setAlignment(Qt::AlignTop);
- pageLayout->addWidget(gb, 1, 0);
-}
-
-void PageGameStats::AddStatText(const QString & msg)
-{
- labelGameStats->setText(labelGameStats->text() + msg);
-}
-
-void PageGameStats::clear()
-{
- labelGameStats->setText("");
- healthPoints.clear();
- labelGameRank->setText("");
- playerPosition = 0;
- lastColor = 0;
-}
-
-void PageGameStats::renderStats()
-{
- QGraphicsScene * scene = new QGraphicsScene();
-
- QMap<quint32, QVector<quint32> >::const_iterator i = healthPoints.constBegin();
- while (i != healthPoints.constEnd())
- {
- quint32 c = i.key();
- QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
- QVector<quint32> hps = i.value();
-
- QPainterPath path;
- if (hps.size())
- path.moveTo(0, hps[0]);
-
- for(int t = 1; t < hps.size(); ++t)
- path.lineTo(t, hps[t]);
-
- scene->addPath(path, QPen(c));
- ++i;
- }
-
- graphic->setScene(scene);
- graphic->fitInView(graphic->sceneRect());
-}
-
-void PageGameStats::GameStats(char type, const QString & info)
-{
- switch(type) {
- case 'r' : {
- labelGameWin->setText(QString("<h1 align=\"center\">%1</h1>").arg(info));
- break;
- }
- case 'D' : {
- int i = info.indexOf(' ');
- QString message = "<p><img src=\":/res/StatsBestShot.png\"> " + PageGameStats::tr("The best shot award was won by <b>%1</b> with <b>%2</b> pts.").arg(info.mid(i + 1), info.left(i)) + "</p>";
- AddStatText(message);
- break;
- }
- case 'k' : {
- int i = info.indexOf(' ');
- int num = info.left(i).toInt();
- QString message = "<p><img src=\":/res/StatsBestKiller.png\"> " + PageGameStats::tr("The best killer is <b>%1</b> with <b>%2</b> kills in a turn.", "", num).arg(info.mid(i + 1), info.left(i)) + "</p>";
- AddStatText(message);
- break;
- }
- case 'K' : {
- int num = info.toInt();
- QString message = "<p><img src=\":/res/StatsHedgehogsKilled.png\"> " + PageGameStats::tr("A total of <b>%1</b> hedgehog(s) were killed during this round.", "", num).arg(num) + "</p>";
- AddStatText(message);
- break;
- }
- case 'H' : {
- int i = info.indexOf(' ');
- quint32 clan = info.left(i).toInt();
- quint32 hp = info.mid(i + 1).toUInt();
- healthPoints[clan].append(hp);
- break;
- }
- case 'T': { // local team stats
- //AddStatText("<p>local team: " + info + "</p>");
- QStringList infol = info.split(":");
- HWTeam team(infol[0]);
- if(team.fileExists()) // do some better test to avoid influence from scripted/predefined teams?
- {
- team.loadFromFile();
- team.incRounds();
- if(infol[1].toInt() > 0) // might require some better test for winning condition (or changed flag) ... WIP!
- team.incWins(); // should draws count as wins?
- //team.SaveToFile(); // don't save yet
- }
- break;
- }
-
- case 'P' : {
- int i = info.indexOf(' ');
- playerPosition++;
- QString color = info.left(i);
- quint32 c = color.toInt();
- QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
-
- QString playerinfo = info.mid(i + 1);
-
- i = playerinfo.indexOf(' ');
-
- int kills = playerinfo.left(i).toInt();
- QString playername = playerinfo.mid(i + 1);
- QString image;
-
- if (lastColor == c) playerPosition--;
- lastColor = c;
-
- switch (playerPosition)
- {
- case 1:
- image = "<img src=\":/res/StatsMedal1.png\">";
- break;
- case 2:
- image = "<img src=\":/res/StatsMedal2.png\">";
- break;
- case 3:
- image = "<img src=\":/res/StatsMedal3.png\">";
- break;
- default:
- image = "<img src=\":/res/StatsMedal4.png\">";
- break;
- }
-
- QString message;
- QString killstring = PageGameStats::tr("(%1 kill)", "", kills).arg(kills);
-
- message = QString("<p><h2>%1 %2. <font color=\"%4\">%3</font> ").arg(image, QString::number(playerPosition), playername, clanColor.name()) + killstring + "</h2></p>";
-
- labelGameRank->setText(labelGameRank->text() + message);
- break;
- }
- case 's' : {
- int i = info.indexOf(' ');
- int num = info.left(i).toInt();
- QString message = "<p><img src=\":/res/StatsMostSelfDamage.png\"> " + PageGameStats::tr("<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
- AddStatText(message);
- break;
- }
- case 'S' : {
- int i = info.indexOf(' ');
- int num = info.left(i).toInt();
- QString message = "<p><img src=\":/res/StatsSelfKilled.png\"> " + PageGameStats::tr("<b>%1</b> killed <b>%2</b> of his own hedgehogs.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
- AddStatText(message);
- break;
- }
- case 'B' : {
- int i = info.indexOf(' ');
- int num = info.left(i).toInt();
- QString message = "<p><img src=\":/res/StatsSkipped.png\"> " + PageGameStats::tr("<b>%1</b> was scared and skipped turn <b>%2</b> times.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
- AddStatText(message);
- break;
- }
-
- }
-}
--- a/QTfrontend/pagegamestats.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2010-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef STATSPAGE_H
-#define STATSPAGE_H
-
-#include <QVector>
-#include <QMap>
-#include <QGraphicsView>
-
-#include "AbstractPage.h"
-
-class FitGraphicsView : public QGraphicsView
-{
- Q_OBJECT
-
-public:
- FitGraphicsView(QWidget* parent = 0);
-
-protected:
- void resizeEvent(QResizeEvent * event);
-};
-
-class PageGameStats : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageGameStats(QWidget* parent = 0);
-
- QPushButton *BtnSave;
- QLabel *labelGameStats;
- QLabel *labelGameWin;
- QLabel *labelGameRank;
- FitGraphicsView * graphic;
-
-public slots:
- void GameStats(char type, const QString & info);
- void clear();
- void renderStats();
-
-signals:
- void saveDemoRequested();
-
-private:
- void AddStatText(const QString & msg);
-
- QMap<quint32, QVector<quint32> > healthPoints;
- unsigned int playerPosition;
- quint32 lastColor;
-
- QPushButton *BtnBack;
-};
-
-#endif // STATSPAGE_H
--- a/QTfrontend/pageinfo.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-
-#include "pageinfo.h"
-#include "about.h"
-
-PageInfo::PageInfo(QWidget* parent) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 1);
- pageLayout->setColumnStretch(2, 1);
-
- BtnSnapshots = addButton(":/res/Star.png", pageLayout, 1, 2, true);
-
- about = new About(this);
- pageLayout->addWidget(about, 0, 0, 1, 3);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
--- a/QTfrontend/pageinfo.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_INFO_H
-#define PAGE_INFO_H
-
-#include "AbstractPage.h"
-
-class About;
-
-class PageInfo : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageInfo(QWidget* parent = 0);
-
- QPushButton *BtnSnapshots;
- About *about;
-
-private:
- QPushButton *BtnBack;
-};
-
-#endif
-
--- a/QTfrontend/pageingame.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QLabel>
-
-#include "pageingame.h"
-
-PageInGame::PageInGame(QWidget* parent) :
- AbstractPage(parent)
-{
- QLabel * label = new QLabel(this);
- label->setText("In game...");
-}
-
--- a/QTfrontend/pageingame.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_INGAME_H
-#define PAGE_INGAME_H
-
-#include "AbstractPage.h"
-
-class PageInGame : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageInGame(QWidget* parent = 0);
-};
-
-#endif
-
--- a/QTfrontend/pagemain.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QLabel>
-#include <QTime>
-
-#include "pagemain.h"
-#include "hwconsts.h"
-#include "hwform.h"
-
-PageMain::PageMain(QWidget* parent) :
- AbstractPage(parent)
-{
- if(frontendEffects) setAttribute(Qt::WA_NoSystemBackground, true);
- QGridLayout * pageLayout = new QGridLayout(this);
- //pageLayout->setColumnStretch(0, 1);
- //pageLayout->setColumnStretch(1, 2);
- //pageLayout->setColumnStretch(2, 1);
-
- //QPushButton* btnLogo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
- //pageLayout->setAlignment(btnLogo, Qt::AlignHCenter);
- pageLayout->setRowStretch(0, 1);
- pageLayout->setRowStretch(1, 1);
- pageLayout->setRowStretch(2, 0);
- pageLayout->setRowStretch(3, 1);
- pageLayout->setRowStretch(4, 1);
- pageLayout->setRowStretch(5, 1);
-
- BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
- BtnSinglePlayer->setToolTip(tr("Local Game (Play a game on a single computer)"));
- pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
-
- BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
- BtnNet->setToolTip(tr("Network Game (Play a game across a network)"));
- pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
-
- BtnDataDownload = addButton(tr("Downloadable Content"), pageLayout, 4, 0, 1, 4, false);
- pageLayout->setAlignment(BtnDataDownload, Qt::AlignHCenter);
-
- mainNote = new QLabel(this);
- mainNote->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
- mainNote->setWordWrap(true);
- mainNote->setOpenExternalLinks(true);
-
- if(!isDevBuild)
- {
- QStringList Tips;
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- 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");
- Tips << tr("Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.", "Tips");
- 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");
- Tips << tr("Connect one or more gamepads before starting the game to be able to assign their controls to your teams.", "Tips");
- 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>");
- Tips << tr("While playing you should give yourself a short break at least once an hour.", "Tips");
- 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");
- Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.", "Tips");
- 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");
- Tips << tr("Especially while playing online be polite and always remember there might be some minors playing with or against you as well!", "Tips");
- Tips << tr("Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!", "Tips");
- 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");
- Tips << tr("You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!", "Tips");
- 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");
- Tips << tr("No hedgehogs were harmed in making this game.", "Tips");
- Tips << tr("There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.", "Tips");
- Tips << tr("Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.", "Tips");
- 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");
- 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");
- Tips << tr("The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.", "Tips");
- 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");
- 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");
- Tips << tr("Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.", "Tips");
- Tips << tr("The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.", "Tips");
- Tips << tr("If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.", "Tips");
- Tips << tr("The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.", "Tips");
- Tips << tr("The Flame Thrower is a weapon but it can be used for tunnel digging as well.", "Tips");
- Tips << tr("Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.", "Tips");
- Tips << tr("Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.", "Tips");
- 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>");
- 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");
- Tips << tr("Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!", "Tips");
- // The following tip will require links to app store entries first.
- //Tips << tr("Want to play Hedgewars any time? Grab the Mobile version for %1 and %2.", "Tips").arg("").arg("");
- // the ios version is located here: http://itunes.apple.com/us/app/hedgewars/id391234866
- Tips << tr("Keep your video card drivers up to date to avoid issues playing the game.", "Tips");
- 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");
-#ifdef _WIN32
- 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");
-#elif defined __APPLE__
- 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");
-#else
- 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");
-#endif
- mainNote->setText(QLabel::tr("Tip: ") + Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()]);
- }
- else
- 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!"));
-
- pageLayout->addWidget(mainNote, 5, 1, 1, 2);
-
- BtnSetup = addButton(":/res/Settings.png", pageLayout, 5, 3, true);
-
- //BtnInfo = addButton(":/res/About.png", pageLayout, 3, 1, 1, 2, true);
- BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
- BtnInfo->setStyleSheet("border: transparent;background: transparent;");
- pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
- //pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
-
- BtnExit = addButton(":/res/Exit.png", pageLayout, 5, 0, 1, 1, true);
- BtnExit->setFixedHeight(BtnSetup->height());
- BtnExit->setStyleSheet("QPushButton{margin-top: 2px;}");
-}
--- a/QTfrontend/pagemain.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_MAIN_H
-#define PAGE_MAIN_H
-
-#include "AbstractPage.h"
-
-class PageMain : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageMain(QWidget* parent = 0);
-
- QPushButton *BtnSinglePlayer;
- QPushButton *BtnNet;
- QPushButton *BtnSetup;
- QPushButton *BtnInfo;
- QPushButton *BtnExit;
- QPushButton *BtnDataDownload;
- QLabel *mainNote;
-};
-
-#endif
-
--- a/QTfrontend/pagemultiplayer.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-
-#include "pagemultiplayer.h"
-#include "gamecfgwidget.h"
-#include "teamselect.h"
-
-PageMultiplayer::PageMultiplayer(QWidget* parent) :
- AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
-
- gameCFG = new GameCFGWidget(this);
- pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
-
- QPushButton * btnSetup = new QPushButton(this);
- btnSetup->setText(QPushButton::tr("Setup"));
- connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked()));
- pageLayout->addWidget(btnSetup, 1, 0, 1, 2);
-
- pageLayout->setRowStretch(2, 1);
-
- teamsSelect = new TeamSelWidget(this);
- pageLayout->addWidget(teamsSelect, 0, 2, 3, 2);
-
- BtnStartMPGame = addButton(tr("Start"), pageLayout, 3, 3);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 3, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
--- a/QTfrontend/pagemultiplayer.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_MULTIPLAYER_H
-#define PAGE_MULTIPLAYER_H
-
-#include "AbstractPage.h"
-
-class GameCFGWidget;
-class TeamSelWidget;
-
-class PageMultiplayer : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageMultiplayer(QWidget* parent = 0);
-
- GameCFGWidget *gameCFG;
- TeamSelWidget *teamsSelect;
- QPushButton *BtnStartMPGame;
-
-private:
- QPushButton *BtnBack;
-
-signals:
- void SetupClicked();
-};
-
-#endif
-
-
--- a/QTfrontend/pagenet.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QGroupBox>
-#include <QTableView>
-#include <QMessageBox>
-#include <QHeaderView>
-
-#include "pagenet.h"
-#include "hwconsts.h"
-#include "netudpwidget.h"
-
-PageNet::PageNet(QWidget* parent) : AbstractPage(parent)
-{
- QFont * font14 = new QFont("MS Shell Dlg", 14);
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 1);
- pageLayout->setColumnStretch(2, 1);
-
- BtnNetSvrStart = new QPushButton(this);
- BtnNetSvrStart->setFont(*font14);
- BtnNetSvrStart->setText(QPushButton::tr("Start server"));
- BtnNetSvrStart->setVisible(haveServer);
- pageLayout->addWidget(BtnNetSvrStart, 4, 2);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- ConnGroupBox = new QGroupBox(this);
- ConnGroupBox->setTitle(QGroupBox::tr("Net game"));
- pageLayout->addWidget(ConnGroupBox, 2, 0, 1, 3);
- GBClayout = new QGridLayout(ConnGroupBox);
- GBClayout->setColumnStretch(0, 1);
- GBClayout->setColumnStretch(1, 1);
- GBClayout->setColumnStretch(2, 1);
-
- BtnNetConnect = new QPushButton(ConnGroupBox);
- BtnNetConnect->setFont(*font14);
- BtnNetConnect->setText(QPushButton::tr("Connect"));
- GBClayout->addWidget(BtnNetConnect, 2, 2);
-
- tvServersList = new QTableView(ConnGroupBox);
- tvServersList->setSelectionBehavior(QAbstractItemView::SelectRows);
- GBClayout->addWidget(tvServersList, 1, 0, 1, 3);
-
- BtnUpdateSList = new QPushButton(ConnGroupBox);
- BtnUpdateSList->setFont(*font14);
- BtnUpdateSList->setText(QPushButton::tr("Update"));
- GBClayout->addWidget(BtnUpdateSList, 2, 0);
-
- BtnSpecifyServer = new QPushButton(ConnGroupBox);
- BtnSpecifyServer->setFont(*font14);
- BtnSpecifyServer->setText(QPushButton::tr("Specify"));
- GBClayout->addWidget(BtnSpecifyServer, 2, 1);
-
- connect(BtnNetConnect, SIGNAL(clicked()), this, SLOT(slotConnect()));
-}
-
-void PageNet::updateServersList()
-{
- tvServersList->setModel(new HWNetUdpModel(tvServersList));
-
- tvServersList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
-
- static_cast<HWNetServersModel *>(tvServersList->model())->updateList();
-
- connect(BtnUpdateSList, SIGNAL(clicked()), static_cast<HWNetServersModel *>(tvServersList->model()), SLOT(updateList()));
- connect(tvServersList, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotConnect()));
-}
-
-void PageNet::slotConnect()
-{
- HWNetServersModel * model = static_cast<HWNetServersModel *>(tvServersList->model());
- QModelIndex mi = tvServersList->currentIndex();
- if(!mi.isValid())
- {
- QMessageBox::information(this, tr("Error"), tr("Please select server from the list above"));
- return;
- }
- QString host = model->index(mi.row(), 1).data().toString();
- quint16 port = model->index(mi.row(), 2).data().toUInt();
-
- emit connectClicked(host, port);
-}
--- a/QTfrontend/pagenet.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_NET_H
-#define PAGE_NET_H
-
-#include "AbstractPage.h"
-
-class PageNet : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageNet(QWidget* parent = 0);
-
- QPushButton* BtnUpdateSList;
- QTableView * tvServersList;
- QPushButton * BtnNetConnect;
- QPushButton * BtnNetSvrStart;
- QPushButton * BtnSpecifyServer;
-
-private:
- QGroupBox * ConnGroupBox;
- QGridLayout * GBClayout;
- QPushButton * BtnBack;
-
-private slots:
- void slotConnect();
-
-public slots:
- void updateServersList();
-
-signals:
- void connectClicked(const QString & host, quint16 port);
-};
-
-#endif
-
--- a/QTfrontend/pagenetgame.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QAction>
-#include <QMenu>
-#include <QMessageBox>
-
-#include "pagenetgame.h"
-#include "gamecfgwidget.h"
-#include "teamselect.h"
-#include "chatwidget.h"
-
-PageNetGame::PageNetGame(QWidget* parent, QSettings * gameSettings, SDLInteraction * sdli) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setSizeConstraint(QLayout::SetMinimumSize);
- //pageLayout->setSpacing(1);
- pageLayout->setColumnStretch(0, 50);
- pageLayout->setColumnStretch(1, 50);
-
- // chatwidget
- pChatWidget = new HWChatWidget(this, gameSettings, sdli, true);
- pChatWidget->setShowReady(true); // show status bulbs by default
- pChatWidget->setShowFollow(false); // don't show follow in nicks' context menus
- pageLayout->addWidget(pChatWidget, 2, 0, 1, 2);
- pageLayout->setRowStretch(1, 100);
- pageLayout->setRowStretch(2, 100);
-
- pGameCFG = new GameCFGWidget(this);
- pageLayout->addWidget(pGameCFG, 0, 0);
-
- QPushButton * btnSetup = new QPushButton(this);
- btnSetup->setText(QPushButton::tr("Setup"));
- connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked()));
- pageLayout->addWidget(btnSetup, 1, 0);
-
- pNetTeamsWidget = new TeamSelWidget(this);
- pNetTeamsWidget->setAcceptOuter(true);
- pageLayout->addWidget(pNetTeamsWidget, 0, 1, 2, 1);
-
-
- QHBoxLayout * bottomLayout = new QHBoxLayout;
- pageLayout->addLayout(bottomLayout, 4, 0, 1, 2);
-
-
- BtnBack = addButton(":/res/Exit.png", bottomLayout, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- leRoomName = new QLineEdit(this);
- leRoomName->setMaxLength(60);
- leRoomName->setMinimumWidth(200);
- leRoomName->setMaximumWidth(400);
- bottomLayout->addWidget(leRoomName, 8,0);
- BtnUpdate = addButton(QAction::tr("Update"), bottomLayout, 1, false);
-
- BtnGo = new QPushButton(this);
- BtnGo->setToolTip(QPushButton::tr("Ready"));
- BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
- BtnGo->setIconSize(QSize(25, 34));
- BtnGo->setMinimumWidth(50);
- BtnGo->setMinimumHeight(50);
- bottomLayout->addWidget(BtnGo, 4);
-
-
- BtnMaster = addButton(tr("Control"), bottomLayout, 2);
- QMenu * menu = new QMenu(BtnMaster);
- restrictJoins = new QAction(QAction::tr("Restrict Joins"), menu);
- restrictJoins->setCheckable(true);
- restrictTeamAdds = new QAction(QAction::tr("Restrict Team Additions"), menu);
- restrictTeamAdds->setCheckable(true);
- //menu->addAction(startGame);
- menu->addAction(restrictJoins);
- menu->addAction(restrictTeamAdds);
-
- BtnMaster->setMenu(menu);
-
- BtnStart = addButton(QAction::tr("Start"), bottomLayout, 3);
-
- bottomLayout->insertStretch(3, 100);
-
- connect(BtnUpdate, SIGNAL(clicked()), this, SLOT(onUpdateClick()));
-}
-
-void PageNetGame::setReadyStatus(bool isReady)
-{
- if(isReady)
- BtnGo->setIcon(QIcon(":/res/lightbulb_on.png"));
- else
- BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
-}
-
-void PageNetGame::onUpdateClick()
-{
- if (leRoomName->text().size())
- emit askForUpdateRoomName(leRoomName->text());
- else
- QMessageBox::critical(this,
- tr("Error"),
- tr("Please enter room name"),
- tr("OK"));
-}
-
-void PageNetGame::setMasterMode(bool isMaster)
-{
- BtnMaster->setVisible(isMaster);
- BtnStart->setVisible(isMaster);
- BtnUpdate->setVisible(isMaster);
- leRoomName->setVisible(isMaster);
-}
--- a/QTfrontend/pagenetgame.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_NETGAME_H
-#define PAGE_NETGAME_H
-
-#include "AbstractPage.h"
-#include "SDLs.h"
-
-class HWChatWidget;
-class TeamSelWidget;
-class GameCFGWidget;
-
-class PageNetGame : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageNetGame(QWidget* parent, QSettings * config, SDLInteraction * sdli);
-
- QPushButton *BtnGo;
- QPushButton *BtnMaster;
- QPushButton *BtnStart;
- QPushButton *BtnUpdate;
-
- QLineEdit * leRoomName;
-
- QAction * restrictJoins;
- QAction * restrictTeamAdds;
-
- HWChatWidget* pChatWidget;
-
- TeamSelWidget* pNetTeamsWidget;
- GameCFGWidget* pGameCFG;
-
-private:
- QPushButton *BtnBack;
-
-public slots:
- void setReadyStatus(bool isReady);
- void onUpdateClick();
- void setMasterMode(bool isMaster);
-
-signals:
- void SetupClicked();
- void askForUpdateRoomName(const QString &);
-};
-
-#endif
--- a/QTfrontend/pagenetserver.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QGroupBox>
-#include <QLabel>
-#include <QLineEdit>
-#include <QSpinBox>
-
-#include "pagenetserver.h"
-
-PageNetServer::PageNetServer(QWidget* parent) : AbstractPage(parent)
-{
- QFont * font14 = new QFont("MS Shell Dlg", 14);
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 1);
- pageLayout->setColumnStretch(2, 1);
-
- pageLayout->setRowStretch(0, 1);
- pageLayout->setRowStretch(1, 0);
-
-
- BtnBack =addButton(":/res/Exit.png", pageLayout, 1, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- BtnStart = new QPushButton(this);
- BtnStart->setFont(*font14);
- BtnStart->setText(QPushButton::tr("Start"));
- pageLayout->addWidget(BtnStart, 1, 2);
-
- QWidget * wg = new QWidget(this);
- pageLayout->addWidget(wg, 0, 0, 1, 3);
-
- QGridLayout * wgLayout = new QGridLayout(wg);
- wgLayout->setColumnStretch(0, 1);
- wgLayout->setColumnStretch(1, 3);
- wgLayout->setColumnStretch(2, 1);
-
- wgLayout->setRowStretch(0, 0);
- wgLayout->setRowStretch(1, 1);
-
- QGroupBox * gb = new QGroupBox(wg);
- wgLayout->addWidget(gb, 0, 1);
-
- QGridLayout * gbLayout = new QGridLayout(gb);
-
- labelSD = new QLabel(gb);
- labelSD->setText(QLabel::tr("Server name:"));
- gbLayout->addWidget(labelSD, 0, 0);
-
- leServerDescr = new QLineEdit(gb);
- gbLayout->addWidget(leServerDescr, 0, 1);
-
- labelPort = new QLabel(gb);
- labelPort->setText(QLabel::tr("Server port:"));
- gbLayout->addWidget(labelPort, 1, 0);
-
- sbPort = new QSpinBox(gb);
- sbPort->setMinimum(0);
- sbPort->setMaximum(65535);
- gbLayout->addWidget(sbPort, 1, 1);
-
- BtnDefault = new QPushButton(gb);
- BtnDefault->setText(QPushButton::tr("default"));
- gbLayout->addWidget(BtnDefault, 1, 2);
-
- connect(BtnDefault, SIGNAL(clicked()), this, SLOT(setDefaultPort()));
-}
-
-void PageNetServer::setDefaultPort()
-{
- sbPort->setValue(46631);
-}
--- a/QTfrontend/pagenetserver.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_NETSERVER_H
-#define PAGE_NETSERVER_H
-
-#include "AbstractPage.h"
-
-class PageNetServer : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageNetServer(QWidget* parent = 0);
-
- QPushButton *BtnStart;
- QPushButton *BtnDefault;
- QLabel *labelSD;
- QLineEdit *leServerDescr;
- QLabel *labelPort;
- QSpinBox *sbPort;
-
-private:
- QPushButton *BtnBack;
-
-private slots:
- void setDefaultPort();
-};
-
-#endif
--- a/QTfrontend/pagenettype.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-
-#include "pagenettype.h"
-
-PageNetType::PageNetType(QWidget* parent) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setRowStretch(0, 10);
- pageLayout->setRowStretch(3, 10);
-
- pageLayout->setColumnStretch(1, 10);
- pageLayout->setColumnStretch(2, 20);
- pageLayout->setColumnStretch(3, 10);
-
- BtnLAN = addButton(tr("LAN game"), pageLayout, 1, 2);
- BtnOfficialServer = addButton(tr("Official server"), pageLayout, 2, 2);
-
- // hack: temporary deactivated - requires server modifications that aren't backward compatible (yet)
- //BtnOfficialServer->setEnabled(false);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
--- a/QTfrontend/pagenettype.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_NETTYPE_H
-#define PAGE_NETTYPE_H
-
-#include "AbstractPage.h"
-
-class PageNetType : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageNetType(QWidget* parent = 0);
-
- QPushButton * BtnLAN;
- QPushButton * BtnOfficialServer;
-
-private:
- QPushButton * BtnBack;
-};
-
-#endif
--- a/QTfrontend/pageoptions.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,459 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QGroupBox>
-#include <QComboBox>
-#include <QCheckBox>
-#include <QLabel>
-#include <QLineEdit>
-#include <QSpinBox>
-#include <QTextBrowser>
-#include <QTableWidget>
-#include <QSlider>
-
-#include "pageoptions.h"
-#include "hwconsts.h"
-#include "fpsedit.h"
-#include "igbox.h"
-
-PageOptions::PageOptions(QWidget* parent) :
- AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 100);
- pageLayout->setColumnStretch(1, 100);
- pageLayout->setColumnStretch(2, 100);
- pageLayout->setRowStretch(0, 0);
- //pageLayout->setRowStretch(1, 100);
- pageLayout->setRowStretch(2, 0);
- pageLayout->setContentsMargins(7, 7, 7, 0);
- pageLayout->setSpacing(0);
-
-
- QGroupBox * gbTwoBoxes = new QGroupBox(this);
- pageLayout->addWidget(gbTwoBoxes, 0, 0, 1, 3);
- QGridLayout * gbTBLayout = new QGridLayout(gbTwoBoxes);
- gbTBLayout->setMargin(0);
- gbTBLayout->setSpacing(0);
- gbTBLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
-
- QPixmap pmNew(":/res/new.png");
- QPixmap pmEdit(":/res/edit.png");
- QPixmap pmDelete(":/res/delete.png");
-
- {
- teamsBox = new IconedGroupBox(this);
- //teamsBox->setContentTopPadding(0);
- //teamsBox->setAttribute(Qt::WA_PaintOnScreen, true);
- teamsBox->setIcon(QIcon(":/res/teamicon.png"));
- teamsBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- teamsBox->setTitle(QGroupBox::tr("Teams"));
-
- QGridLayout * GBTlayout = new QGridLayout(teamsBox);
-
- CBTeamName = new QComboBox(teamsBox);
- GBTlayout->addWidget(CBTeamName, 0, 0);
-
- BtnNewTeam = new QPushButton(teamsBox);
- BtnNewTeam->setToolTip(tr("New team"));
- BtnNewTeam->setIconSize(pmNew.size());
- BtnNewTeam->setIcon(pmNew);
- BtnNewTeam->setMaximumWidth(pmNew.width() + 6);
- GBTlayout->addWidget(BtnNewTeam, 0, 1);
-
- BtnEditTeam = new QPushButton(teamsBox);
- BtnEditTeam->setToolTip(tr("Edit team"));
- BtnEditTeam->setIconSize(pmEdit.size());
- BtnEditTeam->setIcon(pmEdit);
- BtnEditTeam->setMaximumWidth(pmEdit.width() + 6);
- GBTlayout->addWidget(BtnEditTeam, 0, 2);
-
- BtnDeleteTeam = new QPushButton(teamsBox);
- BtnDeleteTeam->setToolTip(tr("Delete team"));
- BtnDeleteTeam->setIconSize(pmDelete.size());
- BtnDeleteTeam->setIcon(pmDelete);
- BtnDeleteTeam->setMaximumWidth(pmDelete.width() + 6);
- GBTlayout->addWidget(BtnDeleteTeam, 0, 3);
-
- LblNoEditTeam = new QLabel(teamsBox);
- LblNoEditTeam->setText(tr("You can't edit teams from team selection. Go back to main menu to add, edit or delete teams."));
- LblNoEditTeam->setWordWrap(true);
- LblNoEditTeam->setVisible(false);
- GBTlayout->addWidget(LblNoEditTeam, 0, 0);
-
- gbTBLayout->addWidget(teamsBox, 0, 0);
- }
-
- {
- IconedGroupBox* groupWeapons = new IconedGroupBox(this);
-
- //groupWeapons->setContentTopPadding(0);
- //groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- groupWeapons->setIcon(QIcon(":/res/weaponsicon.png"));
- groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- groupWeapons->setTitle(QGroupBox::tr("Schemes and Weapons"));
- QGridLayout * WeaponsLayout = new QGridLayout(groupWeapons);
-
- QLabel* SchemeLabel = new QLabel(groupWeapons);
- SchemeLabel->setText(QLabel::tr("Game scheme"));
- WeaponsLayout->addWidget(SchemeLabel, 1, 0);
-
- SchemesName = new QComboBox(groupWeapons);
- WeaponsLayout->addWidget(SchemesName, 1, 1);
-
- SchemeNew = new QPushButton(groupWeapons);
- SchemeNew->setToolTip(tr("New scheme"));
- SchemeNew->setIconSize(pmNew.size());
- SchemeNew->setIcon(pmNew);
- SchemeNew->setMaximumWidth(pmNew.width() + 6);
- WeaponsLayout->addWidget(SchemeNew, 1, 2);
-
- SchemeEdit = new QPushButton(groupWeapons);
- SchemeEdit->setToolTip(tr("Edit scheme"));
- SchemeEdit->setIconSize(pmEdit.size());
- SchemeEdit->setIcon(pmEdit);
- SchemeEdit->setMaximumWidth(pmEdit.width() + 6);
- WeaponsLayout->addWidget(SchemeEdit, 1, 3);
-
- SchemeDelete = new QPushButton(groupWeapons);
- SchemeDelete->setToolTip(tr("Delete scheme"));
- SchemeDelete->setIconSize(pmDelete.size());
- SchemeDelete->setIcon(pmDelete);
- SchemeDelete->setMaximumWidth(pmDelete.width() + 6);
- WeaponsLayout->addWidget(SchemeDelete, 1, 4);
-
- QLabel* WeaponLabel = new QLabel(groupWeapons);
- WeaponLabel->setText(QLabel::tr("Weapons"));
- WeaponsLayout->addWidget(WeaponLabel, 2, 0);
-
- WeaponsName = new QComboBox(groupWeapons);
- WeaponsLayout->addWidget(WeaponsName, 2, 1);
-
- WeaponNew = new QPushButton(groupWeapons);
- WeaponNew->setToolTip(tr("New weapon set"));
- WeaponNew->setIconSize(pmNew.size());
- WeaponNew->setIcon(pmNew);
- WeaponNew->setMaximumWidth(pmNew.width() + 6);
- WeaponsLayout->addWidget(WeaponNew, 2, 2);
-
- WeaponEdit = new QPushButton(groupWeapons);
- WeaponEdit->setToolTip(tr("Edit weapon set"));
- WeaponEdit->setIconSize(pmEdit.size());
- WeaponEdit->setIcon(pmEdit);
- WeaponEdit->setMaximumWidth(pmEdit.width() + 6);
- WeaponsLayout->addWidget(WeaponEdit, 2, 3);
-
- WeaponDelete = new QPushButton(groupWeapons);
- WeaponDelete->setToolTip(tr("Delete weapon set"));
- WeaponDelete->setIconSize(pmDelete.size());
- WeaponDelete->setIcon(pmDelete);
- WeaponDelete->setMaximumWidth(pmDelete.width() + 6);
- WeaponsLayout->addWidget(WeaponDelete, 2, 4);
-
- WeaponTooltip = new QCheckBox(this);
- WeaponTooltip->setText(QCheckBox::tr("Show ammo menu tooltips"));
- WeaponsLayout->addWidget(WeaponTooltip, 3, 0, 1, 4);
-
- gbTBLayout->addWidget(groupWeapons, 1, 0);
- }
-
- {
- IconedGroupBox* groupMisc = new IconedGroupBox(this);
- //groupMisc->setContentTopPadding(0);
- groupMisc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- groupMisc->setIcon(QIcon(":/res/miscicon.png"));
- //groupMisc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- groupMisc->setTitle(QGroupBox::tr("Misc"));
- QGridLayout * MiscLayout = new QGridLayout(groupMisc);
-
- labelNN = new QLabel(groupMisc);
- labelNN->setText(QLabel::tr("Net nick"));
- MiscLayout->addWidget(labelNN, 0, 0);
-
- editNetNick = new QLineEdit(groupMisc);
- editNetNick->setMaxLength(20);
- editNetNick->setText(QLineEdit::tr("unnamed"));
- connect(editNetNick, SIGNAL(editingFinished()), this, SLOT(trimNetNick()));
- MiscLayout->addWidget(editNetNick, 0, 1);
-
- labelNetPassword = new QLabel(groupMisc);
- labelNetPassword->setText(QLabel::tr("Password"));
- MiscLayout->addWidget(labelNetPassword, 1, 0);
-
- editNetPassword = new QLineEdit(groupMisc);
- editNetPassword->setEchoMode(QLineEdit::Password);
- MiscLayout->addWidget(editNetPassword, 1, 1);
-
- QLabel *labelLanguage = new QLabel(groupMisc);
- labelLanguage->setText(QLabel::tr("Locale") + " *");
- MiscLayout->addWidget(labelLanguage, 2, 0);
-
- CBLanguage = new QComboBox(groupMisc);
- QDir tmpdir;
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data/Locale");
- tmpdir.setFilter(QDir::Files);
- QStringList locs = tmpdir.entryList(QStringList("hedgewars_*.qm"));
- CBLanguage->addItem(QComboBox::tr("(System default)"), QString(""));
- for(int i = 0; i < locs.count(); i++)
- {
- QLocale loc(locs[i].replace(QRegExp("hedgewars_(.*)\\.qm"), "\\1"));
- CBLanguage->addItem(QLocale::languageToString(loc.language()) + " (" + QLocale::countryToString(loc.country()) + ")", loc.name());
- }
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Locale");
- tmpdir.setFilter(QDir::Files);
- QStringList tmplist = tmpdir.entryList(QStringList("hedgewars_*.qm"));
- for(int i = 0; i < tmplist.count(); i++)
- {
- if (locs.contains(tmplist[i])) continue;
- QLocale loc(tmplist[i].replace(QRegExp("hedgewars_(.*)\\.qm"), "\\1"));
- CBLanguage->addItem(QLocale::languageToString(loc.language()) + " (" + QLocale::countryToString(loc.country()) + ")", loc.name());
- }
-
- MiscLayout->addWidget(CBLanguage, 2, 1);
-
- CBAltDamage = new QCheckBox(groupMisc);
- CBAltDamage->setText(QCheckBox::tr("Alternative damage show"));
- MiscLayout->addWidget(CBAltDamage, 3, 0, 1, 2);
-
- CBNameWithDate = new QCheckBox(groupMisc);
- CBNameWithDate->setText(QCheckBox::tr("Append date and time to record file name"));
- MiscLayout->addWidget(CBNameWithDate, 4, 0, 1, 2);
-
- BtnAssociateFiles = new QPushButton(groupMisc);
- BtnAssociateFiles->setText(QPushButton::tr("Associate file extensions"));
- BtnAssociateFiles->setEnabled(!custom_data && !custom_config);
- MiscLayout->addWidget(BtnAssociateFiles, 5, 0, 1, 2);
-
-#ifdef __APPLE__
-#ifdef SPARKLE_ENABLED
- CBAutoUpdate = new QCheckBox(groupMisc);
- CBAutoUpdate->setText(QCheckBox::tr("Check for updates at startup"));
- MiscLayout->addWidget(CBAutoUpdate, 6, 0, 1, 3);
-#endif
-#endif
- gbTBLayout->addWidget(groupMisc, 2, 0);
- }
-
- {
- AGGroupBox = new IconedGroupBox(this);
- //AGGroupBox->setContentTopPadding(0);
- AGGroupBox->setIcon(QIcon(":/res/graphicsicon.png"));
- //AGGroupBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
- AGGroupBox->setTitle(QGroupBox::tr("Audio/Graphic options"));
-
- QVBoxLayout * GBAlayout = new QVBoxLayout(AGGroupBox);
- QHBoxLayout * GBAreslayout = new QHBoxLayout(0);
- QHBoxLayout * GBAstereolayout = new QHBoxLayout(0);
- QHBoxLayout * GBAqualayout = new QHBoxLayout(0);
-
- CBFrontendFullscreen = new QCheckBox(AGGroupBox);
- CBFrontendFullscreen->setText(QCheckBox::tr("Frontend fullscreen"));
- GBAlayout->addWidget(CBFrontendFullscreen);
-
- CBFrontendEffects = new QCheckBox(AGGroupBox);
- CBFrontendEffects->setText(QCheckBox::tr("Frontend effects") + " *");
- GBAlayout->addWidget(CBFrontendEffects);
-
- CBEnableFrontendSound = new QCheckBox(AGGroupBox);
- CBEnableFrontendSound->setText(QCheckBox::tr("Enable frontend sounds"));
- GBAlayout->addWidget(CBEnableFrontendSound);
-
- CBEnableFrontendMusic = new QCheckBox(AGGroupBox);
- CBEnableFrontendMusic->setText(QCheckBox::tr("Enable frontend music"));
- GBAlayout->addWidget(CBEnableFrontendMusic);
-
- QFrame * hr = new QFrame(AGGroupBox);
- hr->setFrameStyle(QFrame::HLine);
- hr->setLineWidth(3);
- hr->setFixedHeight(10);
- GBAlayout->addWidget(hr);
-
- QLabel * resolution = new QLabel(AGGroupBox);
- resolution->setText(QLabel::tr("Resolution"));
- GBAreslayout->addWidget(resolution);
-
- CBResolution = new QComboBox(AGGroupBox);
- GBAreslayout->addWidget(CBResolution);
- GBAlayout->addLayout(GBAreslayout);
- connect(CBResolution, SIGNAL(currentIndexChanged(int)), this, SLOT(setResolution(int)));
-
- CBFullscreen = new QCheckBox(AGGroupBox);
- CBFullscreen->setText(QCheckBox::tr("Fullscreen"));
- GBAlayout->addWidget(CBFullscreen);
- connect(CBFullscreen, SIGNAL(stateChanged(int)), this, SLOT(setFullscreen(int)));
-
- QLabel * quality = new QLabel(AGGroupBox);
- quality->setText(QLabel::tr("Quality"));
- quality->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- GBAqualayout->addWidget(quality);
-
- SLQuality = new QSlider(Qt::Horizontal, AGGroupBox);
- SLQuality->setTickPosition(QSlider::TicksBelow);
- SLQuality->setMaximum(5);
- SLQuality->setMinimum(0);
- SLQuality->setFixedWidth(150);
- GBAqualayout->addWidget(SLQuality);
- GBAlayout->addLayout(GBAqualayout);
- connect(SLQuality, SIGNAL(valueChanged(int)), this, SLOT(setQuality(int)));
-
- QLabel * stereo = new QLabel(AGGroupBox);
- stereo->setText(QLabel::tr("Stereo rendering"));
- GBAstereolayout->addWidget(stereo);
-
- CBStereoMode = new QComboBox(AGGroupBox);
- CBStereoMode->addItem(QComboBox::tr("Disabled"));
- CBStereoMode->addItem(QComboBox::tr("Red/Cyan"));
- CBStereoMode->addItem(QComboBox::tr("Cyan/Red"));
- CBStereoMode->addItem(QComboBox::tr("Red/Blue"));
- CBStereoMode->addItem(QComboBox::tr("Blue/Red"));
- CBStereoMode->addItem(QComboBox::tr("Red/Green"));
- CBStereoMode->addItem(QComboBox::tr("Green/Red"));
- CBStereoMode->addItem(QComboBox::tr("Side-by-side"));
- CBStereoMode->addItem(QComboBox::tr("Top-Bottom"));
- CBStereoMode->addItem(QComboBox::tr("Wiggle"));
- CBStereoMode->addItem(QComboBox::tr("Red/Cyan grayscale"));
- CBStereoMode->addItem(QComboBox::tr("Cyan/Red grayscale"));
- CBStereoMode->addItem(QComboBox::tr("Red/Blue grayscale"));
- CBStereoMode->addItem(QComboBox::tr("Blue/Red grayscale"));
- CBStereoMode->addItem(QComboBox::tr("Red/Green grayscale"));
- CBStereoMode->addItem(QComboBox::tr("Green/Red grayscale"));
- connect(CBStereoMode, SIGNAL(currentIndexChanged(int)), this, SLOT(forceFullscreen(int)));
-
- GBAstereolayout->addWidget(CBStereoMode);
- GBAlayout->addLayout(GBAstereolayout);
-
- hr = new QFrame(AGGroupBox);
- hr->setFrameStyle(QFrame::HLine);
- hr->setLineWidth(3);
- hr->setFixedHeight(10);
- GBAlayout->addWidget(hr);
-
- QHBoxLayout * GBAvollayout = new QHBoxLayout(0);
- QLabel * vol = new QLabel(AGGroupBox);
- vol->setText(QLabel::tr("Initial sound volume"));
- GBAvollayout->addWidget(vol);
- GBAlayout->addLayout(GBAvollayout);
- volumeBox = new QSpinBox(AGGroupBox);
- volumeBox->setRange(0, 100);
- volumeBox->setSingleStep(5);
- GBAvollayout->addWidget(volumeBox);
-
- CBEnableSound = new QCheckBox(AGGroupBox);
- CBEnableSound->setText(QCheckBox::tr("Enable sound"));
- GBAlayout->addWidget(CBEnableSound);
-
- CBEnableMusic = new QCheckBox(AGGroupBox);
- CBEnableMusic->setText(QCheckBox::tr("Enable music"));
- GBAlayout->addWidget(CBEnableMusic);
-
- hr = new QFrame(AGGroupBox);
- hr->setFrameStyle(QFrame::HLine);
- hr->setLineWidth(3);
- hr->setFixedHeight(10);
- GBAlayout->addWidget(hr);
-
- QHBoxLayout * GBAfpslayout = new QHBoxLayout(0);
- QLabel * maxfps = new QLabel(AGGroupBox);
- maxfps->setText(QLabel::tr("FPS limit"));
- GBAfpslayout->addWidget(maxfps);
- GBAlayout->addLayout(GBAfpslayout);
- fpsedit = new FPSEdit(AGGroupBox);
- GBAfpslayout->addWidget(fpsedit);
-
- CBShowFPS = new QCheckBox(AGGroupBox);
- CBShowFPS->setText(QCheckBox::tr("Show FPS"));
- GBAlayout->addWidget(CBShowFPS);
-
- hr = new QFrame(AGGroupBox);
- hr->setFrameStyle(QFrame::HLine);
- hr->setLineWidth(3);
- hr->setFixedHeight(10);
- GBAlayout->addWidget(hr);
-
- QLabel *restartNote = new QLabel(this);
- restartNote->setText(QString("* ") + QLabel::tr("Restart game to apply"));
- restartNote->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
- GBAlayout->addWidget(restartNote);
-
- gbTBLayout->addWidget(AGGroupBox, 0, 1, 3, 1);
- }
-
- BtnSaveOptions = addButton(":/res/Save.png", pageLayout, 2, 2, true);
- BtnSaveOptions->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 2, 0, true);
- BtnBack->setFixedHeight(BtnSaveOptions->height());
- BtnBack->setFixedWidth(BtnBack->width()+2);
- BtnBack->setStyleSheet("QPushButton{margin: 22px 0 9px 2px;}");
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
- previousQuality = this->SLQuality->value();
- previousResolutionIndex = this->CBResolution->currentIndex();
- previousFullscreenValue = this->CBFullscreen->isChecked();
-}
-
-void PageOptions::forceFullscreen(int index)
-{
- bool forced = (index == 7 || index == 8 || index == 9);
-
- if (index != 0) {
- this->SLQuality->setValue(this->SLQuality->maximum());
- this->SLQuality->setEnabled(false);
- this->CBFullscreen->setEnabled(!forced);
- this->CBFullscreen->setChecked(forced ? true : previousFullscreenValue);
- this->CBResolution->setCurrentIndex(forced ? 0 : previousResolutionIndex);
- } else {
- this->SLQuality->setEnabled(true);
- this->CBFullscreen->setEnabled(true);
- this->SLQuality->setValue(previousQuality);
- this->CBFullscreen->setChecked(previousFullscreenValue);
- this->CBResolution->setCurrentIndex(previousResolutionIndex);
- }
-}
-
-void PageOptions::setQuality(int value)
-{
- int index = this->CBStereoMode->currentIndex();
- if (index == 0)
- previousQuality = this->SLQuality->value();
-}
-
-void PageOptions::setFullscreen(int state)
-{
- int index = this->CBStereoMode->currentIndex();
- if (index != 7 && index != 8 && index != 9)
- previousFullscreenValue = this->CBFullscreen->isChecked();
-}
-
-void PageOptions::setResolution(int state)
-{
- int index = this->CBStereoMode->currentIndex();
- if (index != 7 && index != 8 && index != 9)
- previousResolutionIndex = this->CBResolution->currentIndex();
-}
-
-void PageOptions::trimNetNick()
-{
- editNetNick->setText(editNetNick->text().trimmed());
-}
--- a/QTfrontend/pageoptions.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_OPTIONS_H
-#define PAGE_OPTIONS_H
-
-#include "AbstractPage.h"
-
-class FPSEdit;
-class IconedGroupBox;
-
-class PageOptions : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageOptions(QWidget* parent = 0);
-
- QCheckBox *WeaponTooltip;
- QPushButton *WeaponNew;
- QPushButton *WeaponEdit;
- QPushButton *WeaponDelete;
- QComboBox *WeaponsName;
- QPushButton *SchemeNew;
- QPushButton *SchemeEdit;
- QPushButton *SchemeDelete;
- QComboBox *SchemesName;
-
- QComboBox *CBLanguage;
-
- IconedGroupBox *teamsBox;
- QPushButton *BtnNewTeam;
- QPushButton *BtnEditTeam;
- QPushButton *BtnDeleteTeam;
- QPushButton *BtnAssociateFiles;
- QLabel *LblNoEditTeam;
- QComboBox *CBTeamName;
- IconedGroupBox *AGGroupBox;
- QComboBox *CBResolution;
- QComboBox *CBStereoMode;
- QCheckBox *CBEnableSound;
- QCheckBox *CBEnableFrontendSound;
- QCheckBox *CBEnableMusic;
- QCheckBox *CBEnableFrontendMusic;
- QCheckBox *CBFullscreen;
- QCheckBox *CBFrontendFullscreen;
- QCheckBox *CBShowFPS;
- QCheckBox *CBAltDamage;
- QCheckBox *CBNameWithDate;
-#ifdef __APPLE__
- QCheckBox *CBAutoUpdate;
-#endif
-
- FPSEdit *fpsedit;
- QPushButton *BtnSaveOptions;
- QLabel *labelNN;
- QLabel *labelNetPassword;
- QSpinBox * volumeBox;
- QLineEdit *editNetNick;
- QLineEdit *editNetPassword;
- QSlider *SLQuality;
- QCheckBox *CBFrontendEffects;
-
-private:
- bool previousFullscreenValue;
- int previousResolutionIndex;
- int previousQuality;
- QPushButton *BtnBack;
-
-private slots:
- void forceFullscreen(int index);
- void setFullscreen(int state);
- void setResolution(int state);
- void setQuality(int value);
- void trimNetNick();
-};
-
-#endif
-
--- a/QTfrontend/pageplayrecord.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QFont>
-#include <QGridLayout>
-#include <QPushButton>
-#include <QListWidget>
-#include <QListWidgetItem>
-#include <QFileInfo>
-#include <QMessageBox>
-#include <QInputDialog>
-
-#include "hwconsts.h"
-#include "pageplayrecord.h"
-
-PagePlayDemo::PagePlayDemo(QWidget* parent) : AbstractPage(parent)
-{
- QFont * font14 = new QFont("MS Shell Dlg", 14);
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 2);
- pageLayout->setColumnStretch(2, 1);
- pageLayout->setRowStretch(2, 100);
-
- BtnPlayDemo = new QPushButton(this);
- BtnPlayDemo->setFont(*font14);
- BtnPlayDemo->setText(QPushButton::tr("Play demo"));
- pageLayout->addWidget(BtnPlayDemo, 3, 2);
-
- BtnRenameRecord = new QPushButton(this);
- BtnRenameRecord->setText(QPushButton::tr("Rename"));
- pageLayout->addWidget(BtnRenameRecord, 0, 2);
-
- BtnRemoveRecord = new QPushButton(this);
- BtnRemoveRecord->setText(QPushButton::tr("Delete"));
- pageLayout->addWidget(BtnRemoveRecord, 1, 2);
-
- DemosList = new QListWidget(this);
- DemosList->setGeometry(QRect(170, 10, 311, 311));
- pageLayout->addWidget(DemosList, 0, 1, 3, 1);
-
- connect(BtnRenameRecord, SIGNAL(clicked()), this, SLOT(renameRecord()));
- connect(BtnRemoveRecord, SIGNAL(clicked()), this, SLOT(removeRecord()));
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 3, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
-
-void PagePlayDemo::FillFromDir(RecordType rectype)
-{
- QDir dir;
- QString extension;
-
- recType = rectype;
-
- dir.cd(cfgdir->absolutePath());
- if (rectype == RT_Demo)
- {
- dir.cd("Demos");
- extension = "hwd";
- BtnPlayDemo->setText(QPushButton::tr("Play demo"));
- } else
- {
- dir.cd("Saves");
- extension = "hws";
- BtnPlayDemo->setText(QPushButton::tr("Load"));
- }
- dir.setFilter(QDir::Files);
-
- QStringList sl = dir.entryList(QStringList(QString("*.%2.%1").arg(extension, *cProtoVer)));
- sl.replaceInStrings(QRegExp(QString("^(.*)\\.%2\\.%1$").arg(extension, *cProtoVer)), "\\1");
-
- DemosList->clear();
- DemosList->addItems(sl);
-
- for (int i = 0; i < DemosList->count(); ++i)
- {
- DemosList->item(i)->setData(Qt::UserRole, dir.absoluteFilePath(QString("%1.%3.%2").arg(sl[i], extension, *cProtoVer)));
- DemosList->item(i)->setIcon(recType == RT_Demo ? QIcon(":/res/file_demo.png") : QIcon(":/res/file_save.png"));
- }
-}
-
-void PagePlayDemo::renameRecord()
-{
- QListWidgetItem * curritem = DemosList->currentItem();
- if (!curritem)
- {
- QMessageBox::critical(this,
- tr("Error"),
- tr("Please select record from the list"),
- tr("OK"));
- return ;
- }
- QFile rfile(curritem->data(Qt::UserRole).toString());
-
- QFileInfo finfo(rfile);
-
- bool ok;
-
- QString newname = QInputDialog::getText(this, tr("Rename dialog"), tr("Enter new file name:"), QLineEdit::Normal, finfo.completeBaseName().replace("." + *cProtoVer, ""), &ok);
-
- if(ok && newname.size())
- {
- QString newfullname = QString("%1/%2.%3.%4")
- .arg(finfo.absolutePath())
- .arg(newname)
- .arg(*cProtoVer)
- .arg(finfo.suffix());
-
- ok = rfile.rename(newfullname);
- if(!ok)
- QMessageBox::critical(this, tr("Error"), tr("Cannot rename to") + newfullname);
- else
- FillFromDir(recType);
- }
-}
-
-void PagePlayDemo::removeRecord()
-{
- QListWidgetItem * curritem = DemosList->currentItem();
- if (!curritem)
- {
- QMessageBox::critical(this,
- tr("Error"),
- tr("Please select record from the list"),
- tr("OK"));
- return ;
- }
- QFile rfile(curritem->data(Qt::UserRole).toString());
-
- bool ok;
-
- ok = rfile.remove();
- if(!ok)
- QMessageBox::critical(this, tr("Error"), tr("Cannot delete file"));
- else
- FillFromDir(recType);
-}
-
-bool PagePlayDemo::isSave()
-{
- return recType == RT_Save;
-}
--- a/QTfrontend/pageplayrecord.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PLAYRECORDPAGE_H
-#define PLAYRECORDPAGE_H
-
-#include <QDir>
-
-#include "AbstractPage.h"
-
-class QPushButton;
-class QListWidget;
-
-class PagePlayDemo : public AbstractPage
-{
- Q_OBJECT
-
-public:
- enum RecordType {
- RT_Demo,
- RT_Save
- };
-
- PagePlayDemo(QWidget* parent = 0);
-
- void FillFromDir(RecordType rectype);
- bool isSave();
-
- QPushButton *BtnPlayDemo;
- QPushButton *BtnRenameRecord;
- QPushButton *BtnRemoveRecord;
- QListWidget *DemosList;
-
-private:
- RecordType recType;
- QPushButton *BtnBack;
-
-private slots:
- void renameRecord();
- void removeRecord();
-};
-
-
-#endif // PLAYRECORDPAGE_H
--- a/QTfrontend/pageroomslist.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,399 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QComboBox>
-#include <QLabel>
-#include <QLineEdit>
-#include <QMessageBox>
-#include <QHeaderView>
-#include <QTableWidget>
-
-#include "ammoSchemeModel.h"
-#include "pageroomslist.h"
-#include "hwconsts.h"
-#include "chatwidget.h"
-
-PageRoomsList::PageRoomsList(QWidget* parent, QSettings * gameSettings, SDLInteraction * sdli) :
- AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
-
- QHBoxLayout * newRoomLayout = new QHBoxLayout();
- QLabel * roomNameLabel = new QLabel(this);
- roomNameLabel->setText(tr("Room Name:"));
- roomName = new QLineEdit(this);
- roomName->setMaxLength(60);
- newRoomLayout->addWidget(roomNameLabel);
- newRoomLayout->addWidget(roomName);
- pageLayout->addLayout(newRoomLayout, 0, 0, 1, 2);
-
- roomsList = new QTableWidget(this);
- roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
- roomsList->verticalHeader()->setVisible(false);
- roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
- roomsList->setAlternatingRowColors(true);
- roomsList->setShowGrid(false);
- roomsList->setSelectionMode(QAbstractItemView::SingleSelection);
- pageLayout->addWidget(roomsList, 1, 0, 3, 2);
- pageLayout->setRowStretch(2, 100);
-
- QHBoxLayout * filterLayout = new QHBoxLayout();
-
- QLabel * stateLabel = new QLabel(this);
- stateLabel->setText(tr("State:"));
- CBState = new QComboBox(this);
- CBState->addItem(QComboBox::tr("Any"));
- CBState->addItem(QComboBox::tr("In lobby"));
- CBState->addItem(QComboBox::tr("In progress"));
- filterLayout->addWidget(stateLabel);
- filterLayout->addWidget(CBState);
- filterLayout->addSpacing(30);
-
- QLabel * ruleLabel = new QLabel(this);
- ruleLabel->setText(tr("Rules:"));
- CBRules = new QComboBox(this);
- CBRules->addItem(QComboBox::tr("Any"));
- // not the most elegant solution but it works
- ammoSchemeModel = new AmmoSchemeModel(this, NULL);
- for (int i = 0; i < ammoSchemeModel->predefSchemesNames.count(); i++)
- CBRules->addItem(ammoSchemeModel->predefSchemesNames.at(i).toAscii().constData());
- filterLayout->addWidget(ruleLabel);
- filterLayout->addWidget(CBRules);
- filterLayout->addSpacing(30);
-
- QLabel * weaponLabel = new QLabel(this);
- weaponLabel->setText(tr("Weapons:"));
- CBWeapons = new QComboBox(this);
- CBWeapons->addItem(QComboBox::tr("Any"));
- for (int i = 0; i < cDefaultAmmos.count(); i++) {
- QPair<QString,QString> ammo = cDefaultAmmos.at(i);
- CBWeapons->addItem(ammo.first.toAscii().constData());
- }
- filterLayout->addWidget(weaponLabel);
- filterLayout->addWidget(CBWeapons);
- filterLayout->addSpacing(30);
-
- QLabel * searchLabel = new QLabel(this);
- searchLabel->setText(tr("Search:"));
- searchText = new QLineEdit(this);
- searchText->setMaxLength(60);
- filterLayout->addWidget(searchLabel);
- filterLayout->addWidget(searchText);
-
- pageLayout->addLayout(filterLayout, 4, 0, 1, 2);
-
- chatWidget = new HWChatWidget(this, gameSettings, sdli, false);
- pageLayout->addWidget(chatWidget, 5, 0, 1, 3);
- pageLayout->setRowStretch(5, 350);
-
- BtnCreate = addButton(tr("Create"), pageLayout, 0, 2);
- BtnJoin = addButton(tr("Join"), pageLayout, 1, 2);
- BtnRefresh = addButton(tr("Refresh"), pageLayout, 3, 2);
- BtnClear = addButton(tr("Clear"), pageLayout, 4, 2);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 6, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- lblCount = new QLabel(this);
- pageLayout->addWidget(lblCount, 6, 1, Qt::AlignHCenter);
- lblCount->setText("?");
- lblCount->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
-
- connect(chatWidget, SIGNAL(nickCountUpdate(const int)), this, SLOT(updateNickCounter(const int)));
-
- BtnAdmin = addButton(tr("Admin features"), pageLayout, 6, 2);
-
- connect(BtnCreate, SIGNAL(clicked()), this, SLOT(onCreateClick()));
- connect(BtnJoin, SIGNAL(clicked()), this, SLOT(onJoinClick()));
- connect(BtnRefresh, SIGNAL(clicked()), this, SLOT(onRefreshClick()));
- connect(BtnClear, SIGNAL(clicked()), this, SLOT(onClearClick()));
- connect(roomsList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(onJoinClick()));
- connect(CBState, SIGNAL(currentIndexChanged (int)), this, SLOT(onRefreshClick()));
- connect(CBRules, SIGNAL(currentIndexChanged (int)), this, SLOT(onRefreshClick()));
- connect(CBWeapons, SIGNAL(currentIndexChanged (int)), this, SLOT(onRefreshClick()));
- connect(searchText, SIGNAL(textChanged (const QString &)), this, SLOT(onRefreshClick()));
- connect(this, SIGNAL(askJoinConfirmation (const QString &)), this, SLOT(onJoinConfirmation(const QString &)), Qt::QueuedConnection);
-
- gameInLobby = false;
-}
-
-void PageRoomsList::setAdmin(bool flag)
-{
- BtnAdmin->setVisible(flag);
-}
-
-void PageRoomsList::setRoomsList(const QStringList & list)
-{
- QBrush red(QColor(255, 0, 0));
- QBrush orange(QColor(127, 127, 0));
- QBrush yellow(QColor(255, 255, 0));
- QBrush green(QColor(0, 255, 0));
-
- listFromServer = list;
-
- QString selection = "";
-
- if(QTableWidgetItem *item = roomsList->item(roomsList->currentRow(), 0))
- selection = item->text();
-
- roomsList->clear();
- roomsList->setColumnCount(7);
- roomsList->setHorizontalHeaderLabels(
- QStringList() <<
- QTableWidget::tr("Room Name") <<
- QTableWidget::tr("C") <<
- QTableWidget::tr("T") <<
- QTableWidget::tr("Owner") <<
- QTableWidget::tr("Map") <<
- QTableWidget::tr("Rules") <<
- QTableWidget::tr("Weapons")
- );
-
- // set minimum sizes
-// roomsList->horizontalHeader()->resizeSection(0, 200);
-// roomsList->horizontalHeader()->resizeSection(1, 50);
-// roomsList->horizontalHeader()->resizeSection(2, 50);
-// roomsList->horizontalHeader()->resizeSection(3, 100);
-// roomsList->horizontalHeader()->resizeSection(4, 100);
-// roomsList->horizontalHeader()->resizeSection(5, 100);
-// roomsList->horizontalHeader()->resizeSection(6, 100);
-
- // set resize modes
-// roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
-
- bool gameCanBeJoined = true;
-
- if (list.size() % 8)
- return;
-
- roomsList->setRowCount(list.size() / 8);
- for(int i = 0, r = 0; i < list.size(); i += 8, r++)
- {
- // if we are joining a game
- // TODO: Should NOT be done here
- if (gameInLobby) {
- if (gameInLobbyName == list[i + 1]) {
- gameCanBeJoined = list[i].compare("True");
- }
- }
-
- // check filter settings
- #define NO_FILTER_MATCH roomsList->setRowCount(roomsList->rowCount() - 1); --r; continue
-
- if (list[i].compare("True") && CBState->currentIndex() == 2) { NO_FILTER_MATCH; }
- if (list[i].compare("False") && CBState->currentIndex() == 1) { NO_FILTER_MATCH; }
- if (CBRules->currentIndex() != 0 && list[i + 6].compare(CBRules->currentText())) { NO_FILTER_MATCH; }
- if (CBWeapons->currentIndex() != 0 && list[i + 7].compare(CBWeapons->currentText())) { NO_FILTER_MATCH; }
- bool found = list[i + 1].contains(searchText->text(), Qt::CaseInsensitive);
- if (!found) {
- for (int a = 4; a <= 7; ++a) {
- QString compString = list[i + a];
- if (a == 5 && compString == "+rnd+") {
- compString = "Random Map";
- } else if (a == 5 && compString == "+maze+") {
- compString = "Random Maze";
- } else if (a == 5 && compString == "+drawn+") {
- compString = "Drawn Map";
- }
- if (compString.contains(searchText->text(), Qt::CaseInsensitive)) {
- found = true;
- break;
- }
- }
- }
- if (!searchText->text().isEmpty() && !found) { NO_FILTER_MATCH; }
-
- QTableWidgetItem * item;
- item = new QTableWidgetItem(list[i + 1]); // room name
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
-
- // pick appropriate room icon and tooltip (game in progress yes/no; later maybe locked rooms etc.)
- if(list[i].compare("True"))
- {
- item->setIcon(QIcon(":/res/iconTime.png"));// game is in lobby
- item->setToolTip(tr("This game is in lobby.\nYou may join and start playing once the game starts."));
- }
- else
- {
- item->setIcon(QIcon(":/res/iconDamage.png"));// game has started
- item->setToolTip(tr("This game is in progress.\nYou may join and spectate now but you'll have to wait for the game to end to start playing."));
- }
-
- roomsList->setItem(r, 0, item);
-
- item = new QTableWidgetItem(list[i + 2]); // number of clients
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setTextAlignment(Qt::AlignCenter);
- item->setToolTip(tr("There are %1 clients connected to this room.", "", list[i + 2].toInt()).arg(list[i + 2]));
- roomsList->setItem(r, 1, item);
-
- item = new QTableWidgetItem(list[i + 3]); // number of teams
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setTextAlignment(Qt::AlignCenter);
- item->setToolTip(tr("There are %1 teams participating in this room.", "", list[i + 3].toInt()).arg(list[i + 3]));
- //Should we highlight "full" games? Might get misinterpreted
- //if(list[i + 3].toInt() >= cMaxTeams)
- // item->setForeground(red);
- roomsList->setItem(r, 2, item);
-
- item = new QTableWidgetItem(list[i + 4].left(15)); // name of host
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setToolTip(tr("%1 is the host. He may adjust settings and start the game.").arg(list[i + 4]));
- roomsList->setItem(r, 3, item);
-
- if(list[i + 5] == "+rnd+")
- {
- item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized)
-// FIXME - need real icons. Disabling until then
-// item->setIcon(QIcon(":/res/mapRandom.png"));
- }
- else if (list[i+5] == "+maze+")
- {
- item = new QTableWidgetItem(tr("Random Maze"));
-// FIXME - need real icons. Disabling until then
-// item->setIcon(QIcon(":/res/mapMaze.png"));
- }
- else
- {
- item = new QTableWidgetItem(list[i + 5]); // selected map
-
- // check to see if we've got this map
- // not perfect but a start
- if(!mapList->contains(list[i + 5]))
- {
- item->setForeground(red);
- item->setIcon(QIcon(":/res/mapMissing.png"));
- }
- else
- {
- // todo: mission icon?
-// FIXME - need real icons. Disabling until then
-// item->setIcon(QIcon(":/res/mapCustom.png"));
- }
- }
-
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setToolTip(tr("Games may be played on precreated or randomized maps."));
- roomsList->setItem(r, 4, item);
-
- item = new QTableWidgetItem(list[i + 6].left(24)); // selected game scheme
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setToolTip(tr("The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism."));
- roomsList->setItem(r, 5, item);
-
- item = new QTableWidgetItem(list[i + 7].left(24)); // selected weapon scheme
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setToolTip(tr("The Weapon Scheme defines available weapons and their ammunition count."));
- roomsList->setItem(r, 6, item);
-
- if(!list[i + 1].compare(selection) && !selection.isEmpty())
- roomsList->selectionModel()->setCurrentIndex(roomsList->model()->index(r, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
- }
-
- roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
- roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
-
- // TODO: Should NOT be done here
- if (gameInLobby) {
- gameInLobby = false;
- if (gameCanBeJoined) {
- emit askForJoinRoom(gameInLobbyName);
- } else {
- emit askJoinConfirmation(gameInLobbyName);
- }
- }
-
-// roomsList->resizeColumnsToContents();
-}
-
-void PageRoomsList::onCreateClick()
-{
- if (roomName->text().size())
- emit askForCreateRoom(roomName->text());
- else
- QMessageBox::critical(this,
- tr("Error"),
- tr("Please enter room name"),
- tr("OK"));
-}
-
-void PageRoomsList::onJoinClick()
-{
- QTableWidgetItem * curritem = roomsList->item(roomsList->currentRow(), 0);
- if (!curritem)
- {
- QMessageBox::critical(this,
- tr("Error"),
- tr("Please select room from the list"),
- tr("OK"));
- return;
- }
-
- for (int i = 0; i < listFromServer.size(); i += 8) {
- if (listFromServer[i + 1] == curritem->data(Qt::DisplayRole).toString()) {
- gameInLobby = listFromServer[i].compare("True");
- break;
- }
- }
-
- if (gameInLobby) {
- gameInLobbyName = curritem->data(Qt::DisplayRole).toString();
- emit askForRoomList();
- } else {
- emit askForJoinRoom(curritem->data(Qt::DisplayRole).toString());
- }
-}
-
-void PageRoomsList::onRefreshClick()
-{
- emit askForRoomList();
-}
-
-void PageRoomsList::onClearClick()
-{
- CBState->setCurrentIndex(0);
- CBRules->setCurrentIndex(0);
- CBWeapons->setCurrentIndex(0);
- searchText->clear();
-}
-
-void PageRoomsList::onJoinConfirmation(const QString & room)
-{
- if (QMessageBox::warning(this,
- tr("Warning"),
- tr("The game you are trying to join has started.\nDo you still want to join the room?"),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
- {
- emit askForJoinRoom(room);
- }
-}
-
-void PageRoomsList::updateNickCounter(int cnt)
-{
- lblCount->setText(tr("%1 players online", 0, cnt).arg(cnt));
-}
-
--- a/QTfrontend/pageroomslist.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_ROOMLIST_H
-#define PAGE_ROOMLIST_H
-
-#include "AbstractPage.h"
-#include "SDLs.h"
-
-class HWChatWidget;
-class AmmoSchemeModel;
-
-class PageRoomsList : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageRoomsList(QWidget* parent, QSettings * config, SDLInteraction * sdli);
-
- QLineEdit * roomName;
- QLineEdit * searchText;
- QTableWidget * roomsList;
- QPushButton * BtnCreate;
- QPushButton * BtnJoin;
- QPushButton * BtnRefresh;
- QPushButton * BtnAdmin;
- QPushButton * BtnClear;
- QComboBox * CBState;
- QComboBox * CBRules;
- QComboBox * CBWeapons;
- HWChatWidget * chatWidget;
- QLabel * lblCount;
-
-private:
- bool gameInLobby;
- QString gameInLobbyName;
- QStringList listFromServer;
- AmmoSchemeModel * ammoSchemeModel;
- QPushButton * BtnBack;
-
-public slots:
- void setRoomsList(const QStringList & list);
- void setAdmin(bool);
- void updateNickCounter(int cnt);
-
-private slots:
- void onCreateClick();
- void onJoinClick();
- void onRefreshClick();
- void onClearClick();
- void onJoinConfirmation(const QString &);
-
-signals:
- void askForCreateRoom(const QString &);
- void askForJoinRoom(const QString &);
- void askForRoomList();
- void askJoinConfirmation(const QString &);
-};
-
-#endif
--- a/QTfrontend/pagescheme.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,492 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QGroupBox>
-#include <QComboBox>
-#include <QLabel>
-#include <QLineEdit>
-#include <QMessageBox>
-#include <QDataWidgetMapper>
-#include <QSpinBox>
-
-#include "ammoSchemeModel.h"
-#include "pagescheme.h"
-#include "misc.h"
-
-PageScheme::PageScheme(QWidget* parent) :
- AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- QGroupBox * gb = new QGroupBox(this);
-
- QGridLayout * gl = new QGridLayout();
- gb->setLayout(gl);
- QSizePolicy sp;
- sp.setVerticalPolicy(QSizePolicy::MinimumExpanding);
- sp.setHorizontalPolicy(QSizePolicy::Expanding);
-
- pageLayout->addWidget(gb, 1,0,13,5);
-
- gbGameModes = new QGroupBox(QGroupBox::tr("Game Modifiers"), gb);
- gbBasicSettings = new QGroupBox(QGroupBox::tr("Basic Settings"), gb);
-
- gbGameModes->setStyleSheet(".QGroupBox {"
- "background-color: #130f2c; background-image:url();"
- "}");
- gbBasicSettings->setStyleSheet(".QGroupBox {"
- "background-color: #130f2c; background-image:url();"
- "}");
-
- gbGameModes->setSizePolicy(sp);
- gbBasicSettings->setSizePolicy(sp);
- gl->addWidget(gbGameModes,0,0,1,3,Qt::AlignTop);
- gl->addWidget(gbBasicSettings,0,3,1,3,Qt::AlignTop);
-
- QGridLayout * glGMLayout = new QGridLayout(gbGameModes);
- QGridLayout * glBSLayout = new QGridLayout(gbBasicSettings);
- gbGameModes->setLayout(glGMLayout);
- gbBasicSettings->setLayout(glBSLayout);
- // Left
-
- TBW_mode_Forts = new ToggleButtonWidget(gbGameModes, ":/res/btnForts.png");
- TBW_mode_Forts->setToolTip("<b>" + ToggleButtonWidget::tr("Fort Mode") + "</b>:<br />" + tr("Defend your fort and destroy the opponents, two team colours max!"));
- glGMLayout->addWidget(TBW_mode_Forts,0,0,1,1);
-
- TBW_teamsDivide = new ToggleButtonWidget(gbGameModes, ":/res/btnTeamsDivide.png");
- TBW_teamsDivide->setToolTip("<b>" + ToggleButtonWidget::tr("Divide Teams") + "</b>:<br />" + tr("Teams will start on opposite sides of the terrain, two team colours max!"));
- glGMLayout->addWidget(TBW_teamsDivide,0,1,1,1);
-
- TBW_solid = new ToggleButtonWidget(gbGameModes, ":/res/btnSolid.png");
- TBW_solid->setToolTip("<b>" + ToggleButtonWidget::tr("Solid Land") + "</b>:<br />" + tr("Land can not be destroyed!"));
- glGMLayout->addWidget(TBW_solid,0,2,1,1);
-
- TBW_border = new ToggleButtonWidget(gbGameModes, ":/res/btnBorder.png");
- TBW_border->setToolTip("<b>" + ToggleButtonWidget::tr("Add Border") + "</b>:<br />" + tr("Add an indestructible border around the terrain"));
- glGMLayout->addWidget(TBW_border,0,3,1,1);
-
- TBW_lowGravity = new ToggleButtonWidget(gbGameModes, ":/res/btnLowGravity.png");
- TBW_lowGravity->setToolTip("<b>" + ToggleButtonWidget::tr("Low Gravity") + "</b>:<br />" + tr("Lower gravity"));
- glGMLayout->addWidget(TBW_lowGravity,0,4,1,1);
-
- TBW_laserSight = new ToggleButtonWidget(gbGameModes, ":/res/btnLaserSight.png");
- TBW_laserSight->setToolTip("<b>" + ToggleButtonWidget::tr("Laser Sight") + "</b>:<br />" + tr("Assisted aiming with laser sight"));
- glGMLayout->addWidget(TBW_laserSight,1,0,1,1);
-
- TBW_invulnerable = new ToggleButtonWidget(gbGameModes, ":/res/btnInvulnerable.png");
- TBW_invulnerable->setToolTip("<b>" + ToggleButtonWidget::tr("Invulnerable") + "</b>:<br />" + tr("All hogs have a personal forcefield"));
- glGMLayout->addWidget(TBW_invulnerable,1,1,1,1);
-
- TBW_resethealth = new ToggleButtonWidget(gbGameModes, ":/res/btnResetHealth.png");
- TBW_resethealth->setToolTip("<b>" + ToggleButtonWidget::tr("Reset Health") + "</b>:<br />" + tr("All (living) hedgehogs are fully restored at the end of turn"));
- glGMLayout->addWidget(TBW_resethealth,1,2,1,1);
-
- TBW_vampiric = new ToggleButtonWidget(gbGameModes, ":/res/btnVampiric.png");
- TBW_vampiric->setToolTip("<b>" + ToggleButtonWidget::tr("Vampirism") + "</b>:<br />" + tr("Gain 80% of the damage you do back in health"));
- glGMLayout->addWidget(TBW_vampiric,1,3,1,1);
-
- TBW_karma = new ToggleButtonWidget(gbGameModes, ":/res/btnKarma.png");
- TBW_karma->setToolTip("<b>" + ToggleButtonWidget::tr("Karma") + "</b>:<br />" + tr("Share your opponents pain, share their damage"));
- glGMLayout->addWidget(TBW_karma,1,4,1,1);
-
- TBW_artillery = new ToggleButtonWidget(gbGameModes, ":/res/btnArtillery.png");
- TBW_artillery->setToolTip("<b>" + ToggleButtonWidget::tr("Artillery") + "</b>:<br />" + tr("Your hogs are unable to move, put your artillery skills to the test"));
- glGMLayout->addWidget(TBW_artillery,2,0,1,1);
-
- TBW_randomorder = new ToggleButtonWidget(gbGameModes, ":/res/btnRandomOrder.png");
- TBW_randomorder->setToolTip("<b>" + ToggleButtonWidget::tr("Random Order") + "</b>:<br />" + tr("Order of play is random instead of in room order."));
- glGMLayout->addWidget(TBW_randomorder,2,1,1,1);
-
- TBW_king = new ToggleButtonWidget(gbGameModes, ":/res/btnKing.png");
- TBW_king->setToolTip("<b>" + ToggleButtonWidget::tr("King") + "</b>:<br />" + tr("Play with a King. If he dies, your side dies."));
- glGMLayout->addWidget(TBW_king,2,2,1,1);
-
- TBW_placehog = new ToggleButtonWidget(gbGameModes, ":/res/btnPlaceHog.png");
- TBW_placehog->setToolTip("<b>" + ToggleButtonWidget::tr("Place Hedgehogs") + "</b>:<br />" + tr("Take turns placing your hedgehogs before the start of play."));
- glGMLayout->addWidget(TBW_placehog,2,3,1,1);
-
- TBW_sharedammo = new ToggleButtonWidget(gbGameModes, ":/res/btnSharedAmmo.png");
- TBW_sharedammo->setToolTip("<b>" + ToggleButtonWidget::tr("Clan Shares Ammo") + "</b>:<br />" + tr("Ammo is shared between all teams that share a colour."));
- glGMLayout->addWidget(TBW_sharedammo,2,4,1,1);
-
- TBW_disablegirders = new ToggleButtonWidget(gbGameModes, ":/res/btnDisableGirders.png");
- TBW_disablegirders->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Girders") + "</b>:<br />" + tr("Disable girders when generating random maps."));
- glGMLayout->addWidget(TBW_disablegirders,3,0,1,1);
-
- TBW_disablelandobjects = new ToggleButtonWidget(gbGameModes, ":/res/btnDisableLandObjects.png");
- TBW_disablelandobjects->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Land Objects") + "</b>:<br />" + tr("Disable land objects when generating random maps."));
- glGMLayout->addWidget(TBW_disablelandobjects,3,1,1,1);
-
- TBW_aisurvival = new ToggleButtonWidget(gbGameModes, ":/res/btnAISurvival.png");
- TBW_aisurvival->setToolTip("<b>" + ToggleButtonWidget::tr("AI Survival Mode") + "</b>:<br />" + tr("AI respawns on death."));
- glGMLayout->addWidget(TBW_aisurvival,3,2,1,1);
-
- TBW_infattack = new ToggleButtonWidget(gbGameModes, ":/res/btnInfAttack.png");
- TBW_infattack->setToolTip("<b>" + ToggleButtonWidget::tr("Unlimited Attacks") + "</b>:<br />" + tr("Attacking does not end your turn."));
- glGMLayout->addWidget(TBW_infattack,3,3,1,1);
-
- TBW_resetweps = new ToggleButtonWidget(gbGameModes, ":/res/btnResetWeps.png");
- TBW_resetweps->setToolTip("<b>" + ToggleButtonWidget::tr("Reset Weapons") + "</b>:<br />" + tr("Weapons are reset to starting values each turn."));
- glGMLayout->addWidget(TBW_resetweps,3,4,1,1);
-
- TBW_perhogammo = new ToggleButtonWidget(gbGameModes, ":/res/btnPerHogAmmo.png");
- TBW_perhogammo->setToolTip("<b>" + ToggleButtonWidget::tr("Per Hedgehog Ammo") + "</b>:<br />" + tr("Each hedgehog has its own ammo. It does not share with the team."));
- glGMLayout->addWidget(TBW_perhogammo,4,0,1,1);
-
- TBW_nowind = new ToggleButtonWidget(gbGameModes, ":/res/btnNoWind.png");
- TBW_nowind->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Wind") + "</b>:<br />" + tr("You will not have to worry about wind anymore."));
- glGMLayout->addWidget(TBW_nowind,4,1,1,1);
-
- TBW_morewind = new ToggleButtonWidget(gbGameModes, ":/res/btnMoreWind.png");
- TBW_morewind->setToolTip("<b>" + ToggleButtonWidget::tr("More Wind") + "</b>:<br />" + tr("Wind will affect almost everything."));
- glGMLayout->addWidget(TBW_morewind,4,2,1,1);
-
- TBW_tagteam = new ToggleButtonWidget(gbGameModes, ":/res/btnTagTeam.png");
- TBW_tagteam->setToolTip("<b>" + ToggleButtonWidget::tr("Tag Team") + "</b>:<br />" + tr("Teams in each clan take successive turns sharing their turn time."));
- glGMLayout->addWidget(TBW_tagteam,4,3,1,1);
-
- TBW_bottomborder = new ToggleButtonWidget(gbGameModes, ":/res/btnBottomBorder.png");
- TBW_bottomborder->setToolTip("<b>" + ToggleButtonWidget::tr("Add Bottom Border") + "</b>:<br />" + tr("Add an indestructible border along the bottom"));
- glGMLayout->addWidget(TBW_bottomborder,4,4,1,1);
-
-
- // Right
- QLabel * l;
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Damage Modifier"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,0,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconDamage.png"));
- glBSLayout->addWidget(l,0,1,1,1);
- SB_DamageModifier = new QSpinBox(gbBasicSettings);
- SB_DamageModifier->setRange(10, 300);
- SB_DamageModifier->setValue(100);
- SB_DamageModifier->setSingleStep(25);
- glBSLayout->addWidget(SB_DamageModifier,0,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Turn Time"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,1,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconTime.png"));
- glBSLayout->addWidget(l,1,1,1,1);
- SB_TurnTime = new QSpinBox(gbBasicSettings);
- SB_TurnTime->setRange(1, 9999);
- SB_TurnTime->setValue(45);
- SB_TurnTime->setSingleStep(15);
- glBSLayout->addWidget(SB_TurnTime,1,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Initial Health"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,2,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconHealth.png"));
- glBSLayout->addWidget(l,2,1,1,1);
- SB_InitHealth = new QSpinBox(gbBasicSettings);
- SB_InitHealth->setRange(50, 200);
- SB_InitHealth->setValue(100);
- SB_InitHealth->setSingleStep(25);
- glBSLayout->addWidget(SB_InitHealth,2,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Sudden Death Timeout"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,3,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconSuddenDeath.png"));
- glBSLayout->addWidget(l,3,1,1,1);
- SB_SuddenDeath = new QSpinBox(gbBasicSettings);
- SB_SuddenDeath->setRange(0, 50);
- SB_SuddenDeath->setValue(15);
- SB_SuddenDeath->setSingleStep(3);
- glBSLayout->addWidget(SB_SuddenDeath,3,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Sudden Death Water Rise"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,4,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconSuddenDeath.png")); // TODO: icon
- glBSLayout->addWidget(l,4,1,1,1);
- SB_WaterRise = new QSpinBox(gbBasicSettings);
- SB_WaterRise->setRange(0, 100);
- SB_WaterRise->setValue(47);
- SB_WaterRise->setSingleStep(5);
- glBSLayout->addWidget(SB_WaterRise,4,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Sudden Death Health Decrease"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,5,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconSuddenDeath.png")); // TODO: icon
- glBSLayout->addWidget(l,5,1,1,1);
- SB_HealthDecrease = new QSpinBox(gbBasicSettings);
- SB_HealthDecrease->setRange(0, 100);
- SB_HealthDecrease->setValue(5);
- SB_HealthDecrease->setSingleStep(1);
- glBSLayout->addWidget(SB_HealthDecrease,5,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("% Rope Length"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,6,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconRope.png"));
- glBSLayout->addWidget(l,6,1,1,1);
- SB_RopeModifier = new QSpinBox(gbBasicSettings);
- SB_RopeModifier->setRange(25, 999);
- SB_RopeModifier->setValue(100);
- SB_RopeModifier->setSingleStep(25);
- glBSLayout->addWidget(SB_RopeModifier,6,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Crate Drops"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,7,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconBox.png"));
- glBSLayout->addWidget(l,7,1,1,1);
- SB_CaseProb = new FreqSpinBox(gbBasicSettings);
- SB_CaseProb->setRange(0, 9);
- SB_CaseProb->setValue(5);
- glBSLayout->addWidget(SB_CaseProb,7,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("% Health Crates"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,8,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconHealth.png")); // TODO: icon
- glBSLayout->addWidget(l,8,1,1,1);
- SB_HealthCrates = new QSpinBox(gbBasicSettings);
- SB_HealthCrates->setRange(0, 100);
- SB_HealthCrates->setValue(35);
- SB_HealthCrates->setSingleStep(5);
- glBSLayout->addWidget(SB_HealthCrates,8,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Health in Crates"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,9,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconHealth.png")); // TODO: icon
- glBSLayout->addWidget(l,9,1,1,1);
- SB_CrateHealth = new QSpinBox(gbBasicSettings);
- SB_CrateHealth->setRange(0, 200);
- SB_CrateHealth->setValue(25);
- SB_CrateHealth->setSingleStep(5);
- glBSLayout->addWidget(SB_CrateHealth,9,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Mines Time"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,10,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconTime.png")); // TODO: icon
- glBSLayout->addWidget(l,10,1,1,1);
- SB_MinesTime = new QSpinBox(gbBasicSettings);
- SB_MinesTime->setRange(-1, 5);
- SB_MinesTime->setValue(3);
- SB_MinesTime->setSingleStep(1);
- SB_MinesTime->setSpecialValueText(tr("Random"));
- SB_MinesTime->setSuffix(" "+ tr("Seconds"));
- glBSLayout->addWidget(SB_MinesTime,10,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Mines"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,11,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconMine.png")); // TODO: icon
- glBSLayout->addWidget(l,11,1,1,1);
- SB_Mines = new QSpinBox(gbBasicSettings);
- SB_Mines->setRange(0, 80);
- SB_Mines->setValue(0);
- SB_Mines->setSingleStep(5);
- glBSLayout->addWidget(SB_Mines,11,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("% Dud Mines"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,12,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconDud.png"));
- glBSLayout->addWidget(l,12,1,1,1);
- SB_MineDuds = new QSpinBox(gbBasicSettings);
- SB_MineDuds->setRange(0, 100);
- SB_MineDuds->setValue(0);
- SB_MineDuds->setSingleStep(5);
- glBSLayout->addWidget(SB_MineDuds,12,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Explosives"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,13,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconDamage.png"));
- glBSLayout->addWidget(l,13,1,1,1);
- SB_Explosives = new QSpinBox(gbBasicSettings);
- SB_Explosives->setRange(0, 40);
- SB_Explosives->setValue(0);
- SB_Explosives->setSingleStep(1);
- glBSLayout->addWidget(SB_Explosives,13,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("% Get Away Time"));
- l->setWordWrap(true);
- glBSLayout->addWidget(l,14,0,1,1);
- l = new QLabel(gbBasicSettings);
- l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconTime.png"));
- glBSLayout->addWidget(l,14,1,1,1);
- SB_GetAwayTime = new QSpinBox(gbBasicSettings);
- SB_GetAwayTime->setRange(0, 999);
- SB_GetAwayTime->setValue(100);
- SB_GetAwayTime->setSingleStep(25);
- glBSLayout->addWidget(SB_GetAwayTime,14,2,1,1);
-
- l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Scheme Name:"));
-
- LE_name = new QLineEdit(this);
-
- gl->addWidget(LE_name,15,1,1,5);
- gl->addWidget(l,15,0,1,1);
-
- mapper = new QDataWidgetMapper(this);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 16, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- BtnCopy = addButton(tr("Copy"), pageLayout, 16, 2);
- BtnNew = addButton(tr("New"), pageLayout, 16, 3);
- BtnDelete = addButton(tr("Delete"), pageLayout, 16, 4);
-
- selectScheme = new QComboBox(this);
- pageLayout->addWidget(selectScheme, 16, 1);
-
- connect(BtnCopy, SIGNAL(clicked()), this, SLOT(copyRow()));
- connect(BtnNew, SIGNAL(clicked()), this, SLOT(newRow()));
- connect(BtnDelete, SIGNAL(clicked()), this, SLOT(deleteRow()));
- connect(selectScheme, SIGNAL(currentIndexChanged(int)), mapper, SLOT(setCurrentIndex(int)));
- connect(selectScheme, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeSelected(int)));
-}
-
-void PageScheme::setModel(QAbstractItemModel * model)
-{
- mapper->setModel(model);
- selectScheme->setModel(model);
-
- mapper->addMapping(LE_name, 0);
- mapper->addMapping(TBW_mode_Forts, 1);
- mapper->addMapping(TBW_teamsDivide, 2);
- mapper->addMapping(TBW_solid, 3);
- mapper->addMapping(TBW_border, 4);
- mapper->addMapping(TBW_lowGravity, 5);
- mapper->addMapping(TBW_laserSight, 6);
- mapper->addMapping(TBW_invulnerable, 7);
- mapper->addMapping(TBW_resethealth, 8);
- mapper->addMapping(TBW_vampiric, 9);
- mapper->addMapping(TBW_karma, 10);
- mapper->addMapping(TBW_artillery, 11);
- mapper->addMapping(TBW_randomorder, 12);
- mapper->addMapping(TBW_king, 13);
- mapper->addMapping(TBW_placehog, 14);
- mapper->addMapping(TBW_sharedammo, 15);
- mapper->addMapping(TBW_disablegirders, 16);
- mapper->addMapping(TBW_disablelandobjects, 17);
- mapper->addMapping(TBW_aisurvival, 18);
- mapper->addMapping(TBW_infattack, 19);
- mapper->addMapping(TBW_resetweps, 20);
- mapper->addMapping(TBW_perhogammo, 21);
- mapper->addMapping(TBW_nowind, 22);
- mapper->addMapping(TBW_morewind, 23);
- mapper->addMapping(TBW_tagteam, 24);
- mapper->addMapping(TBW_bottomborder, 25);
- mapper->addMapping(SB_DamageModifier, 26);
- mapper->addMapping(SB_TurnTime, 27);
- mapper->addMapping(SB_InitHealth, 28);
- mapper->addMapping(SB_SuddenDeath, 29);
- mapper->addMapping(SB_CaseProb, 30);
- mapper->addMapping(SB_MinesTime, 31);
- mapper->addMapping(SB_Mines, 32);
- mapper->addMapping(SB_MineDuds, 33);
- mapper->addMapping(SB_Explosives, 34);
- mapper->addMapping(SB_HealthCrates, 35);
- mapper->addMapping(SB_CrateHealth, 36);
- mapper->addMapping(SB_WaterRise, 37);
- mapper->addMapping(SB_HealthDecrease, 38);
- mapper->addMapping(SB_RopeModifier, 39);
- mapper->addMapping(SB_GetAwayTime, 40);
-
- mapper->toFirst();
-}
-
-void PageScheme::newRow()
-{
- QAbstractItemModel * model = mapper->model();
- model->insertRow(-1);
- selectScheme->setCurrentIndex(model->rowCount() - 1);
-}
-
-void PageScheme::copyRow()
-{
- QAbstractItemModel * model = mapper->model();
- model->insertRow(selectScheme->currentIndex());
- selectScheme->setCurrentIndex(model->rowCount() - 1);
-}
-
-void PageScheme::deleteRow()
-{
- QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Schemes"), QMessageBox::tr("Really delete this game scheme?"), QMessageBox::Ok | QMessageBox::Cancel);
-
- if (reallyDelete.exec() == QMessageBox::Ok) {
- QAbstractItemModel * model = mapper->model();
- model->removeRow(selectScheme->currentIndex());
- }
-}
-
-void PageScheme::schemeSelected(int n)
-{
- int c = ((AmmoSchemeModel*)mapper->model())->numberOfDefaultSchemes;
- gbGameModes->setEnabled(n >= c);
- gbBasicSettings->setEnabled(n >= c);
- LE_name->setEnabled(n >= c);
-}
--- a/QTfrontend/pagescheme.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_SCHEME_H
-#define PAGE_SCHEME_H
-
-#include "AbstractPage.h"
-#include "togglebutton.h"
-
-class FreqSpinBox;
-
-class PageScheme : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageScheme(QWidget* parent = 0);
-
- QPushButton * BtnCopy;
- QPushButton * BtnNew;
- QPushButton * BtnDelete;
- QPushButton * BtnSave;
- QComboBox * selectScheme;
-
- void setModel(QAbstractItemModel * model);
-
-public slots:
- void newRow();
- void copyRow();
- void deleteRow();
-
-private:
- QPushButton * BtnBack;
-
- QDataWidgetMapper * mapper;
- ToggleButtonWidget * TBW_mode_Forts;
- ToggleButtonWidget * TBW_teamsDivide;
- ToggleButtonWidget * TBW_solid;
- ToggleButtonWidget * TBW_border;
- ToggleButtonWidget * TBW_lowGravity;
- ToggleButtonWidget * TBW_laserSight;
- ToggleButtonWidget * TBW_invulnerable;
- ToggleButtonWidget * TBW_resethealth;
- ToggleButtonWidget * TBW_vampiric;
- ToggleButtonWidget * TBW_karma;
- ToggleButtonWidget * TBW_artillery;
- ToggleButtonWidget * TBW_randomorder;
- ToggleButtonWidget * TBW_king;
- ToggleButtonWidget * TBW_placehog;
- ToggleButtonWidget * TBW_sharedammo;
- ToggleButtonWidget * TBW_disablegirders;
- ToggleButtonWidget * TBW_disablelandobjects;
- ToggleButtonWidget * TBW_aisurvival;
- ToggleButtonWidget * TBW_infattack;
- ToggleButtonWidget * TBW_resetweps;
- ToggleButtonWidget * TBW_perhogammo;
- ToggleButtonWidget * TBW_nowind;
- ToggleButtonWidget * TBW_morewind;
- ToggleButtonWidget * TBW_tagteam;
- ToggleButtonWidget * TBW_bottomborder;
-
- QSpinBox * SB_DamageModifier;
- QSpinBox * SB_TurnTime;
- QSpinBox * SB_InitHealth;
- QSpinBox * SB_SuddenDeath;
- QSpinBox * SB_WaterRise;
- QSpinBox * SB_HealthDecrease;
- FreqSpinBox * SB_CaseProb;
- QSpinBox * SB_HealthCrates;
- QSpinBox * SB_CrateHealth;
- QSpinBox * SB_MinesTime;
- QSpinBox * SB_Mines;
- QSpinBox * SB_MineDuds;
- QSpinBox * SB_Explosives;
- QSpinBox * SB_RopeModifier;
- QSpinBox * SB_GetAwayTime;
- QLineEdit * LE_name;
-
- QGroupBox * gbGameModes;
- QGroupBox * gbBasicSettings;
-
-private slots:
- void schemeSelected(int);
-
-};
-
-#endif
--- a/QTfrontend/pageselectweapon.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QComboBox>
-
-#include "pageselectweapon.h"
-#include "hwconsts.h"
-#include "selectWeapon.h"
-
-PageSelectWeapon::PageSelectWeapon(QWidget* parent) :
- AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
-
- pWeapons = new SelWeaponWidget(cAmmoNumber, this);
- pageLayout->addWidget(pWeapons, 0, 0, 1, 5);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, 2, 1, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- BtnDefault = addButton(tr("Default"), pageLayout, 1, 3);
- BtnNew = addButton(tr("New"), pageLayout, 1, 2);
- BtnCopy = addButton(tr("Copy"), pageLayout, 2, 2);
- BtnDelete = addButton(tr("Delete"), pageLayout, 2, 3);
- BtnSave = addButton(":/res/Save.png", pageLayout, 1, 4, 2, 1, true);
- BtnSave->setStyleSheet("QPushButton{margin: 24px 0px 0px 0px;}");
- BtnBack->setFixedHeight(BtnSave->height());
- BtnBack->setStyleSheet("QPushButton{margin-top: 31px;}");
-
- selectWeaponSet = new QComboBox(this);
- pageLayout->addWidget(selectWeaponSet, 1, 1, 2, 1);
-
- connect(BtnDefault, SIGNAL(clicked()), pWeapons, SLOT(setDefault()));
- connect(BtnSave, SIGNAL(clicked()), pWeapons, SLOT(save()));
- connect(BtnNew, SIGNAL(clicked()), pWeapons, SLOT(newWeaponsName()));
- connect(BtnCopy, SIGNAL(clicked()), pWeapons, SLOT(copy()));
- connect(selectWeaponSet, SIGNAL(currentIndexChanged(const QString&)), pWeapons, SLOT(setWeaponsName(const QString&)));
-}
--- a/QTfrontend/pageselectweapon.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_SELECTWEAPON_H
-#define PAGE_SELECTWEAPON_H
-
-#include "AbstractPage.h"
-
-class SelWeaponWidget;
-
-class PageSelectWeapon : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageSelectWeapon(QWidget* parent = 0);
-
- QPushButton *BtnSave;
- QPushButton *BtnDefault;
- QPushButton *BtnDelete;
- QPushButton *BtnNew;
- QPushButton *BtnCopy;
- SelWeaponWidget* pWeapons;
- QComboBox* selectWeaponSet;
-
-private:
- QPushButton *BtnBack;
-};
-
-#endif
--- a/QTfrontend/pagesingleplayer.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-
-#include "pagesingleplayer.h"
-#include "gamecfgwidget.h"
-
-PageSinglePlayer::PageSinglePlayer(QWidget* parent) : AbstractPage(parent)
-{
- QVBoxLayout * vLayout = new QVBoxLayout(this);
- QHBoxLayout * topLine = new QHBoxLayout();
- QHBoxLayout * middleLine = new QHBoxLayout();
- QHBoxLayout * bottomLine = new QHBoxLayout();
- vLayout->addStretch();
- vLayout->addLayout(topLine);
- vLayout->addSpacing(30);
- vLayout->addLayout(middleLine);
- vLayout->addStretch();
- vLayout->addLayout(bottomLine);
-
- topLine->addStretch();
- BtnSimpleGamePage = addButton(":/res/SimpleGame.png", topLine, 0, true);
- BtnSimpleGamePage->setToolTip(tr("Simple Game (a quick game against the computer, settings are chosen for you)"));
- topLine->addSpacing(60);
- BtnMultiplayer = addButton(":/res/Multiplayer.png", topLine, 1, true);
- BtnMultiplayer->setToolTip(tr("Multiplayer (play a hotseat game against your friends, or AI teams)"));
- topLine->addStretch();
-
-
- BtnCampaignPage = addButton(":/res/Campaign.png", middleLine, 0, true);
- BtnCampaignPage->setToolTip(tr("Campaign Mode (...). IN DEVELOPMENT"));
- BtnCampaignPage->setVisible(false);
-
- BtnTrainPage = addButton(":/res/Trainings.png", middleLine, 1, true);
- BtnTrainPage->setToolTip(tr("Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT"));
-
-
- BtnBack = addButton(":/res/Exit.png", bottomLine, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-
-
- bottomLine->addStretch();
-
- BtnDemos = addButton(":/res/Record.png", bottomLine, 1, true);
- BtnDemos->setToolTip(tr("Demos (Watch recorded demos)"));
- BtnLoad = addButton(":/res/Save.png", bottomLine, 2, true);
- BtnLoad->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
- BtnLoad->setToolTip(tr("Load (Load a previously saved game)"));
- BtnBack->setFixedHeight(BtnLoad->height());
- BtnBack->setStyleSheet("QPushButton{margin-top: 31px;}");
-}
--- a/QTfrontend/pagesingleplayer.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_SINGLE_PLAYER_H
-#define PAGE_SINGLE_PLAYER_H
-
-#include "AbstractPage.h"
-
-class GameCFGWidget;
-
-class PageSinglePlayer : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageSinglePlayer(QWidget* parent = 0);
-
- QPushButton *BtnSimpleGamePage;
- QPushButton *BtnTrainPage;
- QPushButton *BtnCampaignPage;
- QPushButton *BtnMultiplayer;
- QPushButton *BtnLoad;
- QPushButton *BtnDemos;
- GameCFGWidget *gameCFG;
-
-private:
- QPushButton *BtnBack;
-};
-
-#endif
-
--- a/QTfrontend/pagetraining.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QComboBox>
-
-#include "pagetraining.h"
-#include "hwconsts.h"
-
-PageTraining::PageTraining(QWidget* parent) : AbstractPage(parent)
-{
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->setColumnStretch(0, 1);
- pageLayout->setColumnStretch(1, 2);
- pageLayout->setColumnStretch(2, 1);
- pageLayout->setRowStretch(0, 1);
- pageLayout->setRowStretch(2, 1);
-
- CBSelect = new QComboBox(this);
-
- QDir tmpdir;
- tmpdir.cd(cfgdir->absolutePath());
- tmpdir.cd("Data/Missions/Training");
- tmpdir.setFilter(QDir::Files);
- QStringList userlist = tmpdir.entryList(QStringList("*.lua")).replaceInStrings(QRegExp("^(.*)\\.lua"), "\\1");
- CBSelect->addItems(userlist);
-
- tmpdir.cd(datadir->absolutePath());
- tmpdir.cd("Missions/Training");
- tmpdir.setFilter(QDir::Files);
- QStringList tmplist = tmpdir.entryList(QStringList("*.lua")).replaceInStrings(QRegExp("^(.*)\\.lua"), "\\1");
- QStringList datalist;
- for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
- if (!userlist.contains(*it,Qt::CaseInsensitive)) datalist.append(*it);
- CBSelect->addItems(datalist);
-
- for(int i = 0; i < CBSelect->count(); i++)
- {
- CBSelect->setItemData(i, CBSelect->itemText(i));
- CBSelect->setItemText(i, CBSelect->itemText(i).replace("_", " "));
- }
-
- pageLayout->addWidget(CBSelect, 1, 1);
-
- BtnStartTrain = new QPushButton(this);
- BtnStartTrain->setFont(*font14);
- BtnStartTrain->setText(QPushButton::tr("Go!"));
- pageLayout->addWidget(BtnStartTrain, 1, 2);
-
-
- BtnBack = addButton(":/res/Exit.png", pageLayout, 3, 0, true);
- connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
--- a/QTfrontend/pagetraining.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_TRAINING_H
-#define PAGE_TRAINING_H
-
-#include "AbstractPage.h"
-
-class PageTraining : public AbstractPage
-{
- Q_OBJECT
-
-public:
- PageTraining(QWidget* parent = 0);
-
- QPushButton *BtnStartTrain;
- QComboBox *CBSelect;
-
-private:
- QPushButton *BtnBack;
-};
-
-#endif
-
--- a/QTfrontend/proto.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "proto.h"
-
-HWProto::HWProto()
-{
-
-}
-
-QByteArray & HWProto::addByteArrayToBuffer(QByteArray & buf, const QByteArray & msg)
-{
- QByteArray bmsg = msg;
- bmsg = bmsg.left(250);
- quint8 sz = bmsg.size();
- buf.append(QByteArray((char *)&sz, 1));
- buf.append(bmsg);
- return buf;
-}
-
-QByteArray & HWProto::addStringToBuffer(QByteArray & buf, const QString & string)
-{
- return addByteArrayToBuffer(buf, string.toUtf8());
-}
-
-QByteArray & HWProto::addStringListToBuffer(QByteArray & buf, const QStringList & strList)
-{
- for (int i = 0; i < strList.size(); i++)
- addStringToBuffer(buf, strList[i]);
- return buf;
-}
-
-QString HWProto::formatChatMsgForFrontend(const QString & msg)
-{
- return formatChatMsg("|nick|", msg);
-}
-
-QString HWProto::formatChatMsg(const QString & nick, const QString & msg)
-{
- if(msg.left(4) == "/me ")
- return QString("\x02* %1 %2").arg(nick).arg(msg.mid(4));
- else
- return QString("\x01%1: %2").arg(nick).arg(msg);
-}
--- a/QTfrontend/proto.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _PROTO_H
-#define _PROTO_H
-
-#include <QByteArray>
-#include <QString>
-#include <QStringList>
-
-
-class HWProto : public QObject
-{
- Q_OBJECT
-
-public:
- HWProto();
- static QByteArray & addStringToBuffer(QByteArray & buf, const QString & string);
- static QByteArray & addByteArrayToBuffer(QByteArray & buf, const QByteArray & msg);
- static QByteArray & addStringListToBuffer(QByteArray & buf, const QStringList & strList);
- static QString formatChatMsg(const QString & nick, const QString & msg);
- static QString formatChatMsgForFrontend(const QString & msg);
-};
-
-#endif // _PROTO_H
--- a/QTfrontend/qaspectratiolayout.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation.
- */
-
-#include "qaspectratiolayout.h"
-
-QAspectRatioLayout::QAspectRatioLayout(QWidget* parent, int spacing) : QLayout(parent) {
- init(spacing);
-}
-
-QAspectRatioLayout::QAspectRatioLayout(int spacing) {
- init(spacing);
-}
-
-QAspectRatioLayout::~QAspectRatioLayout() {
- delete item;
- delete lastReceivedRect;
- delete _geometry;
-}
-
-void QAspectRatioLayout::init(int spacing) {
- item = 0;
- lastReceivedRect = new QRect(0, 0, 0, 0);
- _geometry = new QRect(0, 0, 0, 0);
- setSpacing(spacing);
-}
-
-
-/* Adds item if place isn't already taken. */
-void QAspectRatioLayout::add(QLayoutItem* item) {
- if(!hasItem()) {
- replaceItem(item);
- }
-}
-
-/* Adds item if place isn't already taken. */
-void QAspectRatioLayout::addItem(QLayoutItem* item) {
- if(!hasItem()) {
- replaceItem(item);
- }
-}
-
-/* Adds widget if place isn't already taken. */
-void QAspectRatioLayout::addWidget(QWidget* widget) {
- if(!hasItem()) {
- replaceItem(new QWidgetItem(widget));
- }
-}
-
-/* Returns the item pointer and dereferences it here. */
-QLayoutItem* QAspectRatioLayout::take() {
- QLayoutItem* item = 0;
- if(this->hasItem()) {
- item = this->item;
- this->item = 0;
- }
- return item;
-}
-
-/* Returns the item pointer and dereferences it here. */
-QLayoutItem* QAspectRatioLayout::takeAt(int index) {
- if(index != 0) {
- return 0;
- }
- return this->take();
-}
-
-/* Returns the item pointer. */
-QLayoutItem* QAspectRatioLayout::itemAt(int index) const {
- if(index != 0) {
- return 0;
- }
- if(hasItem()) {
- return this->item;
- }
- return 0;
-}
-
-/* Checks if we have an item. */
-bool QAspectRatioLayout::hasItem() const {
- return this->item != 0;
-}
-
-/* Returns the count of items which can be either 0 or 1. */
-int QAspectRatioLayout::count() const {
- int returnValue = 0;
- if(hasItem()) {
- returnValue = 1;
- }
- return returnValue;
-}
-
-/* Replaces the item with the new and returns the old. */
-QLayoutItem* QAspectRatioLayout::replaceItem(QLayoutItem* item) {
- QLayoutItem* old = 0;
- if(this->hasItem()) {
- old = this->item;
- }
- this->item = item;
- setGeometry(*this->_geometry);
- return old;
-}
-
-/* Tells which way layout expands. */
-Qt::Orientations QAspectRatioLayout::expandingDirections() const {
- return Qt::Horizontal | Qt::Vertical;
-}
-
-/* Tells which size is preferred. */
-QSize QAspectRatioLayout::sizeHint() const {
- return this->item->minimumSize();
-}
-
-/* Tells minimum size. */
-QSize QAspectRatioLayout::minimumSize() const {
- return this->item->minimumSize();
-}
-
-/*
- * Tells if heightForWidth calculations is handled.
- * It isn't since width isn't enough to calculate
- * proper size.
- */
-bool QAspectRatioLayout::hasHeightForWidth() const {
- return false;
-}
-
-/* Replaces lastReceivedRect. */
-void QAspectRatioLayout::setLastReceivedRect(const QRect& rect) {
- QRect* oldRect = this->lastReceivedRect;
- this->lastReceivedRect = new QRect(rect.topLeft(), rect.size());
- delete oldRect;
-}
-
-/* Returns geometry */
-QRect QAspectRatioLayout::geometry() {
- return QRect(*this->_geometry);
-}
-
-/* Sets geometry to given size. */
-void QAspectRatioLayout::setGeometry(const QRect& rect) {
- /*
- * We check if the item is set and
- * if size is the same previously received.
- * If either is false nothing is done.
- */
- if(!this->hasItem() ||
- areRectsEqual(*this->lastReceivedRect, rect)) {
- return;
- }
- /* Replace the last received rectangle. */
- setLastReceivedRect(rect);
- /* Calculate proper size for the item relative to the received size. */
- QSize properSize = calculateProperSize(rect.size());
- /* Calculate center location in the rect and with item size. */
- QPoint properLocation = calculateCenterLocation(rect.size(), properSize);
- /* Set items geometry */
- this->item->setGeometry(QRect(properLocation, properSize));
- QRect* oldRect = this->_geometry;
- /* Cache the calculated geometry. */
- this->_geometry = new QRect(properLocation, properSize);
- delete oldRect;
- /* Super classes setGeometry */
- QLayout::setGeometry(*this->_geometry);
-}
-
-/* Takes the shortest side and creates QSize
- * with the shortest side as width and height. */
-QSize QAspectRatioLayout::calculateProperSize(QSize from) const {
- QSize properSize;
- if(from.height() * 2 < from.width()) {
- properSize.setHeight(from.height() - this->margin());
- properSize.setWidth(from.height() * 2 - this->margin());
- }
- else {
- properSize.setWidth(from.width() - this->margin());
- properSize.setHeight(from.width() / 2 - this->margin());
- }
- return properSize;
-}
-
-/* Calculates center location from the given height and width for item size. */
-QPoint QAspectRatioLayout::calculateCenterLocation(QSize from,
- QSize itemSize) const {
- QPoint centerLocation;
- if((from.width() - itemSize.width()) > 0) {
- centerLocation.setX((from.width() - itemSize.width())/2);
- }
- if((from.height() - itemSize.height()) > 0) {
- centerLocation.setY((from.height() - itemSize.height())/2);
- }
- return centerLocation;
-}
-
-/* Compares if two QRects are equal. */
-bool QAspectRatioLayout::areRectsEqual(const QRect& a,
- const QRect& b) const {
- bool result = false;
- if(a.x() == b.x() &&
- a.y() == b.y() &&
- a.height() == b.height() &&
- a.width() == b.width()) {
- result = true;
- }
- return result;
-}
--- a/QTfrontend/qaspectratiolayout.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation.
- */
-
-#ifndef QASPECTRATIOLAYOUT_H_
-#define QASPECTRATIOLAYOUT_H_
-
-#include <QLayout>
-#include <QPointer>
-#include <QRect>
-#include <QWidgetItem>
-#include <QLayoutItem>
-
-
-class QAspectRatioLayout : public QLayout
-{
- Q_OBJECT
-
-public:
- QAspectRatioLayout(QWidget* parent, int spacing =-1);
- QAspectRatioLayout(int spacing = -1);
- ~QAspectRatioLayout();
-
- /* Convenience method */
- virtual void add(QLayoutItem* item);
-
-/* http://doc.trolltech.com/qlayout.html#addItem */
- virtual void addItem(QLayoutItem* item);
- /* http://doc.trolltech.com/qlayout.html#addWidget */
- virtual void addWidget(QWidget* widget);
- /* http://doc.trolltech.com/qlayout.html#takeAt */
- virtual QLayoutItem* takeAt(int index);
- /* http://doc.trolltech.com/qlayout.html#itemAt */
- virtual QLayoutItem* itemAt(int index) const;
- /* http://doc.trolltech.com/qlayout.html#count */
- virtual int count() const;
-
- /*
- * These are ours since we do have only one item.
- */
- virtual QLayoutItem* replaceItem(QLayoutItem* item);
- virtual QLayoutItem* take();
- virtual bool hasItem() const;
-
-/* http://doc.trolltech.com/qlayout.html#expandingDirections */
- virtual Qt::Orientations expandingDirections() const;
-
- /*
- * This method contains most of the juice of this article.
- * http://doc.trolltech.com/qlayoutitem.html#setGeometry
- */
- virtual void setGeometry(const QRect& rect);
- /* http://doc.trolltech.com/qlayoutitem.html#geometry */
- virtual QRect geometry();
-
- /* http://doc.trolltech.com/qlayoutitem.html#sizeHint */
- virtual QSize sizeHint() const;
- /* http://doc.trolltech.com/qlayout.html#minimumSize */
- virtual QSize minimumSize() const;
- /* http://doc.trolltech.com/qlayoutitem.html#hasHeightForWidth */
- virtual bool hasHeightForWidth() const;
-
-private:
- /* Saves the last received rect. */
- void setLastReceivedRect(const QRect& rect);
- /* Used to initialize the object. */
- void init(int spacing);
- /* Calculates the maximum size for the item from the assigned size. */
- QSize calculateProperSize(QSize from) const;
- /* Calculates the center location from the assigned size and
- * the items size. */
- QPoint calculateCenterLocation(QSize from, QSize itemSize) const;
- /* Check if two QRects are equal */
- bool areRectsEqual(const QRect& a, const QRect& b) const;
- /* Contains item reference */
- QLayoutItem* item;
- /*
- * Used for caching so we won't do calculations every time
- * setGeometry is called.
- */
- QRect* lastReceivedRect;
- /* Contains geometry */
- QRect* _geometry;
-
-};
-
-#endif /* QASPECTRATIOLAYOUT_H_ */
Binary file QTfrontend/res/Load.png has changed
Binary file QTfrontend/res/Trainings.png has changed
Binary file QTfrontend/res/btnAISurvival.png has changed
Binary file QTfrontend/res/btnAISurvival@2x.png has changed
Binary file QTfrontend/res/btnArtillery.png has changed
Binary file QTfrontend/res/btnArtillery@2x.png has changed
Binary file QTfrontend/res/btnBorder.png has changed
Binary file QTfrontend/res/btnBorder@2x.png has changed
Binary file QTfrontend/res/btnBottomBorder.png has changed
Binary file QTfrontend/res/btnBottomBorder@2x.png has changed
Binary file QTfrontend/res/btnDisableGirders.png has changed
Binary file QTfrontend/res/btnDisableGirders@2x.png has changed
Binary file QTfrontend/res/btnDisableLandObjects.png has changed
Binary file QTfrontend/res/btnDisableLandObjects@2x.png has changed
Binary file QTfrontend/res/btnDisabled.png has changed
Binary file QTfrontend/res/btnForts.png has changed
Binary file QTfrontend/res/btnForts@2x.png has changed
Binary file QTfrontend/res/btnInfAttack.png has changed
Binary file QTfrontend/res/btnInfAttack@2x.png has changed
Binary file QTfrontend/res/btnInvulnerable.png has changed
Binary file QTfrontend/res/btnInvulnerable@2x.png has changed
Binary file QTfrontend/res/btnKarma.png has changed
Binary file QTfrontend/res/btnKarma@2x.png has changed
Binary file QTfrontend/res/btnKing.png has changed
Binary file QTfrontend/res/btnKing@2x.png has changed
Binary file QTfrontend/res/btnLaserSight.png has changed
Binary file QTfrontend/res/btnLaserSight@2x.png has changed
Binary file QTfrontend/res/btnLowGravity.png has changed
Binary file QTfrontend/res/btnLowGravity@2x.png has changed
Binary file QTfrontend/res/btnMoreWind.png has changed
Binary file QTfrontend/res/btnMoreWind@2x.png has changed
Binary file QTfrontend/res/btnNoWind.png has changed
Binary file QTfrontend/res/btnNoWind@2x.png has changed
Binary file QTfrontend/res/btnOverlay.png has changed
Binary file QTfrontend/res/btnOverlay@2x.png has changed
Binary file QTfrontend/res/btnPerHogAmmo.png has changed
Binary file QTfrontend/res/btnPerHogAmmo@2x.png has changed
Binary file QTfrontend/res/btnPlaceHog.png has changed
Binary file QTfrontend/res/btnPlaceHog@2x.png has changed
Binary file QTfrontend/res/btnRandomOrder.png has changed
Binary file QTfrontend/res/btnRandomOrder@2x.png has changed
Binary file QTfrontend/res/btnResetHealth.png has changed
Binary file QTfrontend/res/btnResetHealth@2x.png has changed
Binary file QTfrontend/res/btnResetWeps.png has changed
Binary file QTfrontend/res/btnResetWeps@2x.png has changed
Binary file QTfrontend/res/btnSharedAmmo.png has changed
Binary file QTfrontend/res/btnSharedAmmo@2x.png has changed
Binary file QTfrontend/res/btnSolid.png has changed
Binary file QTfrontend/res/btnSolid@2x.png has changed
Binary file QTfrontend/res/btnTagTeam.png has changed
Binary file QTfrontend/res/btnTagTeam@2x.png has changed
Binary file QTfrontend/res/btnTeamsDivide.png has changed
Binary file QTfrontend/res/btnTeamsDivide@2x.png has changed
Binary file QTfrontend/res/btnVampiric.png has changed
Binary file QTfrontend/res/btnVampiric@2x.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/res/css/chat.css Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,76 @@
+
+/******************************************************************************
+ *
+ * CSS-like definition of chat appearance
+ *
+ ******************************************************************************
+ *
+ * see http://doc.qt.nokia.com/4.5/richtext-html-subset.html#css-properties
+ *
+ * In the QTfrontend of hedgewars also display:none; will work for class names
+ * that start with msg_ and .TimeStamp - as long as they are referenced
+ * directly and not within any hierachy.
+ *
+ ******************************************************************************
+ *
+ * This file can be stored at different locations, but it will be read only
+ * once, based on first file found in this order:
+ *
+ * <userdir>/Data/css/chat.css
+ * <datadir>/css/chat.css
+ * <internal default style-sheet>
+ *
+ *****************************************************************************/
+
+/* links */
+a { color:#c8c8ff; }
+
+/* appearance of the whole chat */
+/* body { color: white; background-color: #000000; } */
+
+/* appearance of all elements in chat */
+/* * { color: white; background-color: #000000; } */
+
+/* nick names (they are also sometimes linked) */
+.nick { text-decoration: none; }
+
+/* various chat messages */
+.msg_UserChat { color:#ffcc00; } /* chat of people who aren't your friends */
+.msg_UserChat .nick { color:#ffec20; }
+.msg_FriendChat { color: #b0ff08; }
+.msg_FriendChat .nick { color: #30ff30; }
+.msg_UserJoin { color: #c0c0c0; }
+.msg_UserJoin .nick { color: #d0d0d0; }
+.msg_FriendJoin { font-weight: bold; color: #c0f0c0; }
+.msg_FriendJoin .nick { color: #d8f0d8; }
+.msg_UserAction { color: #ff80ff; }
+.msg_UserAction .nick { color: #ffa0ff;}
+.msg_FriendAction { color: #ff00ff; }
+.msg_FriendAction .nick { color: #ff30ff; }
+
+/* timestamps */
+.timestamp {
+ color: #e0d8e0;
+ font-family: courier;
+ font-size: 11px;
+ vertical-align: center;
+ /* uncomment next line to hide timestamps */
+ /* display: none; */
+}
+
+/* you can also set timestamp style for different msg types */
+.msg_FriendChat .timestamp { color: #ffffff; }
+
+/* messages that contain your nickname */
+.highlight { }
+.highlight .nick { color: red; } /* nicknames in highlighted messages */
+
+/* uncomment next line to disable join and leave messages of non-friends */
+/* .msg_UserJoin { display:none; } */
+
+/* system messages */
+.msg_Error { color: #ff0000; }
+.msg_Warning { color: #ff8000; }
+.msg_Notice { color: #fefefe; }
+.msg_Notice .nick { color: #ffffd0; }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/res/css/qt.css Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,246 @@
+/******************************************************************************
+ *
+ * CSS-like definition of Qt frontend appearance
+ *
+ ******************************************************************************
+ *
+ * see http://doc.qt.nokia.com/4.5/stylesheet.html
+ *
+ ******************************************************************************
+ *
+ * This file can be stored at different locations, but it will be read only
+ * once, based on first file found in this order:
+ *
+ * <userdir>/Data/css/qt.css
+ * <datadir>/css/qt.css
+ * <internal default style-sheet> (:/res/css/qt.css)
+ *
+ *****************************************************************************/
+
+HWForm,QDialog {
+background-image: url(":/res/Background.png");
+background-position: bottom center;
+background-repeat: repeat-x;
+background-color: #141250;
+}
+
+* {
+color: #ffcc00;
+selection-background-color: #ffcc00;
+selection-color: #00351d;
+}
+
+QLineEdit, QListWidget, QTableView, QTextBrowser, QSpinBox, QComboBox,
+QComboBox QAbstractItemView, QMenu::item {
+background-color: rgba(13, 5, 68, 70%);
+}
+
+QComboBox::separator {
+border: solid; border-width: 3px; border-color: #ffcc00;
+}
+
+QPushButton, QListWidget, QTableView, QLineEdit, QHeaderView,
+QTextBrowser, QSpinBox, QToolBox, QComboBox,
+QComboBox QAbstractItemView, IconedGroupBox,
+.QGroupBox, GameCFGWidget, TeamSelWidget, SelWeaponWidget,
+QTabWidget::pane, QTabBar::tab {
+border: solid;
+border-width: 3px;
+border-color: #ffcc00;
+}
+
+QPushButton:hover, QLineEdit:hover, QListWidget:hover,
+QSpinBox:hover, QToolBox:hover, QComboBox:hover {
+border-color: yellow;
+}
+
+QLineEdit, QListWidget,QTableView, QTextBrowser,
+QSpinBox, QToolBox {
+border-radius: 10px;
+}
+
+QLineEdit, QLabel, QHeaderView, QListWidget, QTableView,
+QSpinBox, QToolBox::tab, QComboBox, QComboBox QAbstractItemView,
+IconedGroupBox, .QGroupBox, GameCFGWidget, TeamSelWidget,
+SelWeaponWidget, QCheckBox, QRadioButton, QPushButton {
+font: bold 13px;
+}
+SelWeaponWidget QTabWidget::pane, SelWeaponWidget QTabBar::tab:selected {
+background-position: bottom center;
+background-repeat: repeat-x;
+background-color: #000000;
+}
+.QGroupBox,GameCFGWidget,TeamSelWidget,SelWeaponWidget {
+background-position: bottom center;
+background-repeat: repeat-x;
+border-radius: 16px;
+background-color: rgba(13, 5, 68, 70%);
+padding: 6px;
+}
+/* Experimenting with PaintOnScreen and border-radius on IconedGroupBox children didn't work out well
+IconedGroupBox QComboBox, IconedGroupBox QPushButton, IconedGroupBox QLineEdit,
+IconedGroupBox QSpinBox {
+border-radius: 0;
+}
+IconedGroupBox, IconedGroupBox *, QTabWidget::pane, QTabBar::tab:selected, QToolBox::tab QWidget{" */
+IconedGroupBox, QTabWidget::pane, QTabBar::tab:selected, QToolBox::tab QWidget{
+background-color: #130f2c;
+}
+
+
+QPushButton {
+border-radius: 8px;
+background-origin: margin;
+background-position: top left;
+background-color: rgba(18, 42, 5, 70%);
+}
+
+QPushButton:pressed{
+border-color: white;
+}
+
+QPushButton:focus {
+outline: none;
+}
+
+
+QHeaderView {
+border-radius: 0;
+border-width: 0;
+border-bottom-width: 3px;
+background-color: #00351d;
+}
+QTableView {
+alternate-background-color: #2f213a;
+gridline-color: transparent;
+}
+
+QTabBar::tab {
+border-bottom-width: 0;
+border-radius: 0;
+border-top-left-radius: 6px;
+border-top-right-radius: 6px;
+padding: 3px;
+}
+QTabBar::tab:!selected {
+color: #0d0544;
+background-color: #ffcc00;
+}
+QSpinBox::up-button{
+background: transparent;
+width: 16px;
+height: 10px;
+}
+
+QSpinBox::up-arrow {
+image: url(":/res/spin_up.png");
+}
+
+QSpinBox::down-arrow {
+image: url(":/res/spin_down.png");
+}
+
+QSpinBox::down-button {
+background: transparent;
+width: 16px;
+height: 10px;
+}
+
+QComboBox {
+border-radius: 10px;
+padding: 3px;
+}
+QComboBox:pressed{
+border-color: white;
+}
+QComboBox::drop-down{
+border: transparent;
+width: 25px;
+}
+QComboBox::down-arrow {
+image: url(":/res/dropdown.png");
+}
+
+VertScrArea {
+background-position: bottom center;
+background-repeat: repeat-x;
+}
+
+IconedGroupBox {
+border-radius: 16px;
+padding: 2px;
+}
+
+QGroupBox::title{
+subcontrol-origin: margin;
+subcontrol-position: top left;
+text-align: left;
+left: 15px;
+top: -4px;
+}
+
+QCheckBox::indicator:checked{
+image: url(":/res/checked.png");
+}
+QCheckBox::indicator:unchecked{
+image: url(":/res/unchecked.png");
+}
+
+.QWidget{
+background: transparent;
+}
+
+QTabWidget::pane {
+border-top-width: 2px;
+}
+
+QMenu{
+background-color: #ffcc00;
+margin: 3px;
+}
+QMenu::item {
+background-color: #0d0544;
+border: 1px solid transparent;
+font: bold;
+padding: 2px 25px 2px 20px;
+}
+QMenu::item:selected {
+background-color: #2d2564;
+}
+QMenu::indicator {
+width: 16px;
+height: 16px;
+}
+QMenu::indicator:non-exclusive:checked{
+image: url(":/res/checked.png");
+}
+QMenu::indicator:non-exclusive:unchecked{
+image: url(":/res/unchecked.png");
+}
+
+QToolTip{
+background-color: #0d0544;
+border: 1px solid #ffcc00;
+}
+
+:disabled{
+color: #a0a0a0;
+}
+SquareLabel, ItemNum {
+background-color: #000000;
+}
+
+QSlider::groove::horizontal {
+height: 2px;
+margin: 2px 0px;
+background-color: #ffcc00;
+}
+
+QSlider::handle::horizontal {
+border: 0px;
+margin: -2px 0px;
+border-radius: 3px;
+background-color: #ffcc00;
+width: 8px;
+}
+
--- a/QTfrontend/selectWeapon.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "selectWeapon.h"
-#include "weaponItem.h"
-#include "hwconsts.h"
-
-#include <QPushButton>
-#include <QGridLayout>
-#include <QHBoxLayout>
-#include <QLabel>
-#include <QBitmap>
-#include <QLineEdit>
-#include <QSettings>
-#include <QMessageBox>
-#include <QTabWidget>
-#include <math.h>
-
-QImage getAmmoImage(int num)
-{
- static QImage ammo(":Ammos.png");
- int x = num/(ammo.height()/32);
- int y = (num-((ammo.height()/32)*x))*32;
- x*=32;
- return ammo.copy(x, y, 32, 32);
-}
-
-SelWeaponItem::SelWeaponItem(bool allowInfinite, int iconNum, int wNum, QImage image, QImage imagegrey, QWidget* parent) :
- QWidget(parent)
-{
- QHBoxLayout* hbLayout = new QHBoxLayout(this);
- hbLayout->setSpacing(1);
- hbLayout->setMargin(1);
-
- QLabel* lbl = new QLabel(this);
- lbl->setPixmap(QPixmap::fromImage(getAmmoImage(iconNum)));
- lbl->setMaximumWidth(30);
- lbl->setGeometry(0, 0, 30, 30);
- hbLayout->addWidget(lbl);
-
- item = new WeaponItem(image, imagegrey, this);
- item->setItemsNum(wNum);
- item->setInfinityState(allowInfinite);
- hbLayout->addWidget(item);
-
- hbLayout->setStretchFactor(lbl, 1);
- hbLayout->setStretchFactor(item, 99);
- hbLayout->setAlignment(lbl, Qt::AlignLeft | Qt::AlignVCenter);
- hbLayout->setAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
-}
-
-void SelWeaponItem::setItemsNum(const unsigned char num)
-{
- item->setItemsNum(num);
-}
-
-unsigned char SelWeaponItem::getItemsNum() const
-{
- return item->getItemsNum();
-}
-
-void SelWeaponItem::setEnabled(bool value)
-{
- item->setEnabled(value);
-}
-
-SelWeaponWidget::SelWeaponWidget(int numItems, QWidget* parent) :
- QFrame(parent),
- m_numItems(numItems)
-{
- wconf = new QSettings(cfgdir->absolutePath() + "/weapons.ini", QSettings::IniFormat, this);
-
- for(int i = 0; i < cDefaultAmmos.size(); ++i)
- wconf->setValue(cDefaultAmmos[i].first, cDefaultAmmos[i].second);
-
- QStringList keys = wconf->allKeys();
- for(int i = 0; i < keys.size(); i++)
- {
- if (wconf->value(keys[i]).toString().size() != cDefaultAmmoStore->size())
- wconf->remove(keys[i]);
- }
-
- QString currentState = *cDefaultAmmoStore;
-
- QTabWidget * tbw = new QTabWidget(this);
- QWidget * page1 = new QWidget(this);
- p1Layout = new QGridLayout(page1);
- p1Layout->setSpacing(1);
- p1Layout->setMargin(1);
- QWidget * page2 = new QWidget(this);
- p2Layout = new QGridLayout(page2);
- p2Layout->setSpacing(1);
- p2Layout->setMargin(1);
- QWidget * page3 = new QWidget(this);
- p3Layout = new QGridLayout(page3);
- p3Layout->setSpacing(1);
- p3Layout->setMargin(1);
- QWidget * page4 = new QWidget(this);
- p4Layout = new QGridLayout(page4);
- p4Layout->setSpacing(1);
- p4Layout->setMargin(1);
-
- tbw->addTab(page1, tr("Weapon set"));
- tbw->addTab(page2, tr("Probabilities"));
- tbw->addTab(page4, tr("Ammo in boxes"));
- tbw->addTab(page3, tr("Delays"));
-
- QGridLayout * pageLayout = new QGridLayout(this);
- pageLayout->addWidget(tbw);
-
-
- int j = -1;
- int i = 0, k = 0;
- for(; i < m_numItems; ++i) {
- if (i == 6) continue;
- if (i == 52) continue; // Disable structures for now
- if (k % 4 == 0) ++j;
- SelWeaponItem * swi = new SelWeaponItem(true, i, currentState[i].digitValue(), QImage(":/res/ammopic.png"), QImage(":/res/ammopicgrey.png"), this);
- weaponItems[i].append(swi);
- p1Layout->addWidget(swi, j, k % 4);
-
- SelWeaponItem * pwi = new SelWeaponItem(false, i, currentState[numItems + i].digitValue(), QImage(":/res/ammopicbox.png"), QImage(":/res/ammopicboxgrey.png"), this);
- weaponItems[i].append(pwi);
- p2Layout->addWidget(pwi, j, k % 4);
-
- SelWeaponItem * dwi = new SelWeaponItem(false, i, currentState[numItems*2 + i].digitValue(), QImage(":/res/ammopicdelay.png"), QImage(":/res/ammopicdelaygrey.png"), this);
- weaponItems[i].append(dwi);
- p3Layout->addWidget(dwi, j, k % 4);
-
- SelWeaponItem * awi = new SelWeaponItem(false, i, currentState[numItems*3 + i].digitValue(), QImage(":/res/ammopic.png"), QImage(":/res/ammopicgrey.png"), this);
- weaponItems[i].append(awi);
- p4Layout->addWidget(awi, j, k % 4);
-
- ++k;
- }
-
- //pLayout->setRowStretch(5, 100);
- m_name = new QLineEdit(this);
- pageLayout->addWidget(m_name, i, 0, 1, 5);
-}
-
-void SelWeaponWidget::setWeapons(const QString& ammo)
-{
- bool enable = true;
- for(int i = 0; i < cDefaultAmmos.size(); i++)
- if (!cDefaultAmmos[i].first.compare(m_name->text())) {
- enable = false;
- }
- for(int i = 0; i < m_numItems; ++i) {
- twi::iterator it = weaponItems.find(i);
- if (it == weaponItems.end()) continue;
- it.value()[0]->setItemsNum(ammo[i].digitValue());
- it.value()[1]->setItemsNum(ammo[m_numItems + i].digitValue());
- it.value()[2]->setItemsNum(ammo[m_numItems*2 + i].digitValue());
- it.value()[3]->setItemsNum(ammo[m_numItems*3 + i].digitValue());
- it.value()[0]->setEnabled(enable);
- it.value()[1]->setEnabled(enable);
- it.value()[2]->setEnabled(enable);
- it.value()[3]->setEnabled(enable);
- }
- m_name->setEnabled(enable);
-}
-
-void SelWeaponWidget::setDefault()
-{
- for(int i = 0; i < cDefaultAmmos.size(); i++)
- if (!cDefaultAmmos[i].first.compare(m_name->text())) {
- return;
- }
- setWeapons(*cDefaultAmmoStore);
-}
-
-void SelWeaponWidget::save()
-{
- for(int i = 0; i < cDefaultAmmos.size(); i++)
- if (!cDefaultAmmos[i].first.compare(m_name->text())) {
- QMessageBox::warning(0, QMessageBox::tr("Weapons"), QMessageBox::tr("Can not overwrite default weapon set '%1'!").arg(cDefaultAmmos[i].first));
- return;
- }
-
- if (m_name->text() == "") return;
-
- QString state1;
- QString state2;
- QString state3;
- QString state4;
-
- for(int i = 0; i < m_numItems; ++i) {
- twi::const_iterator it = weaponItems.find(i);
- int num = it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum(); // 9 is for 'skip turn'
- state1.append(QString::number(num));
- int prob = it == weaponItems.end() ? 0 : it.value()[1]->getItemsNum();
- state2.append(QString::number(prob));
- int del = it == weaponItems.end() ? 0 : it.value()[2]->getItemsNum();
- state3.append(QString::number(del));
- int am = it == weaponItems.end() ? 0 : it.value()[3]->getItemsNum();
- state4.append(QString::number(am));
- }
- if (curWeaponsName != "") {
- // remove old entry
- wconf->remove(curWeaponsName);
- }
- wconf->setValue(m_name->text(), state1 + state2 + state3 + state4);
- emit weaponsChanged();
-}
-
-int SelWeaponWidget::operator [] (unsigned int weaponIndex) const
-{
- twi::const_iterator it = weaponItems.find(weaponIndex);
- return it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum();
-}
-
-QString SelWeaponWidget::getWeaponsString(const QString& name) const
-{
- return wconf->value(name).toString();
-}
-
-void SelWeaponWidget::deleteWeaponsName()
-{
- if (curWeaponsName == "") return;
-
- for(int i = 0; i < cDefaultAmmos.size(); i++)
- if (!cDefaultAmmos[i].first.compare(m_name->text())) {
- QMessageBox::warning(0, QMessageBox::tr("Weapons"), QMessageBox::tr("Can not delete default weapon set '%1'!").arg(cDefaultAmmos[i].first));
- return;
- }
-
- QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Weapons"), QMessageBox::tr("Really delete this weapon set?"), QMessageBox::Ok | QMessageBox::Cancel);
-
- if (reallyDelete.exec() == QMessageBox::Ok) {
- wconf->remove(curWeaponsName);
- emit weaponsDeleted();
- }
-}
-
-void SelWeaponWidget::newWeaponsName()
-{
- QString newName = tr("new");
- if(wconf->contains(newName)) {
- //name already used -> look for an appropriate name:
- int i=2;
- while(wconf->contains(newName = tr("new")+QString::number(i++)));
- }
- setWeaponsName(newName);
-}
-
-void SelWeaponWidget::setWeaponsName(const QString& name)
-{
- m_name->setText(name);
-
- curWeaponsName = name;
-
- if(name != "" && wconf->contains(name)) {
- setWeapons(wconf->value(name).toString());
- } else {
- setWeapons(*cDefaultAmmoStore);
- }
-}
-
-QStringList SelWeaponWidget::getWeaponNames() const
-{
- return wconf->allKeys();
-}
-
-void SelWeaponWidget::copy()
-{
- if(wconf->contains(curWeaponsName)) {
- QString ammo = getWeaponsString(curWeaponsName);
- QString newName = tr("copy of") + " " + curWeaponsName;
- if(wconf->contains(newName)) {
- //name already used -> look for an appropriate name:
- int i=2;
- while(wconf->contains(newName = tr("copy of") + " " + curWeaponsName+QString::number(i++)));
- }
- setWeaponsName(newName);
- setWeapons(ammo);
- }
-}
--- a/QTfrontend/selectWeapon.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _SELECT_WEAPON_INCLUDED
-#define _SELECT_WEAPON_INCLUDED
-
-#include <QFrame>
-#include <QMap>
-#include <QList>
-
-class QGridLayout;
-class WeaponItem;
-class QLineEdit;
-class QSettings;
-
-class SelWeaponItem : public QWidget
-{
- Q_OBJECT
-
-public:
- SelWeaponItem(bool allowInfinite, int iconNum, int wNum, QImage image, QImage imagegrey, QWidget* parent=0);
-
- unsigned char getItemsNum() const;
- void setItemsNum(const unsigned char num);
- void setEnabled(bool value);
-
- private:
- WeaponItem* item;
-};
-
-class SelWeaponWidget : public QFrame
-{
- Q_OBJECT
-
- public:
- SelWeaponWidget(int numItems, QWidget* parent=0);
- QString getWeaponsString(const QString& name) const;
- QStringList getWeaponNames() const;
-
- public slots:
- void setDefault();
- void setWeapons(const QString& ammo);
- //sets the name of the current set
- void setWeaponsName(const QString& name);
- void deleteWeaponsName();
- void newWeaponsName();
- void save();
- void copy();
-
- signals:
- void weaponsChanged();
- void weaponsDeleted();
-
- private:
- //the name of the current weapon set
- QString curWeaponsName;
-
- QLineEdit* m_name;
-
- //storage for all the weapons sets
- QSettings* wconf;
-
- const int m_numItems;
- int operator [] (unsigned int weaponIndex) const;
-
- typedef QList<SelWeaponItem*> ItemsList;
- typedef QMap<int, ItemsList> twi;
- twi weaponItems;
- //layout element for each tab:
- QGridLayout* p1Layout;
- QGridLayout* p2Layout;
- QGridLayout* p3Layout;
- QGridLayout* p4Layout;
-};
-
-#endif // _SELECT_WEAPON_INCLUDED
--- a/QTfrontend/tcpBase.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "tcpBase.h"
-
-#include <QMessageBox>
-#include <QList>
-
-#include <QImage>
-
-#include "hwconsts.h"
-
-QList<TCPBase*> srvsList;
-QPointer<QTcpServer> TCPBase::IPCServer(0);
-
-TCPBase::~TCPBase()
-{
-}
-
-TCPBase::TCPBase(bool demoMode) :
- m_isDemoMode(demoMode),
- IPCSocket(0)
-{
- if(!IPCServer) {
- IPCServer = new QTcpServer(0);
- IPCServer->setMaxPendingConnections(1);
- if (!IPCServer->listen(QHostAddress::LocalHost)) {
- QMessageBox::critical(0, tr("Error"),
- tr("Unable to start the server: %1.")
- .arg(IPCServer->errorString()));
- exit(0); // FIXME - should be graceful exit here
- }
- }
- ipc_port=IPCServer->serverPort();
-}
-
-void TCPBase::NewConnection()
-{
- if(IPCSocket) {
- // connection should be already finished
- return;
- }
- disconnect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection()));
- IPCSocket = IPCServer->nextPendingConnection();
- if(!IPCSocket) return;
- connect(IPCSocket, SIGNAL(disconnected()), this, SLOT(ClientDisconnect()));
- connect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
- SendToClientFirst();
-}
-
-void TCPBase::RealStart()
-{
- connect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection()));
- IPCSocket = 0;
-
- QProcess * process;
- process = new QProcess;
- connect(process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(StartProcessError(QProcess::ProcessError)));
- QStringList arguments=getArguments();
-
- // redirect everything written on stdout/stderr
- if(isDevBuild)
- process->setProcessChannelMode(QProcess::ForwardedChannels);
- process->start(bindir->absolutePath() + "/hwengine", arguments);
-}
-
-void TCPBase::ClientDisconnect()
-{
- disconnect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
- onClientDisconnect();
-
- if(srvsList.size()==1) srvsList.pop_front();
- emit isReadyNow();
- IPCSocket->deleteLater();
- deleteLater();
-}
-
-void TCPBase::ClientRead()
-{
- QByteArray readed=IPCSocket->readAll();
- if(readed.isEmpty()) return;
- readbuffer.append(readed);
- onClientRead();
-}
-
-void TCPBase::StartProcessError(QProcess::ProcessError error)
-{
- QMessageBox::critical(0, tr("Error"),
- tr("Unable to run engine: %1 (")
- .arg(error) + bindir->absolutePath() + "/hwengine)");
-}
-
-void TCPBase::tcpServerReady()
-{
- disconnect(srvsList.takeFirst(), SIGNAL(isReadyNow()), this, SLOT(tcpServerReady()));
-
- RealStart();
-}
-
-void TCPBase::Start()
-{
- if(srvsList.isEmpty()) {
- srvsList.push_back(this);
- } else {
- connect(srvsList.back(), SIGNAL(isReadyNow()), this, SLOT(tcpServerReady()));
- srvsList.push_back(this);
- return;
- }
-
- RealStart();
-}
-
-void TCPBase::onClientRead()
-{
-}
-
-void TCPBase::onClientDisconnect()
-{
-}
-
-void TCPBase::SendToClientFirst()
-{
-}
-
-void TCPBase::SendIPC(const QByteArray & buf)
-{
- if (buf.size() > MAXMSGCHARS) return;
- quint8 len = buf.size();
- RawSendIPC(QByteArray::fromRawData((char *)&len, 1) + buf);
-}
-
-void TCPBase::RawSendIPC(const QByteArray & buf)
-{
- if (!IPCSocket)
- {
- toSendBuf += buf;
- } else
- {
- if (toSendBuf.size() > 0)
- {
- IPCSocket->write(toSendBuf);
- if(m_isDemoMode) demo.append(toSendBuf);
- toSendBuf.clear();
- }
- if(!buf.isEmpty()) {
- IPCSocket->write(buf);
- if(m_isDemoMode) demo.append(buf);
- }
- }
-}
--- a/QTfrontend/tcpBase.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _TCPBASE_INCLUDED
-#define _TCPBASE_INCLUDED
-
-#include <QObject>
-#include <QTcpServer>
-#include <QTcpSocket>
-#include <QByteArray>
-#include <QString>
-#include <QDir>
-#include <QProcess>
-#include <QPointer>
-
-#include <QImage>
-
-#define MAXMSGCHARS 255
-
-class TCPBase : public QObject
-{
- Q_OBJECT
-
- public:
- TCPBase(bool demoMode);
- virtual ~TCPBase();
-
- signals:
- void isReadyNow();
-
- protected:
- quint16 ipc_port;
-
- void Start();
-
- QByteArray readbuffer;
-
- QByteArray toSendBuf;
- QByteArray demo;
-
- void SendIPC(const QByteArray & buf);
- void RawSendIPC(const QByteArray & buf);
-
- virtual QStringList getArguments()=0;
- virtual void onClientRead();
- virtual void onClientDisconnect();
- virtual void SendToClientFirst();
-
- private:
- static QPointer<QTcpServer> IPCServer;
-
- bool m_isDemoMode;
- void RealStart();
- QPointer<QTcpSocket> IPCSocket;
-
- private slots:
- void NewConnection();
- void ClientDisconnect();
- void ClientRead();
- void StartProcessError(QProcess::ProcessError error);
-
- void tcpServerReady();
-};
-
-#endif // _TCPBASE_INCLUDED
--- a/QTfrontend/team.cpp Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/team.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -25,13 +25,13 @@
#include "team.h"
#include "hwform.h"
-#include "pageeditteam.h"
#include "hats.h"
HWTeam::HWTeam(const QString & teamname) :
- m_difficulty(0),
- m_numHedgehogs(4),
- m_isNetTeam(false)
+ QObject(0)
+ , m_difficulty(0)
+ , m_numHedgehogs(4)
+ , m_isNetTeam(false)
{
m_name = teamname;
OldTeamName = m_name;
@@ -46,8 +46,8 @@
m_flag = "hedgewars";
for(int i = 0; i < BINDS_NUMBER; i++)
{
- binds[i].action = cbinds[i].action;
- binds[i].strbind = cbinds[i].strbind;
+ m_binds[i].action = cbinds[i].action;
+ m_binds[i].strbind = cbinds[i].strbind;
}
m_rounds = 0;
m_wins = 0;
@@ -55,8 +55,9 @@
}
HWTeam::HWTeam(const QStringList& strLst) :
- m_numHedgehogs(4),
- m_isNetTeam(true)
+ QObject(0)
+ , m_numHedgehogs(4)
+ , m_isNetTeam(true)
{
// net teams are configured from QStringList
if(strLst.size() != 23) throw HWTeamConstructException();
@@ -81,9 +82,10 @@
}
HWTeam::HWTeam() :
- m_difficulty(0),
- m_numHedgehogs(4),
- m_isNetTeam(false)
+ QObject(0)
+ , m_difficulty(0)
+ , m_numHedgehogs(4)
+ , m_isNetTeam(false)
{
m_name = QString("Team");
for (int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
@@ -99,14 +101,61 @@
for(int i = 0; i < BINDS_NUMBER; i++)
{
- binds[i].action = cbinds[i].action;
- binds[i].strbind = cbinds[i].strbind;
+ m_binds[i].action = cbinds[i].action;
+ m_binds[i].strbind = cbinds[i].strbind;
}
m_rounds = 0;
m_wins = 0;
m_campaignProgress = 0;
}
+HWTeam::HWTeam(const HWTeam & other) :
+ QObject(0)
+ , OldTeamName(other.OldTeamName)
+ , m_name(other.m_name)
+ , m_grave(other.m_grave)
+ , m_fort(other.m_fort)
+ , m_flag(other.m_flag)
+ , m_voicepack(other.m_voicepack)
+ , m_hedgehogs(other.m_hedgehogs)
+ , m_difficulty(other.m_difficulty)
+ , m_binds(other.m_binds)
+ , m_numHedgehogs(other.m_numHedgehogs)
+ , m_color(other.m_color)
+ , m_isNetTeam(other.m_isNetTeam)
+ , m_owner(other.m_owner)
+ , m_campaignProgress(other.m_campaignProgress)
+ , m_rounds(other.m_rounds)
+ , m_wins(other.m_wins)
+// , AchievementProgress(other.AchievementProgress)
+{
+
+}
+
+HWTeam & HWTeam::operator = (const HWTeam & other)
+{
+ if(this != &other)
+ {
+ OldTeamName = other.OldTeamName;
+ m_name = other.m_name;
+ m_grave = other.m_grave;
+ m_fort = other.m_fort;
+ m_flag = other.m_flag;
+ m_voicepack = other.m_voicepack;
+// m_hedgehogs = other.m_hedgehogs;
+ m_difficulty = other.m_difficulty;
+// m_binds = other.m_binds;
+ m_numHedgehogs = other.m_numHedgehogs;
+ m_color = other.m_color;
+ m_isNetTeam = other.m_isNetTeam;
+ m_owner = other.m_owner;
+ m_campaignProgress = other.m_campaignProgress;
+ m_rounds = other.m_rounds;
+ m_wins = other.m_wins;
+ }
+
+ return *this;
+}
bool HWTeam::loadFromFile()
{
@@ -132,7 +181,7 @@
m_hedgehogs[i].Suicides = teamfile.value(hh + "Suicides", 0).toInt();
}
for(int i = 0; i < BINDS_NUMBER; i++)
- binds[i].strbind = teamfile.value(QString("Binds/%1").arg(binds[i].action), cbinds[i].strbind).toString();
+ m_binds[i].strbind = teamfile.value(QString("Binds/%1").arg(m_binds[i].action), cbinds[i].strbind).toString();
for(int i = 0; i < MAX_ACHIEVEMENTS; i++)
if(achievements[i][0][0])
AchievementProgress[i] = teamfile.value(QString("Achievements/%1").arg(achievements[i][0]), 0).toUInt();
@@ -186,7 +235,7 @@
teamfile.setValue(hh + "Suicides", m_hedgehogs[i].Suicides);
}
for(int i = 0; i < BINDS_NUMBER; i++)
- teamfile.setValue(QString("Binds/%1").arg(binds[i].action), binds[i].strbind);
+ teamfile.setValue(QString("Binds/%1").arg(m_binds[i].action), m_binds[i].strbind);
for(int i = 0; i < MAX_ACHIEVEMENTS; i++)
if(achievements[i][0][0])
teamfile.setValue(QString("Achievements/%1").arg(achievements[i][0]), AchievementProgress[i]);
@@ -195,54 +244,6 @@
return true;
}
-void HWTeam::SetToPage(HWForm * hwform)
-{
- hwform->ui.pageEditTeam->TeamNameEdit->setText(m_name);
- hwform->ui.pageEditTeam->CBTeamLvl->setCurrentIndex(m_difficulty);
- for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
- {
- hwform->ui.pageEditTeam->HHNameEdit[i]->setText(m_hedgehogs[i].Name);
- if (m_hedgehogs[i].Hat.startsWith("Reserved"))
- hwform->ui.pageEditTeam->HHHats[i]->setCurrentIndex(hwform->ui.pageEditTeam->HHHats[i]->findData("Reserved "+m_hedgehogs[i].Hat.remove(0,40), Qt::DisplayRole));
- else
- hwform->ui.pageEditTeam->HHHats[i]->setCurrentIndex(hwform->ui.pageEditTeam->HHHats[i]->findData(m_hedgehogs[i].Hat, Qt::DisplayRole));
- }
- hwform->ui.pageEditTeam->CBGrave->setCurrentIndex(hwform->ui.pageEditTeam->CBGrave->findText(m_grave));
- hwform->ui.pageEditTeam->CBFlag->setCurrentIndex(hwform->ui.pageEditTeam->CBFlag->findData(m_flag));
-
- hwform->ui.pageEditTeam->CBFort->setCurrentIndex(hwform->ui.pageEditTeam->CBFort->findText(m_fort));
- hwform->ui.pageEditTeam->CBVoicepack->setCurrentIndex(hwform->ui.pageEditTeam->CBVoicepack->findText(m_voicepack));
- //hwform->ui.pageEditTeam->CBFort_activated(Fort);
-
- for(int i = 0; i < BINDS_NUMBER; i++)
- {
- hwform->ui.pageEditTeam->CBBind[i]->setCurrentIndex(hwform->ui.pageEditTeam->CBBind[i]->findData(binds[i].strbind));
- }
-}
-
-void HWTeam::GetFromPage(HWForm * hwform)
-{
- m_name = hwform->ui.pageEditTeam->TeamNameEdit->text();
- m_difficulty = hwform->ui.pageEditTeam->CBTeamLvl->currentIndex();
- for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
- {
- m_hedgehogs[i].Name = hwform->ui.pageEditTeam->HHNameEdit[i]->text();
- if (hwform->ui.pageEditTeam->HHHats[i]->currentText().startsWith("Reserved"))
- m_hedgehogs[i].Hat = "Reserved"+playerHash+hwform->ui.pageEditTeam->HHHats[i]->currentText().remove(0,9);
- else
- m_hedgehogs[i].Hat = hwform->ui.pageEditTeam->HHHats[i]->currentText();
- }
-
- m_grave = hwform->ui.pageEditTeam->CBGrave->currentText();
- m_fort = hwform->ui.pageEditTeam->CBFort->currentText();
- m_voicepack = hwform->ui.pageEditTeam->CBVoicepack->currentText();
- m_flag = hwform->ui.pageEditTeam->CBFlag->itemData(hwform->ui.pageEditTeam->CBFlag->currentIndex()).toString();
- for(int i = 0; i < BINDS_NUMBER; i++)
- {
- binds[i].strbind = hwform->ui.pageEditTeam->CBBind[i]->itemData(hwform->ui.pageEditTeam->CBBind[i]->currentIndex()).toString();
- }
-}
-
QStringList HWTeam::teamGameConfig(quint32 InitHealth) const
{
QStringList sl;
@@ -260,8 +261,8 @@
if (!m_isNetTeam)
for(int i = 0; i < BINDS_NUMBER; i++)
- if(!binds[i].strbind.isEmpty())
- sl.push_back(QString("ebind " + binds[i].strbind + " " + binds[i].action));
+ if(!m_binds[i].strbind.isEmpty())
+ sl.push_back(QString("ebind " + m_binds[i].strbind + " " + m_binds[i].action));
for (int t = 0; t < m_numHedgehogs; t++)
{
@@ -299,7 +300,7 @@
// single hedgehog
const HWHog & HWTeam::hedgehog(unsigned int idx) const { return m_hedgehogs[idx]; }
- void HWTeam::setHedgehog(unsigned int idx, const HWHog & hh) { m_hedgehogs[idx] = hh; }
+ void HWTeam::setHedgehog(unsigned int idx, HWHog hh) { m_hedgehogs[idx] = hh; }
// owner
QString HWTeam::owner() const { return m_owner; }
@@ -315,6 +316,9 @@
void HWTeam::setColor(const QColor & color) { m_color = color; }
+// binds
+QString HWTeam::keyBind(unsigned int idx) const { return m_binds[idx].strbind; }
+ void HWTeam::bindKey(unsigned int idx, const QString & key) { m_binds[idx].strbind = key; }
// flag
void HWTeam::setFlag(const QString & flag) { m_flag = flag; }
--- a/QTfrontend/team.h Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/team.h Fri Oct 28 18:26:17 2011 +0200
@@ -42,16 +42,20 @@
};
// class representing a team
-class HWTeam
+class HWTeam : public QObject
{
+ Q_OBJECT
+
public:
// constructors
HWTeam(const QString & teamname);
HWTeam(const QStringList& strLst);
HWTeam();
+ HWTeam(const HWTeam & other);
// file operations
+ static HWTeam loadFromFile(const QString & teamName);
bool loadFromFile();
bool deleteFile();
bool saveToFile();
@@ -66,18 +70,20 @@
QString grave() const;
const HWHog & hedgehog(unsigned int idx) const;
bool isNetTeam() const;
+ QString keyBind(unsigned int idx) const;
QString name() const;
unsigned char numHedgehogs() const;
QString owner() const;
QString voicepack() const;
// attribute setters
+ void bindKey(unsigned int idx, const QString & key);
void setColor(const QColor & color);
void setDifficulty(unsigned int level);
void setFlag(const QString & flag);
void setFort(const QString & fort);
void setGrave(const QString & grave);
- void setHedgehog(unsigned int idx, const HWHog & hh);
+ void setHedgehog(unsigned int idx, HWHog hh);
void setName(const QString & name);
void setNumHedgehogs(unsigned char num);
void setVoicepack(const QString & voicepack);
@@ -86,17 +92,13 @@
void incRounds();
void incWins();
- // pages... wait... wth is THIS doing in this class? FIXME!!!!
- void SetToPage(HWForm * hwform);
- void GetFromPage(HWForm * hwform);
-
// convert team info into strings for further computation
QStringList teamGameConfig(quint32 InitHealth) const;
// comparison operators
- bool operator==(const HWTeam& t1) const;
- bool operator<(const HWTeam& t1) const;
-
+ bool operator == (const HWTeam& t1) const;
+ bool operator < (const HWTeam& t1) const;
+ HWTeam & operator = (const HWTeam & other);
private:
@@ -110,11 +112,11 @@
QString m_flag;
QString m_voicepack;
HWHog m_hedgehogs[HEDGEHOGS_PER_TEAM];
- unsigned int m_difficulty;
- BindAction binds[BINDS_NUMBER];
+ quint8 m_difficulty;
+ BindAction m_binds[BINDS_NUMBER];
// class members that contain info for the current game setup
- unsigned char m_numHedgehogs;
+ quint8 m_numHedgehogs;
QColor m_color;
bool m_isNetTeam;
QString m_owner;
@@ -124,8 +126,6 @@
unsigned int m_rounds;
unsigned int m_wins;
unsigned int AchievementProgress[MAX_ACHIEVEMENTS];
-
-
};
#endif
--- a/QTfrontend/teamselect.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <algorithm>
-
-#include <QLabel>
-#include <QPixmap>
-#include <QPushButton>
-#include <QFrame>
-#include <QDebug>
-
-#include "vertScrollArea.h"
-#include "teamselect.h"
-#include "teamselhelper.h"
-#include "frameTeam.h"
-
-void TeamSelWidget::addTeam(HWTeam team)
-{
- if(team.isNetTeam()) {
- framePlaying->addTeam(team, true);
- curPlayingTeams.push_back(team);
- connect(framePlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
- this, SLOT(netTeamStatusChanged(const HWTeam&)));
- connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)),
- this, SLOT(hhNumChanged(const HWTeam&)));
- dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged();
- connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)),
- this, SLOT(proxyTeamColorChanged(const HWTeam&)));
- } else {
- frameDontPlaying->addTeam(team, false);
- m_curNotPlayingTeams.push_back(team);
- if(m_acceptOuter) {
- connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
- this, SLOT(pre_changeTeamStatus(HWTeam)));
- } else {
- connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
- this, SLOT(changeTeamStatus(HWTeam)));
- }
- }
- emit setEnabledGameStart(curPlayingTeams.size()>1);
-}
-
-void TeamSelWidget::setInteractivity(bool interactive)
-{
- framePlaying->setInteractivity(interactive);
-}
-
-void TeamSelWidget::hhNumChanged(const HWTeam& team)
-{
- QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
- if(itPlay==curPlayingTeams.end())
- {
- qWarning() << QString("hhNumChanged: team '%1' not found").arg(team.name());
- return;
- }
- itPlay->setNumHedgehogs(team.numHedgehogs());
- emit hhogsNumChanged(team);
-}
-
-void TeamSelWidget::proxyTeamColorChanged(const HWTeam& team)
-{
- QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
- if(itPlay==curPlayingTeams.end())
- {
- qWarning() << QString("proxyTeamColorChanged: team '%1' not found").arg(team.name());
- return;
- }
- itPlay->setColor(team.color());
- emit teamColorChanged(team);
-}
-
-void TeamSelWidget::changeHHNum(const HWTeam& team)
-{
- QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
- if(itPlay==curPlayingTeams.end())
- {
- qWarning() << QString("changeHHNum: team '%1' not found").arg(team.name());
- return;
- }
- itPlay->setNumHedgehogs(team.numHedgehogs());
-
- framePlaying->setHHNum(team);
-}
-
-void TeamSelWidget::changeTeamColor(const HWTeam& team)
-{
- QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
- if(itPlay==curPlayingTeams.end())
- {
- qWarning() << QString("changeTeamColor: team '%1' not found").arg(team.name());
- return;
- }
- itPlay->setColor(team.color());
-
- framePlaying->setTeamColor(team);
-}
-
-void TeamSelWidget::removeNetTeam(const HWTeam& team)
-{
- //qDebug() << QString("removeNetTeam: removing team '%1'").arg(team.TeamName);
- for(;;) {
- QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
- if(itPlay==curPlayingTeams.end())
- {
- qWarning() << QString("removeNetTeam: team '%1' not found").arg(team.name());
- break;
- }
- if(itPlay->isNetTeam()) {
- QObject::disconnect(framePlaying->getTeamWidget(*itPlay), SIGNAL(teamStatusChanged(HWTeam)));
- framePlaying->removeTeam(team);
- curPlayingTeams.erase(itPlay);
- break;
- }
- }
- emit setEnabledGameStart(curPlayingTeams.size()>1);
-}
-
-void TeamSelWidget::netTeamStatusChanged(const HWTeam& team)
-{
- QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
-
-}
-
-//void TeamSelWidget::removeTeam(__attribute__ ((unused)) HWTeam team)
-//{
- //curDontPlayingTeams.erase(std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team));
-//}
-
-void TeamSelWidget::changeTeamStatus(HWTeam team)
-{
- QList<HWTeam>::iterator itDontPlay=std::find(m_curNotPlayingTeams.begin(), m_curNotPlayingTeams.end(), team);
- QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
-
- bool willBePlaying=itDontPlay!=m_curNotPlayingTeams.end();
-
- if(!willBePlaying) {
- // playing team => dont playing
- m_curNotPlayingTeams.push_back(*itPlay);
- emit teamNotPlaying(*itPlay);
- curPlayingTeams.erase(itPlay);
- } else {
- // return if max playing teams reached
- if(framePlaying->isFullTeams()) return;
- // dont playing team => playing
- team=*itDontPlay; // for net team info saving in framePlaying (we have only name with netID from network)
- itDontPlay->setColor(framePlaying->getNextColor());
- curPlayingTeams.push_back(*itDontPlay);
- if(!m_acceptOuter) emit teamWillPlay(*itDontPlay);
- m_curNotPlayingTeams.erase(itDontPlay);
- }
-
- FrameTeams* pRemoveTeams;
- FrameTeams* pAddTeams;
- if(!willBePlaying) {
- pRemoveTeams=framePlaying;
- pAddTeams=frameDontPlaying;
- } else {
- pRemoveTeams=frameDontPlaying;
- pAddTeams=framePlaying;
- }
-
- pAddTeams->addTeam(team, willBePlaying);
- pRemoveTeams->removeTeam(team);
- if(!team.isNetTeam() && m_acceptOuter && !willBePlaying) {
- connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
- this, SLOT(pre_changeTeamStatus(HWTeam)));
- } else {
- connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
- this, SLOT(changeTeamStatus(HWTeam)));
- }
- if(willBePlaying) {
- connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)),
- this, SLOT(hhNumChanged(const HWTeam&)));
- dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged();
- connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)),
- this, SLOT(proxyTeamColorChanged(const HWTeam&)));
- emit teamColorChanged(((TeamShowWidget*)framePlaying->getTeamWidget(team))->getTeam());
- }
-
- QSize szh=pAddTeams->sizeHint();
- QSize szh1=pRemoveTeams->sizeHint();
- if(szh.isValid() && szh1.isValid()) {
- pAddTeams->resize(pAddTeams->size().width(), szh.height());
- pRemoveTeams->resize(pRemoveTeams->size().width(), szh1.height());
- }
-
- emit setEnabledGameStart(curPlayingTeams.size()>1);
-}
-
-void TeamSelWidget::addScrArea(FrameTeams* pfteams, QColor color, int fixedHeight)
-{
- VertScrArea* area = new VertScrArea(color);
- area->setWidget(pfteams);
- mainLayout.addWidget(area, 30);
- if (fixedHeight > 0)
- {
- area->setMinimumHeight(fixedHeight);
- area->setMaximumHeight(fixedHeight);
- area->setStyleSheet(
- "FrameTeams{"
- "border: solid;"
- "border-width: 1px;"
- "border-radius: 16px;"
- "border-color: #ffcc00;"
- "}"
- );
- }
-}
-
-TeamSelWidget::TeamSelWidget(QWidget* parent) :
- QGroupBox(parent), mainLayout(this), m_acceptOuter(false)
-{
- setTitle(QGroupBox::tr("Playing teams"));
- framePlaying = new FrameTeams();
- frameDontPlaying = new FrameTeams();
-
- QPalette p;
- p.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
- addScrArea(framePlaying, p.color(QPalette::Window).light(105), 250);
- addScrArea(frameDontPlaying, p.color(QPalette::Window).dark(105), 0);
-}
-
-void TeamSelWidget::setAcceptOuter(bool acceptOuter)
-{
- m_acceptOuter=acceptOuter;
-}
-
-void TeamSelWidget::resetPlayingTeams(const QList<HWTeam>& teamslist)
-{
- //for(it=curPlayingTeams.begin(); it!=curPlayingTeams.end(); it++) {
- //framePlaying->removeTeam(*it);
- //}
- framePlaying->resetTeams();
- framePlaying->resetColors();
- curPlayingTeams.clear();
- //for(it=curDontPlayingTeams.begin(); it!=curDontPlayingTeams.end(); it++) {
- //frameDontPlaying->removeTeam(*it);
- //}
- frameDontPlaying->resetTeams();
- m_curNotPlayingTeams.clear();
-
- foreach(HWTeam team, teamslist)
- addTeam(team);
-}
-
-bool TeamSelWidget::isPlaying(HWTeam team) const
-{
- return std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team)!=curPlayingTeams.end();
-}
-
-QList<HWTeam> TeamSelWidget::getPlayingTeams() const
-{
- return curPlayingTeams;
-}
-
-QList<HWTeam> TeamSelWidget::getNotPlayingTeams() const
-{
- return m_curNotPlayingTeams;
-}
-
-void TeamSelWidget::pre_changeTeamStatus(HWTeam team)
-{
- team.setColor(framePlaying->getNextColor());
- emit acceptRequested(team);
-}
--- a/QTfrontend/teamselect.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _TEAM_SELECT_INCLUDED
-#define _TEAM_SELECT_INCLUDED
-
-#include <QGroupBox>
-#include <QVBoxLayout>
-#include <QColor>
-#include <QMultiMap>
-
-#include "team.h"
-
-class TeamSelWidget;
-class FrameTeams;
-class QFrame;
-class QPushButton;
-
-using namespace std;
-
-class TeamSelWidget : public QGroupBox
-{
- Q_OBJECT
-
- public:
- TeamSelWidget(QWidget* parent);
- void setAcceptOuter(bool acceptOuter);
- void removeNetTeam(const HWTeam& team);
- void resetPlayingTeams(const QList<HWTeam>& teamslist);
- bool isPlaying(HWTeam team) const;
- QList<HWTeam> getPlayingTeams() const;
- QList<HWTeam> getNotPlayingTeams() const;
- void setInteractivity(bool interactive);
-
- public slots:
- void addTeam(HWTeam team);
- void netTeamStatusChanged(const HWTeam& team);
- void changeHHNum(const HWTeam&);
- void changeTeamColor(const HWTeam&);
- void changeTeamStatus(HWTeam team);
-
- signals:
- void setEnabledGameStart(bool);
- void teamWillPlay(HWTeam team);
- void teamNotPlaying(const HWTeam& team);
- void hhogsNumChanged(const HWTeam&);
- void teamColorChanged(const HWTeam&);
- void acceptRequested(HWTeam team);
-
- private slots:
- void pre_changeTeamStatus(HWTeam);
- void hhNumChanged(const HWTeam& team);
- void proxyTeamColorChanged(const HWTeam& team);
-
- private:
- void addScrArea(FrameTeams* pfteams, QColor color, int maxHeight);
- FrameTeams* frameDontPlaying;
- FrameTeams* framePlaying;
-
- QVBoxLayout mainLayout;
- bool m_acceptOuter;
-
- QList<HWTeam> curPlayingTeams;
- QList<HWTeam> m_curNotPlayingTeams;
-};
-
-#endif // _TEAM_SELECT_INCLUDED
--- a/QTfrontend/teamselhelper.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QPixmap>
-#include <QPainter>
-#include <QStyleFactory>
-
-#include <algorithm>
-
-#include "teamselhelper.h"
-#include "hwconsts.h"
-#include "frameTeam.h"
-
-void TeamLabel::teamButtonClicked()
-{
- emit teamActivated(text());
-}
-
-TeamShowWidget::TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent) :
- QWidget(parent), mainLayout(this), m_team(team), m_isPlaying(isPlaying), phhoger(0),
- colorButt(0)
-{
- QPalette newPalette = palette();
- newPalette.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
- setPalette(newPalette);
- setAutoFillBackground(true);
-
- mainLayout.setSpacing(3);
- mainLayout.setMargin(0);
- this->setMaximumHeight(38);
- this->setMinimumHeight(38);
- QIcon difficultyIcon=team.isNetTeam() ?
- QIcon(QString(":/res/botlevels/net%1.png").arg(m_team.difficulty()))
- : QIcon(QString(":/res/botlevels/%1.png").arg(m_team.difficulty()));
-
- butt = new QPushButton(difficultyIcon, team.name().replace("&","&&"), this);
- butt->setFlat(true);
- butt->setToolTip(team.owner());
- mainLayout.addWidget(butt);
- butt->setStyleSheet("QPushButton{"
- "icon-size: 48px;"
- "text-align: left;"
- "background-color: #0d0544;"
- "color: orange;"
- "font: bold;"
- "border-width: 2px;"
- "margin: 6px 0px 6px 0px;"
- "}");
-
- if(m_isPlaying) {
- // team color
- colorButt = new QPushButton(this);
- colorButt->setMaximumWidth(26);
- colorButt->setMinimumHeight(26);
- colorButt->setGeometry(0, 0, 26, 26);
-
- changeTeamColor();
- connect(colorButt, SIGNAL(clicked()), this, SLOT(changeTeamColor()));
- mainLayout.addWidget(colorButt);
-
- phhoger = new CHedgehogerWidget(QImage(":/res/hh25x25.png"), QImage(":/res/hh25x25grey.png"), this);
- connect(phhoger, SIGNAL(hedgehogsNumChanged()), this, SLOT(hhNumChanged()));
- phhoger->setHHNum(team.numHedgehogs());
- mainLayout.addWidget(phhoger);
- } else {
- }
-
- QObject::connect(butt, SIGNAL(clicked()), this, SLOT(activateTeam()));
- //QObject::connect(bText, SIGNAL(clicked()), this, SLOT(activateTeam()));
-}
-
-void TeamShowWidget::setInteractivity(bool interactive)
-{
- if(m_team.isNetTeam()) {
- butt->setEnabled(interactive);
- }
-
- colorButt->setEnabled(interactive);
- phhoger->setEnabled(interactive);
-}
-
-void TeamShowWidget::setHHNum(unsigned int num)
-{
- phhoger->setHHNum(num);
-}
-
-void TeamShowWidget::hhNumChanged()
-{
- m_team.setNumHedgehogs(phhoger->getHedgehogsNum());
- emit hhNmChanged(m_team);
-}
-
-void TeamShowWidget::activateTeam()
-{
- emit teamStatusChanged(m_team);
-}
-
-/*HWTeamTempParams TeamShowWidget::getTeamParams() const
-{
- if(!phhoger) throw;
- HWTeamTempParams params;
- params.numHedgehogs=phhoger->getHedgehogsNum();
- params.teamColor=colorButt->palette().color(QPalette::Button);
- return params;
-}*/
-
-void TeamShowWidget::changeTeamColor(QColor color)
-{
- FrameTeams* pOurFrameTeams=dynamic_cast<FrameTeams*>(parentWidget());
- if(!color.isValid()) {
- if(++pOurFrameTeams->currentColor==pOurFrameTeams->availableColors.end()) {
- pOurFrameTeams->currentColor=pOurFrameTeams->availableColors.begin();
- }
- color=*pOurFrameTeams->currentColor;
- } else {
- // set according color iterator
- pOurFrameTeams->currentColor=std::find(pOurFrameTeams->availableColors.begin(),
- pOurFrameTeams->availableColors.end(), color);
- if(pOurFrameTeams->currentColor==pOurFrameTeams->availableColors.end()) {
- // error condition
- pOurFrameTeams->currentColor=pOurFrameTeams->availableColors.begin();
- }
- }
-
- colorButt->setStyleSheet(QString("QPushButton{"
- "background-color: %1;"
- "border-width: 1px;"
- "border-radius: 2px;"
- "}").arg(pOurFrameTeams->currentColor->name()));
-
- m_team.setColor(color);
- emit teamColorChanged(m_team);
-}
-
-HWTeam TeamShowWidget::getTeam() const
-{
- return m_team;
-}
--- a/QTfrontend/teamselhelper.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _TEAMSEL_HELPER_INCLUDED
-#define _TEAMSEL_HELPER_INCLUDED
-
-#include <QLabel>
-#include <QWidget>
-#include <QString>
-#include <QPushButton>
-
-#include "teamselect.h"
-#include "hedgehogerWidget.h"
-
-class TeamLabel : public QLabel
-{
- Q_OBJECT
-
- public:
- TeamLabel(const QString& inp_str) : QLabel(inp_str) {};
-
- signals:
- void teamActivated(QString team_name);
-
- public slots:
- void teamButtonClicked();
-
-};
-
-class TeamShowWidget : public QWidget
-{
- Q_OBJECT
-
- public slots:
- void changeTeamColor(QColor color=QColor());
- void hhNumChanged();
-
- private slots:
- void activateTeam();
-
- public:
- TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent);
- void setPlaying(bool isPlaying);
- void setHHNum(unsigned int num);
- void setInteractivity(bool interactive);
- HWTeam getTeam() const;
-
- private:
- TeamShowWidget();
- QHBoxLayout mainLayout;
- HWTeam m_team;
- bool m_isPlaying;
- CHedgehogerWidget* phhoger;
- QPushButton* colorButt;
- QPushButton* butt;
-// QPushButton* bText;
-
- signals:
- void teamStatusChanged(HWTeam team);
- void hhNmChanged(const HWTeam&);
- void teamColorChanged(const HWTeam&);
-};
-
-#endif // _TEAMSEL_HELPER_INCLUDED
--- a/QTfrontend/themesmodel.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-
-#include "themesmodel.h"
-
-ThemesModel::ThemesModel(QStringList themes, QObject *parent) :
- QAbstractListModel(parent)
-{
-#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
- m_data.reserve(themes.size());
-#endif
-
- foreach(QString theme, themes)
- {
- m_data.append(QHash<int, QVariant>());
- m_data.last().insert(Qt::DisplayRole, theme);
- }
-}
-
-int ThemesModel::rowCount(const QModelIndex &parent) const
-{
- if(parent.isValid())
- return 0;
- else
- return m_data.size();
-}
-
-QVariant ThemesModel::data(const QModelIndex &index, int role) const
-{
- if(index.column() > 0 || index.row() >= m_data.size())
- return QVariant();
- else
- return m_data.at(index.row()).value(role);
-}
-
-bool ThemesModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
- if(index.column() > 0 || index.row() >= m_data.size())
- return false;
- else
- {
- m_data[index.row()].insert(role, value);
-
- return true;
- }
-
-}
-
-
-
-
--- a/QTfrontend/themesmodel.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-#ifndef THEMESMODEL_H
-#define THEMESMODEL_H
-
-#include <QAbstractListModel>
-#include <QStringList>
-#include <QHash>
-
-class ThemesModel : public QAbstractListModel
-{
- Q_OBJECT
-public:
- explicit ThemesModel(QStringList themes, QObject *parent = 0);
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role) const;
- bool setData(const QModelIndex &index, const QVariant &value,
- int role = Qt::EditRole);
-
-signals:
-
-public slots:
-
-private:
-
- QList<QHash<int, QVariant> > m_data;
-};
-
-#endif // THEMESMODEL_H
--- a/QTfrontend/togglebutton.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "togglebutton.h"
-
-ToggleButtonWidget::ToggleButtonWidget(QWidget * parent, QString img)
- : QPushButton(parent)
-{
- setCheckable(true);
-
- QPixmap pm(":/res/btnDisabled.png");
- QPainter * painter = new QPainter();
-
- pmChecked.load(img);
- pmDisabled.load(img);
-
- setMaximumWidth(pmChecked.width() + 6);
-
- painter->begin(&pmDisabled);
- painter->drawPixmap(pmDisabled.rect(), pm);
- painter->end();
-
- setIconSize(pmDisabled.size());
- setIcon(pmDisabled);
-
- connect(this, SIGNAL(toggled(bool)), this, SLOT(eventToggled(bool)));
-}
-
-ToggleButtonWidget::~ToggleButtonWidget()
-{
-}
-
-void ToggleButtonWidget::eventToggled(bool checked)
-{
- setIcon(checked ? pmChecked : pmDisabled);
-}
--- a/QTfrontend/togglebutton.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef TOGGLEBUTTONWIDGET_H
-#define TOGGLEBUTTONWIDGET_H
-
-#include <QWidget>
-#include <QPainter>
-#include <QPushButton>
-#include <QVBoxLayout>
-#include <QLabel>
-
-class ToggleButtonWidget : public QPushButton
-{
- Q_OBJECT
-public:
- ToggleButtonWidget(QWidget * parent, QString img);
- ~ToggleButtonWidget();
-private:
- QPixmap pmChecked;
- QPixmap pmDisabled;
-private slots:
- void eventToggled(bool checked);
-};
-
-#endif // TOGGLEBUTTONWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/dialog/input_ip.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,68 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QLineEdit>
+#include <QSpinBox>
+#include <QPushButton>
+#include <QGridLayout>
+#include <QLabel>
+
+#include "input_ip.h"
+
+HWHostPortDialog::HWHostPortDialog(QWidget* parent) : QDialog(parent)
+{
+ QGridLayout * layout = new QGridLayout(this);
+
+ QLabel * lbHost = new QLabel(this);
+ lbHost->setText(QLabel::tr("Host:"));
+ layout->addWidget(lbHost, 0, 0);
+
+ QLabel * lbPort = new QLabel(this);
+ lbPort->setText(QLabel::tr("Port:"));
+ layout->addWidget(lbPort, 1, 0);
+
+ leHost = new QLineEdit(this);
+ layout->addWidget(leHost, 0, 1, 1, 2);
+
+ sbPort = new QSpinBox(this);
+ sbPort->setMinimum(0);
+ sbPort->setMaximum(65535);
+ layout->addWidget(sbPort, 1, 1, 1, 2);
+
+ pbDefault = new QPushButton(this);
+ pbDefault->setText(QPushButton::tr("default"));
+ layout->addWidget(pbDefault, 1, 3);
+
+ pbOK = new QPushButton(this);
+ pbOK->setText(QPushButton::tr("OK"));
+ pbOK->setDefault(true);
+ layout->addWidget(pbOK, 3, 1);
+
+ pbCancel = new QPushButton(this);
+ pbCancel->setText(QPushButton::tr("Cancel"));
+ layout->addWidget(pbCancel, 3, 2);
+
+ connect(pbOK, SIGNAL(clicked()), this, SLOT(accept()));
+ connect(pbCancel, SIGNAL(clicked()), this, SLOT(reject()));
+ connect(pbDefault, SIGNAL(clicked()), this, SLOT(setDefaultPort()));
+}
+
+void HWHostPortDialog::setDefaultPort()
+{
+ sbPort->setValue(46631);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/dialog/input_ip.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,49 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+
+#ifndef INPUT_IP_H
+#define INPUT_IP_H
+
+#include <QDialog>
+#include <QHostAddress>
+
+class QLineEdit;
+class QSpinBox;
+class QPushButton;
+
+class HWHostPortDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ HWHostPortDialog(QWidget* parent = 0);
+
+ QLineEdit* leHost;
+ QSpinBox* sbPort;
+
+private:
+ QPushButton* pbOK;
+ QPushButton* pbCancel;
+ QPushButton * pbDefault;
+
+private slots:
+ void setDefaultPort();
+};
+
+
+#endif // INPUT_IP_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/AbstractPage.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,99 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief AbstractPage class implementation
+ */
+
+#include "AbstractPage.h"
+
+AbstractPage::AbstractPage(QWidget* parent)
+{
+ Q_UNUSED(parent);
+
+ font14 = new QFont("MS Shell Dlg", 14);
+}
+
+void AbstractPage::initPage()
+{
+ QGridLayout * pageLayout = new QGridLayout(this);
+
+ // stretch grid space for body and footer
+ pageLayout->setColumnStretch(0,0);
+ pageLayout->setColumnStretch(1,1);
+ pageLayout->setRowStretch(0,1);
+ pageLayout->setRowStretch(1,0);
+
+ // add back/exit button
+ btnBack = formattedButton(":/res/Exit.png", true);
+ pageLayout->addWidget(btnBack, 1, 0, 1, 1, Qt::AlignLeft | Qt::AlignBottom);
+
+ // add body layout as defined by the subclass
+ pageLayout->addLayout(bodyLayoutDefinition(), 0, 0, 1, 2);
+
+ // add footer layout
+ QLayout * fld = footerLayoutDefinition();
+ if (fld != NULL)
+ pageLayout->addLayout(fld, 1, 1);
+
+ // connect signals
+ connect(btnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
+ connectSignals();
+}
+
+QPushButton * AbstractPage::formattedButton(const QString & name, bool hasIcon)
+{
+ QPushButton * btn = new QPushButton(this);
+
+ if (hasIcon)
+ {
+ const QIcon& lp=QIcon(name);
+ QSize sz = lp.actualSize(QSize(65535, 65535));
+ btn->setIcon(lp);
+ btn->setFixedSize(sz);
+ btn->setIconSize(sz);
+ btn->setFlat(true);
+ btn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ }
+ else
+ {
+ btn->setFont(*font14);
+ btn->setText(name);
+ }
+ return btn;
+}
+
+QPushButton * AbstractPage::addButton(const QString & name, QGridLayout * grid, int row, int column, int rowSpan, int columnSpan, bool hasIcon)
+{
+ QPushButton * btn = formattedButton(name, hasIcon);
+ grid->addWidget(btn, row, column, rowSpan, columnSpan);
+ return btn;
+}
+
+QPushButton * AbstractPage::addButton(const QString & name, QBoxLayout * box, int where, bool hasIcon)
+{
+ QPushButton * btn = formattedButton(name, hasIcon);
+ box->addWidget(btn, where);
+ return btn;
+}
+
+void AbstractPage::setBackButtonVisible(bool visible)
+{
+ btnBack->setVisible(visible);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/AbstractPage.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,162 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief AbstractPage class definition
+ */
+
+#ifndef ABSTRACTPAGE_H
+#define ABSTRACTPAGE_H
+
+#include <QWidget>
+#include <QPushButton>
+#include <QFont>
+#include <QGridLayout>
+#include <QComboBox>
+#include <QSignalMapper>
+
+class QPushButton;
+class QGroupBox;
+class QComboBox;
+class QLabel;
+class QToolBox;
+class QLineEdit;
+class QListWidget;
+class QCheckBox;
+class QSpinBox;
+class QTextEdit;
+class QRadioButton;
+class QTableView;
+class QTextBrowser;
+class QTableWidget;
+class QAction;
+class QDataWidgetMapper;
+class QAbstractItemModel;
+class QSettings;
+class QSlider;
+class QGridlayout;
+
+class AbstractPage : public QWidget
+{
+ Q_OBJECT
+
+ signals:
+ /**
+ * @brief This signal is emitted when going back to the previous is
+ * requested - e.g. when the back-button is clicked.
+ */
+ void goBack();
+
+ protected:
+ /**
+ * @brief Class constructor
+ *
+ * @param parent parent widget.
+ */
+ AbstractPage(QWidget * parent = 0);
+
+ /// Class Destructor
+ virtual ~AbstractPage() {};
+
+ /// Call this in the constructor of your subclass.
+ void initPage();
+
+ /**
+ * @brief Used during page construction.
+ * You MUST implement this method in your subclass.
+ *
+ * Use it to define the main layout (no behavior) of the page.
+ */
+ virtual QLayout * bodyLayoutDefinition() = 0;
+
+ /**
+ * @brief Used during page construction.
+ * You can implement this method in your subclass.
+ *
+ * Use it to define layout (not behavior) of the page's footer.
+ */
+ virtual QLayout * footerLayoutDefinition() { return NULL; };
+
+ /**
+ * @brief Used during page construction.
+ * You can implement this method in your subclass.
+ *
+ * This is a good place to connect signals within your page in order
+ * to get the desired page behavior.<br />
+ * Keep in mind not to expose twidgets as public!
+ * instead define a signal with a meaningful name and connect the widget
+ * signals to your page signals
+ */
+ virtual void connectSignals() {};
+
+ /**
+ * @brief Creates a default formatted button for this page.
+ *
+ * @param name name of the button - used as its text if not hasIcon.
+ * @param hasIcon set to true if this is a picture button.
+ *
+ * @return the button.
+ */
+ QPushButton * formattedButton(const QString & name, bool hasIcon = false);
+
+ /**
+ * @brief Creates a default formatted button and adds it to a
+ * grid layout at the location specified.
+ *
+ * @param name label or path to icon of the button (depends on hasIcon)
+ * @param grid pointer of the grid layout in which to insert the button.
+ * @param row layout row index in which to insert the button.
+ * @param column layout column index in which to insert the button.
+ * @param rowSpan how many layout rows the button will span.
+ * @param columnSpan how many layout columns the button will span.
+ * @param hasIcon set to true if this is a picture button.
+ *
+ * @return the button.
+ */
+ QPushButton * addButton(const QString & name, QGridLayout * grid, int row, int column, int rowSpan = 1, int columnSpan = 1, bool hasIcon = false);
+
+ /**
+ * @brief Creates a default formatted button and adds it to a
+ * grid layout at the location specified.
+ *
+ * @param name label or path to icon of the button (depends on hasIcon)
+ * @param box pointer of the box layout in which to insert the button.
+ * @param where layout ndex in which to insert the button.
+ * @param hasIcon set to true if this is a picture button.
+ *
+ * @return the button.
+ */
+ QPushButton * addButton(const QString & name, QBoxLayout * box, int where, bool hasIcon = false);
+
+ /**
+ * @brief Changes visibility of the back-button.
+ *
+ * @param visible set to true if the button should be visible.
+ */
+ void setBackButtonVisible(bool visible = true);
+
+ QFont * font14; ///< used font
+
+ private:
+
+ QPushButton * btnBack; ///< back button
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageadmin.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,112 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QLabel>
+#include <QLineEdit>
+#include <QSpinBox>
+#include <QPushButton>
+#include <QTextBrowser>
+
+#include "pageadmin.h"
+#include "chatwidget.h"
+
+QLayout * PageAdmin::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ // 0
+ pbAsk = addButton(tr("Fetch data"), pageLayout, 0, 0, 1, 3);
+
+ // 1
+ QLabel * lblSMN = new QLabel(this);
+ lblSMN->setText(tr("Server message for latest version:"));
+ pageLayout->addWidget(lblSMN, 1, 0);
+
+ leServerMessageNew = new QLineEdit(this);
+ pageLayout->addWidget(leServerMessageNew, 1, 1);
+
+ // 2
+ QLabel * lblSMO = new QLabel(this);
+ lblSMO->setText(tr("Server message for previous versions:"));
+ pageLayout->addWidget(lblSMO, 2, 0);
+
+ leServerMessageOld = new QLineEdit(this);
+ pageLayout->addWidget(leServerMessageOld, 2, 1);
+
+ // 3
+ QLabel * lblP = new QLabel(this);
+ lblP->setText(tr("Latest version protocol number:"));
+ pageLayout->addWidget(lblP, 3, 0);
+
+ sbProtocol = new QSpinBox(this);
+ pageLayout->addWidget(sbProtocol, 3, 1);
+
+ // 4
+ QLabel * lblPreview = new QLabel(this);
+ lblPreview->setText(tr("MOTD preview:"));
+ pageLayout->addWidget(lblPreview, 4, 0);
+
+ tb = new QTextBrowser(this);
+ tb->setOpenExternalLinks(true);
+ tb->document()->setDefaultStyleSheet(HWChatWidget::styleSheet());
+ pageLayout->addWidget(tb, 4, 1, 1, 2);
+
+ // 5
+ pbClearAccountsCache = addButton(tr("Clear Accounts Cache"), pageLayout, 5, 0);
+
+ // 6
+ pbSetSM = addButton(tr("Set data"), pageLayout, 6, 0, 1, 3);
+
+ return pageLayout;
+}
+
+void PageAdmin::connectSignals()
+{
+ connect(pbAsk, SIGNAL(clicked()), this, SIGNAL(askServerVars()));
+ connect(leServerMessageNew, SIGNAL(textEdited(const QString &)), tb, SLOT(setHtml(const QString &)));
+ connect(leServerMessageOld, SIGNAL(textEdited(const QString &)), tb, SLOT(setHtml(const QString &)));
+ connect(pbClearAccountsCache, SIGNAL(clicked()), this, SIGNAL(clearAccountsCache()));
+ connect(pbSetSM, SIGNAL(clicked()), this, SLOT(smChanged()));
+}
+
+PageAdmin::PageAdmin(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PageAdmin::smChanged()
+{
+ emit setServerMessageNew(leServerMessageNew->text());
+ emit setServerMessageOld(leServerMessageOld->text());
+ emit setProtocol(sbProtocol->value());
+}
+
+void PageAdmin::serverMessageNew(const QString & str)
+{
+ leServerMessageNew->setText(str);
+}
+
+void PageAdmin::serverMessageOld(const QString & str)
+{
+ leServerMessageOld->setText(str);
+}
+void PageAdmin::protocol(int proto)
+{
+ sbProtocol->setValue(proto);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageadmin.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,60 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_ADMIN_H
+#define PAGE_ADMIN_H
+
+#include "AbstractPage.h"
+
+class PageAdmin : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageAdmin(QWidget* parent = 0);
+
+public slots:
+ void serverMessageNew(const QString & str);
+ void serverMessageOld(const QString & str);
+ void protocol(int proto);
+
+signals:
+ void setServerMessageNew(const QString & str);
+ void setServerMessageOld(const QString & str);
+ void setProtocol(int proto);
+ void askServerVars();
+ void clearAccountsCache();
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ void connectSignals();
+
+private:
+ QLineEdit * leServerMessageNew;
+ QLineEdit * leServerMessageOld;
+ QPushButton * pbSetSM;
+ QPushButton * pbAsk;
+ QSpinBox * sbProtocol;
+ QTextBrowser * tb;
+ QPushButton * pbClearAccountsCache;
+
+private slots:
+ void smChanged();
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagecampaign.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,53 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QPushButton>
+#include <QComboBox>
+
+#include "pagecampaign.h"
+
+QLayout * PageCampaign::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ pageLayout->setColumnStretch(0, 1);
+ pageLayout->setColumnStretch(1, 2);
+ pageLayout->setColumnStretch(2, 1);
+ pageLayout->setRowStretch(0, 1);
+ pageLayout->setRowStretch(3, 1);
+
+ CBSelect = new QComboBox(this);
+ CBTeam = new QComboBox(this);
+
+ pageLayout->addWidget(CBTeam, 1, 1);
+ pageLayout->addWidget(CBSelect, 2, 1);
+
+ BtnStartCampaign = new QPushButton(this);
+ BtnStartCampaign->setFont(*font14);
+ BtnStartCampaign->setText(QPushButton::tr("Go!"));
+ pageLayout->addWidget(BtnStartCampaign, 2, 2);
+
+ return pageLayout;
+}
+
+PageCampaign::PageCampaign(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagecampaign.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,39 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_CAMPAIGN_H
+#define PAGE_CAMPAIGN_H
+
+#include "AbstractPage.h"
+
+class PageCampaign : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageCampaign(QWidget* parent = 0);
+
+ QPushButton *BtnStartCampaign;
+ QComboBox *CBSelect;
+ QComboBox *CBTeam;
+
+protected:
+ QLayout * bodyLayoutDefinition();
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageconnecting.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,43 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QVBoxLayout>
+#include <QLabel>
+
+#include "pageconnecting.h"
+
+QLayout * PageConnecting::bodyLayoutDefinition()
+{
+ QVBoxLayout * pageLayout = new QVBoxLayout();
+
+ QLabel * lblConnecting = new QLabel(this);
+ lblConnecting->setText(tr("Connecting..."));
+ pageLayout->addWidget(lblConnecting);
+
+ return pageLayout;
+}
+
+void PageConnecting::connectSignals()
+{
+ connect(this, SIGNAL(goBack()), this, SIGNAL(cancelConnection()));
+}
+
+PageConnecting::PageConnecting(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageconnecting.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,39 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_CONNECTING_H
+#define PAGE_CONNECTING_H
+
+#include "AbstractPage.h"
+
+class PageConnecting : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageConnecting(QWidget* parent = 0);
+
+signals:
+ void cancelConnection();
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ void connectSignals();
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagedata.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,229 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QPushButton>
+#include <QNetworkAccessManager>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+#include <QFileInfo>
+#include <QFileDialog>
+#include <QDebug>
+#include <QProgressBar>
+#include <QBuffer>
+
+#include "pagedata.h"
+#include "databrowser.h"
+#include "hwconsts.h"
+
+#include "quazip.h"
+#include "quazipfile.h"
+
+QLayout * PageDataDownload::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ pageLayout->setColumnStretch(0, 1);
+ pageLayout->setColumnStretch(1, 1);
+ pageLayout->setColumnStretch(2, 1);
+
+ web = new DataBrowser(this);
+ pageLayout->addWidget(web, 0, 0, 1, 3);
+
+ progressBarsLayout = new QVBoxLayout();
+ pageLayout->addLayout(progressBarsLayout, 1, 0, 1, 3);
+ return pageLayout;
+}
+
+void PageDataDownload::connectSignals()
+{
+ connect(web, SIGNAL(anchorClicked(QUrl)), this, SLOT(request(const QUrl&)));
+}
+
+PageDataDownload::PageDataDownload(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+
+ web->setOpenLinks(false);
+ fetchList();
+}
+
+void PageDataDownload::request(const QUrl &url)
+{
+ QUrl finalUrl;
+ if(url.host().isEmpty())
+ finalUrl = QUrl("http://www.hedgewars.org" + url.path());
+ else
+ finalUrl = url;
+
+ if(url.path().endsWith(".zip"))
+ {
+ qWarning() << "Download Request" << url.toString();
+ QString fileName = QFileInfo(url.toString()).fileName();
+
+ QNetworkRequest newRequest(finalUrl);
+ newRequest.setAttribute(QNetworkRequest::User, fileName);
+
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ QNetworkReply *reply = manager->get(newRequest);
+ connect(reply, SIGNAL(finished()), this, SLOT(fileDownloaded()));
+ connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(downloadProgress(qint64, qint64)));
+
+ QProgressBar *progressBar = new QProgressBar(this);
+ progressBarsLayout->addWidget(progressBar);
+ progressBars.insert(reply, progressBar);
+ } else
+ {
+ qWarning() << "Page Request" << url.toString();
+
+ QNetworkRequest newRequest(finalUrl);
+
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ QNetworkReply *reply = manager->get(newRequest);
+ connect(reply, SIGNAL(finished()), this, SLOT(pageDownloaded()));
+ }
+}
+
+
+void PageDataDownload::pageDownloaded()
+{
+ QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
+
+ if(reply)
+ {
+ QString html = QString::fromUtf8(reply->readAll());
+ int begin = html.indexOf("<!-- BEGIN -->");
+ int end = html.indexOf("<!-- END -->");
+ if(begin != -1 && begin < end)
+ {
+ html.truncate(end);
+ html.remove(0, begin);
+ }
+ web->setHtml(html);
+ }
+}
+
+void PageDataDownload::fileDownloaded()
+{
+ QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
+
+ if(reply)
+ {
+ QByteArray fileContents = reply->readAll();
+ QProgressBar *progressBar = progressBars.value(reply, 0);
+
+ if(progressBar)
+ {
+ progressBars.remove(reply);
+ progressBar->deleteLater();
+ }
+
+ extractDataPack(&fileContents);
+ }
+}
+
+void PageDataDownload::downloadProgress(qint64 bytesRecieved, qint64 bytesTotal)
+{
+ QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
+
+ if(reply)
+ {
+ QProgressBar *progressBar = progressBars.value(reply, 0);
+
+ if(progressBar)
+ {
+ progressBar->setValue(bytesRecieved);
+ progressBar->setMaximum(bytesTotal);
+ }
+ }
+}
+
+void PageDataDownload::fetchList()
+{
+ request(QUrl("http://hedgewars.org/content.html"));
+}
+
+bool PageDataDownload::extractDataPack(QByteArray * buf)
+{
+ QBuffer buffer;
+ buffer.setBuffer(buf);
+
+ QuaZip zip;
+ zip.setIoDevice(&buffer);
+ if(!zip.open(QuaZip::mdUnzip))
+ {
+ qWarning("testRead(): zip.open(): %d", zip.getZipError());
+ return false;
+ }
+
+ QuaZipFile file(&zip);
+
+ QDir extractDir(*cfgdir);
+ extractDir.cd("Data");
+
+ for(bool more = zip.goToFirstFile(); more; more = zip.goToNextFile())
+ {
+ if(!file.open(QIODevice::ReadOnly))
+ {
+ qWarning("file.open(): %d", file.getZipError());
+ return false;
+ }
+
+
+ QString fileName = file.getActualFileName();
+ QString filePath = extractDir.filePath(fileName);
+ if (fileName.endsWith("/"))
+ {
+ QFileInfo fi(filePath);
+ QDir().mkpath(fi.filePath());
+ } else
+ {
+ qDebug() << "Extracting" << filePath;
+ QFile out(filePath);
+ if(!out.open(QFile::WriteOnly))
+ {
+ qWarning() << "out.open():" << out.errorString();
+ return false;
+ }
+
+ out.write(file.readAll());
+
+ out.close();
+
+ if(file.getZipError() != UNZ_OK) {
+ qWarning("file.getFileName(): %d", file.getZipError());
+ return false;
+ }
+
+ if(!file.atEnd()) {
+ qWarning("read all but not EOF");
+ return false;
+ }
+ }
+
+ file.close();
+
+ if(file.getZipError()!=UNZ_OK) {
+ qWarning("file.close(): %d", file.getZipError());
+ return false;
+ }
+ }
+
+ zip.close();
+
+ return true;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagedata.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,59 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_DATA_H
+#define PAGE_DATA_H
+
+#include <QUrl>
+#include "AbstractPage.h"
+
+class DataBrowser;
+class QProgressBar;
+class QNetworkReply;
+class QVBoxLayout;
+
+class PageDataDownload : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageDataDownload(QWidget* parent = 0);
+
+public slots:
+ void fetchList();
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ void connectSignals();
+
+private:
+ DataBrowser *web;
+ QHash<QNetworkReply*, QProgressBar *> progressBars;
+ QVBoxLayout *progressBarsLayout;
+
+ bool extractDataPack(QByteArray * buf);
+
+private slots:
+ void request(const QUrl &url);
+
+ void pageDownloaded();
+ void fileDownloaded();
+ void downloadProgress(qint64, qint64);
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagedrawmap.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,69 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QPushButton>
+#include <QFileDialog>
+
+#include "pagedrawmap.h"
+#include "drawmapwidget.h"
+
+
+QLayout * PageDrawMap::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ pbUndo = addButton(tr("Undo"), pageLayout, 0, 0);
+ pbClear = addButton(tr("Clear"), pageLayout, 1, 0);
+ pbLoad = addButton(tr("Load"), pageLayout, 2, 0);
+ pbSave = addButton(tr("Save"), pageLayout, 3, 0);
+
+ drawMapWidget = new DrawMapWidget(this);
+ pageLayout->addWidget(drawMapWidget, 0, 1, 5, 1);
+
+ return pageLayout;
+}
+
+void PageDrawMap::connectSignals()
+{
+ connect(pbUndo, SIGNAL(clicked()), drawMapWidget, SLOT(undo()));
+ connect(pbClear, SIGNAL(clicked()), drawMapWidget, SLOT(clear()));
+ connect(pbLoad, SIGNAL(clicked()), this, SLOT(load()));
+ connect(pbSave, SIGNAL(clicked()), this, SLOT(save()));
+}
+
+PageDrawMap::PageDrawMap(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PageDrawMap::load()
+{
+ QString fileName = QFileDialog::getOpenFileName(NULL, tr("Load drawn map"), ".", tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)");
+
+ if(!fileName.isEmpty())
+ drawMapWidget->load(fileName);
+}
+
+void PageDrawMap::save()
+{
+ QString fileName = QFileDialog::getSaveFileName(NULL, tr("Save drawn map"), ".", tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)");
+
+ if(!fileName.isEmpty())
+ drawMapWidget->save(fileName);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagedrawmap.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,51 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_DRAWMAP_H
+#define PAGE_DRAWMAP_H
+
+#include "AbstractPage.h"
+
+class DrawMapWidget;
+
+class PageDrawMap : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageDrawMap(QWidget* parent = 0);
+
+ DrawMapWidget * drawMapWidget;
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ void connectSignals();
+
+private:
+ QPushButton * pbUndo;
+ QPushButton * pbClear;
+ QPushButton * pbLoad;
+ QPushButton * pbSave;
+
+private slots:
+ void load();
+ void save();
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageeditteam.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,470 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QComboBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QTabWidget>
+#include <QGroupBox>
+#include <QToolBox>
+#include <QMessageBox>
+
+#include "sdlkeys.h"
+#include "SquareLabel.h"
+#include "hats.h"
+#include "HWApplication.h"
+
+#include "HWDataManager.h"
+
+#include "pageeditteam.h"
+
+QLayout * PageEditTeam::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ QTabWidget * tbw = new QTabWidget();
+ QWidget * page1 = new QWidget(this);
+ QWidget * page2 = new QWidget(this);
+ tbw->addTab(page1, tr("General"));
+ tbw->addTab(page2, tr("Advanced"));
+ pageLayout->addWidget(tbw, 0, 0, 1, 3);
+
+ QHBoxLayout * page1Layout = new QHBoxLayout(page1);
+ page1Layout->setAlignment(Qt::AlignTop);
+ QGridLayout * page2Layout = new QGridLayout(page2);
+
+// ====== Page 1 ======
+ QVBoxLayout * vbox1 = new QVBoxLayout();
+ QVBoxLayout * vbox2 = new QVBoxLayout();
+ page1Layout->addLayout(vbox1);
+ page1Layout->addLayout(vbox2);
+
+ GBoxHedgehogs = new QGroupBox(this);
+ GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
+ GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
+
+ HatsModel * hatsModel = new HatsModel(GBoxHedgehogs);
+ for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
+ {
+ HHHats[i] = new QComboBox(GBoxHedgehogs);
+ HHHats[i]->setModel(hatsModel);
+ HHHats[i]->setIconSize(QSize(32, 37));
+ //HHHats[i]->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+ //HHHats[i]->setModelColumn(1);
+ //HHHats[i]->setMinimumWidth(132);
+ GBHLayout->addWidget(HHHats[i], i, 0);
+
+ HHNameEdit[i] = new QLineEdit(GBoxHedgehogs);
+ HHNameEdit[i]->setMaxLength(64);
+ HHNameEdit[i]->setMinimumWidth(120);
+ GBHLayout->addWidget(HHNameEdit[i], i, 1);
+
+ btnRandomHogName[i] = addButton(":/res/dice.png", GBHLayout, i, 3, 1, 1, true);
+ }
+
+ btnRandomTeam = addButton(QPushButton::tr("Random Team"), GBHLayout, 9, 0);
+
+ vbox1->addWidget(GBoxHedgehogs);
+
+ GBoxTeam = new QGroupBox(this);
+ GBoxTeam->setTitle(QGroupBox::tr("Team Settings"));
+ GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ QGridLayout * GBTLayout = new QGridLayout(GBoxTeam);
+ QLabel * tmpLabel = new QLabel(GBoxTeam);
+ tmpLabel->setText(QLabel::tr("Name"));
+ GBTLayout->addWidget(tmpLabel, 0, 0);
+ tmpLabel = new QLabel(GBoxTeam);
+ tmpLabel->setText(QLabel::tr("Type"));
+ GBTLayout->addWidget(tmpLabel, 1, 0);
+ tmpLabel = new QLabel(GBoxTeam);
+ tmpLabel->setText(QLabel::tr("Grave"));
+ GBTLayout->addWidget(tmpLabel, 2, 0);
+ tmpLabel = new QLabel(GBoxTeam);
+ tmpLabel->setText(QLabel::tr("Flag"));
+ GBTLayout->addWidget(tmpLabel, 3, 0);
+ tmpLabel = new QLabel(GBoxTeam);
+ tmpLabel->setText(QLabel::tr("Voice"));
+ GBTLayout->addWidget(tmpLabel, 4, 0);
+
+ TeamNameEdit = new QLineEdit(GBoxTeam);
+ TeamNameEdit->setMaxLength(64);
+ GBTLayout->addWidget(TeamNameEdit, 0, 1);
+ vbox2->addWidget(GBoxTeam);
+
+ CBTeamLvl = new QComboBox(GBoxTeam);
+ CBTeamLvl->setIconSize(QSize(48, 48));
+ CBTeamLvl->addItem(QIcon(":/res/botlevels/0.png"), QComboBox::tr("Human"));
+ for(int i = 5; i > 0; i--)
+ CBTeamLvl->addItem(
+ QIcon(QString(":/res/botlevels/%1.png").arg(6 - i)),
+ QString("%1 %2").arg(QComboBox::tr("Level")).arg(i)
+ );
+ GBTLayout->addWidget(CBTeamLvl, 1, 1);
+
+ CBGrave = new QComboBox(GBoxTeam);
+ CBGrave->setMaxCount(65535);
+ CBGrave->setIconSize(QSize(32, 32));
+ GBTLayout->addWidget(CBGrave, 2, 1);
+
+ CBFlag = new QComboBox(GBoxTeam);
+ CBFlag->setMaxCount(65535);
+ CBFlag->setIconSize(QSize(22, 15));
+ GBTLayout->addWidget(CBFlag, 3, 1);
+
+ QHBoxLayout * hbox = new QHBoxLayout();
+ CBVoicepack = new QComboBox(GBoxTeam);
+
+ hbox->addWidget(CBVoicepack, 100);
+ btnTestSound = addButton(":/res/PlaySound.png", hbox, 1, true);
+ hbox->setStretchFactor(btnTestSound, 1);
+
+ GBTLayout->addLayout(hbox, 4, 1);
+
+ GBoxFort = new QGroupBox(this);
+ GBoxFort->setTitle(QGroupBox::tr("Fort"));
+ QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
+ CBFort = new QComboBox(GBoxFort);
+ CBFort->setMaxCount(65535);
+ GBFLayout->addWidget(CBFort, 0, 0);
+ FortPreview = new SquareLabel(GBoxFort);
+ FortPreview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ FortPreview->setMinimumSize(128, 128);
+ FortPreview->setPixmap(QPixmap());
+ // perhaps due to handling its own paintevents, SquareLabel doesn't play nice with the stars
+ //FortPreview->setAttribute(Qt::WA_PaintOnScreen, true);
+ GBFLayout->addWidget(FortPreview, 1, 0);
+ vbox2->addWidget(GBoxFort);
+
+ vbox1->addStretch();
+ vbox2->addStretch();
+
+// ====== Page 2 ======
+ GBoxBinds = new QGroupBox(this);
+ GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
+ QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
+ BindsBox = new QToolBox(GBoxBinds);
+ BindsBox->setLineWidth(0);
+ GBBLayout->addWidget(BindsBox);
+ page2Layout->addWidget(GBoxBinds, 0, 0);
+
+ quint16 i = 0;
+ quint16 num = 0;
+ QWidget * curW = NULL;
+ QGridLayout * pagelayout = NULL;
+ QLabel* l = NULL;
+ while (i < BINDS_NUMBER) {
+ if(cbinds[i].category != NULL)
+ {
+ if(curW != NULL)
+ {
+ l = new QLabel(curW);
+ l->setText("");
+ pagelayout->addWidget(l, num++, 0, 1, 2);
+ }
+ curW = new QWidget(this);
+ BindsBox->addItem(curW, HWApplication::translate("binds (categories)", cbinds[i].category));
+ pagelayout = new QGridLayout(curW);
+ num = 0;
+ }
+ if(cbinds[i].description != NULL)
+ {
+ l = new QLabel(curW);
+ l->setText((num > 0 ? QString("\n") : QString("")) + HWApplication::translate("binds (descriptions)", cbinds[i].description));
+ pagelayout->addWidget(l, num++, 0, 1, 2);
+ }
+
+ l = new QLabel(curW);
+ l->setText(HWApplication::translate("binds", cbinds[i].name));
+ l->setAlignment(Qt::AlignRight);
+ pagelayout->addWidget(l, num, 0);
+ CBBind[i] = new QComboBox(curW);
+ for(int j = 0; sdlkeys[j][1][0] != '\0'; j++)
+ CBBind[i]->addItem(HWApplication::translate("binds (keys)", sdlkeys[j][1]).contains(": ") ? HWApplication::translate("binds (keys)", sdlkeys[j][1]) : HWApplication::translate("binds (keys)", "Keyboard") + QString(": ") + HWApplication::translate("binds (keys)", sdlkeys[j][1]), sdlkeys[j][0]);
+ pagelayout->addWidget(CBBind[i++], num++, 1);
+ }
+
+ return pageLayout;
+}
+
+QLayout * PageEditTeam::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+
+ btnSave = addButton(":/res/Save.png", bottomLayout, 0, true);;
+ btnSave->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
+ bottomLayout->setAlignment(btnSave, Qt::AlignRight | Qt::AlignBottom);
+
+ return bottomLayout;
+}
+
+void PageEditTeam::connectSignals()
+{
+ connect(btnSave, SIGNAL(clicked()), this, SLOT(saveTeam()));
+
+ signalMapper1 = new QSignalMapper(this);
+ signalMapper2 = new QSignalMapper(this);
+
+ connect(signalMapper1, SIGNAL(mapped(int)), this, SLOT(fixHHname(int)));
+ connect(signalMapper2, SIGNAL(mapped(int)), this, SLOT(setRandomName(int)));
+
+ for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
+ {
+ connect(HHNameEdit[i], SIGNAL(editingFinished()), signalMapper1, SLOT(map()));
+ signalMapper1->setMapping(HHNameEdit[i], i);
+
+ connect(btnRandomHogName[i], SIGNAL(clicked()), signalMapper2, SLOT(map()));
+ signalMapper2->setMapping(btnRandomHogName[i], i);
+ }
+
+ connect(btnRandomTeam, SIGNAL(clicked()), this, SLOT(setRandomNames()));
+
+ connect(btnTestSound, SIGNAL(clicked()), this, SLOT(testSound()));
+
+ connect(CBFort, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(CBFort_activated(const QString &)));
+}
+
+PageEditTeam::PageEditTeam(QWidget* parent) :
+ AbstractPage(parent)
+{
+ initPage();
+
+ QRegExp pngSuffix("\\.png$");
+
+ m_playerHash = "0000000000000000000000000000000000000000";
+
+ HWDataManager & dataMgr = HWDataManager::instance();
+
+ QStringList list;
+
+
+ // voicepacks
+ list = dataMgr.entryList("Sounds/voices",
+ QDir::AllDirs | QDir::NoDotAndDotDot);
+
+ CBVoicepack->addItems(list);
+
+
+ // forts
+ list = dataMgr.entryList("Forts", QDir::Files, QStringList("*L.png"));
+ list.replaceInStrings(QRegExp("L\\.png$"), "");
+ CBFort->addItems(list);
+
+
+ // graves
+ list =
+ dataMgr.entryList("Graphics/Graves", QDir::Files, QStringList("*.png"));
+
+ foreach (QString file, list)
+ {
+ QPixmap pix(dataMgr.findFileForRead("Graphics/Graves/" + file));
+ if ((pix.height() > 32) || pix.width() > 32)
+ pix = pix.copy(0, 0, 32, 32);
+ QIcon icon(pix);
+
+ QString grave = QString(file).remove(pngSuffix);
+
+ CBGrave->addItem(icon, grave);
+ }
+
+ // flags
+
+ list =
+ dataMgr.entryList("Graphics/Flags", QDir::Files, QStringList("*.png"));
+
+ // skip cpu and hedgewars flags
+ int idx = list.indexOf("cpu.png");
+ if (idx >= 0)
+ list.removeAt(idx);
+ idx = list.indexOf("hedgewars.png");
+ if (idx >= 0)
+ list.removeAt(idx);
+
+ // add the default flag
+ QPixmap hwFlag(dataMgr.findFileForRead("Graphics/Flags/hedgewars.png"));
+ CBFlag->addItem(QIcon(hwFlag.copy(0, 0, 22, 15)), "Hedgewars", "hedgewars");
+
+ // add seperator after
+ CBFlag->insertSeparator(1);
+
+ int insertAt = 2; // insert country flags after Hedgewars flag and seperator
+
+ // add all country flags
+ foreach (const QString & file, list)
+ {
+ QIcon icon(QPixmap(dataMgr.findFileForRead("Graphics/Flags/" + file)));
+
+ QString flag = QString(file).remove(pngSuffix);
+
+ bool isCountryFlag = !file.startsWith("cm_");
+
+ if (isCountryFlag)
+ {
+ CBFlag->insertItem(insertAt, icon, flag.replace("_", " "), flag);
+ insertAt++;
+ }
+ else // append community flags at end
+ CBFlag->addItem(icon, flag.replace("cm_", QComboBox::tr("Community") + ": "), flag);
+ }
+
+ // add separator between country flags and community flags
+ CBFlag->insertSeparator(insertAt);
+}
+
+void PageEditTeam::fixHHname(int idx)
+{
+ HHNameEdit[idx]->setText(HHNameEdit[idx]->text().trimmed());
+
+ if (HHNameEdit[idx]->text().isEmpty())
+ HHNameEdit[idx]->setText(QLineEdit::tr("hedgehog %1").arg(idx+1));
+}
+
+void PageEditTeam::CBFort_activated(const QString & fortname)
+{
+ HWDataManager & dataMgr = HWDataManager::instance();
+ QPixmap pix(dataMgr.findFileForRead("Forts/" + fortname + "L.png"));
+ FortPreview->setPixmap(pix);
+}
+
+void PageEditTeam::testSound()
+{
+ HWDataManager & dataMgr = HWDataManager::instance();
+
+ QString voiceDir = QString("Sounds/voices/") + CBVoicepack->currentText();
+
+ QStringList list = dataMgr.entryList(
+ voiceDir,
+ QDir::Files,
+ QStringList() <<
+ "Illgetyou.ogg" <<
+ "Incoming.ogg" <<
+ "Stupid.ogg" <<
+ "Coward.ogg" <<
+ "Firstblood.ogg"
+ );
+
+ if (!list.isEmpty())
+ SDLInteraction::instance().playSoundFile(
+ dataMgr.findFileForRead(voiceDir + "/" +
+ list[rand() % list.size()])
+ );
+}
+
+void PageEditTeam::createTeam(const QString & name, const QString & playerHash)
+{
+ m_playerHash = playerHash;
+ HWTeam newTeam(name);
+ loadTeam(newTeam);
+}
+
+void PageEditTeam::editTeam(const QString & name, const QString & playerHash)
+{
+ m_playerHash = playerHash;
+ HWTeam team(name);
+ team.loadFromFile();
+ loadTeam(team);
+}
+
+void PageEditTeam::deleteTeam(const QString & name)
+{
+ QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Teams"), QMessageBox::tr("Really delete this team?"), QMessageBox::Ok | QMessageBox::Cancel, this);
+
+ if (reallyDelete.exec() == QMessageBox::Ok)
+ HWTeam(name).deleteFile();
+}
+
+void PageEditTeam::setRandomNames()
+{
+ HWTeam team = data();
+ HWNamegen::teamRandomNames(team, true);
+ loadTeam(team);
+}
+
+void PageEditTeam::setRandomName(int hh_index)
+{
+ HWTeam team = data();
+ HWNamegen::teamRandomName(team,hh_index);
+ loadTeam(team);
+}
+
+void PageEditTeam::loadTeam(const HWTeam & team)
+{
+ TeamNameEdit->setText(team.name());
+ CBTeamLvl->setCurrentIndex(team.difficulty());
+
+ for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
+ {
+ HWHog hh = team.hedgehog(i);
+
+ HHNameEdit[i]->setText(hh.Name);
+
+ if (hh.Hat.startsWith("Reserved"))
+ hh.Hat = "Reserved "+hh.Hat.remove(0,40);
+
+ HHHats[i]->setCurrentIndex(HHHats[i]->findData(hh.Hat, Qt::DisplayRole));
+ }
+
+ CBGrave->setCurrentIndex(CBGrave->findText(team.grave()));
+ CBFlag->setCurrentIndex(CBFlag->findData(team.flag()));
+
+ CBFort->setCurrentIndex(CBFort->findText(team.fort()));
+ CBVoicepack->setCurrentIndex(CBVoicepack->findText(team.voicepack()));
+
+ for(int i = 0; i < BINDS_NUMBER; i++)
+ {
+ CBBind[i]->setCurrentIndex(CBBind[i]->findData(team.keyBind(i)));
+ }
+}
+
+HWTeam PageEditTeam::data()
+{
+ HWTeam team(TeamNameEdit->text());
+ team.setDifficulty(CBTeamLvl->currentIndex());
+
+ for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
+ {
+ HWHog hh;
+ hh.Name = HHNameEdit[i]->text();
+ hh.Hat = HHHats[i]->currentText();
+
+ if (hh.Hat.startsWith("Reserved"))
+ hh.Hat = "Reserved"+m_playerHash+hh.Hat.remove(0,9);
+
+ team.setHedgehog(i,hh);
+ }
+
+ team.setGrave(CBGrave->currentText());
+ team.setFort(CBFort->currentText());
+ team.setVoicepack(CBVoicepack->currentText());
+ team.setFlag(CBFlag->itemData(CBFlag->currentIndex()).toString());
+
+ for(int i = 0; i < BINDS_NUMBER; i++)
+ {
+ team.bindKey(i,CBBind[i]->itemData(CBBind[i]->currentIndex()).toString());
+ }
+
+ return team;
+}
+
+void PageEditTeam::saveTeam()
+{
+ data().saveToFile();
+ emit teamEdited();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageeditteam.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,97 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_EDITTEAM_H
+#define PAGE_EDITTEAM_H
+
+#include "AbstractPage.h"
+#include "binds.h"
+#include "hwconsts.h"
+#include "namegen.h"
+#include "SDLInteraction.h"
+
+#include "team.h"
+
+class SquareLabel;
+
+class PageEditTeam : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageEditTeam(QWidget* parent);
+
+ void createTeam(const QString & name, const QString & playerHash);
+ void editTeam(const QString & name, const QString & playerHash);
+ void deleteTeam(const QString & name);
+
+signals:
+ void teamEdited();
+
+public slots:
+ void CBFort_activated(const QString & gravename);
+
+private:
+ QSignalMapper* signalMapper1;
+ QSignalMapper* signalMapper2;
+ QGroupBox *GBoxHedgehogs;
+ QGroupBox *GBoxTeam;
+ QGroupBox *GBoxFort;
+ QComboBox *CBFort;
+ SquareLabel *FortPreview;
+ QComboBox *CBGrave;
+ QComboBox *CBFlag;
+ QComboBox *CBTeamLvl;
+ QComboBox *CBVoicepack;
+ QGroupBox *GBoxBinds;
+ QToolBox *BindsBox;
+ QLineEdit * TeamNameEdit;
+ QLineEdit * HHNameEdit[HEDGEHOGS_PER_TEAM];
+ QComboBox * HHHats[HEDGEHOGS_PER_TEAM];
+ QComboBox * CBBind[BINDS_NUMBER];
+ HWTeam data();
+ QString m_playerHash;
+
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+ void loadTeam(const HWTeam & team);
+
+ // page 1
+ QPushButton * btnRandomHogName[HEDGEHOGS_PER_TEAM];
+ QPushButton * btnRandomTeam;
+ QPushButton * btnTestSound;
+
+ // footer
+ QPushButton * btnSave;
+
+private slots:
+ void saveTeam();
+ void setRandomNames();
+
+ void setRandomName(int hh_index);
+
+ /// Plays a random voice sound of the currently edited team.
+ void testSound();
+
+ void fixHHname(int idx);
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagegamestats.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,274 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2010-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QLabel>
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QGraphicsScene>
+#include <QGroupBox>
+#include <QSizePolicy>
+
+#include "pagegamestats.h"
+#include "team.h"
+
+FitGraphicsView::FitGraphicsView(QWidget* parent) : QGraphicsView(parent)
+{
+
+}
+
+void FitGraphicsView::resizeEvent(QResizeEvent * event)
+{
+ Q_UNUSED(event);
+
+ fitInView(sceneRect());
+}
+
+QLayout * PageGameStats::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ pageLayout->setSpacing(20);
+ pageLayout->setColumnStretch(0, 1);
+ pageLayout->setColumnStretch(1, 1);
+ pageLayout->setContentsMargins(7, 7, 7, 0);
+
+ QGroupBox * gb = new QGroupBox(this);
+ QVBoxLayout * gbl = new QVBoxLayout;
+
+ // details
+ labelGameStats = new QLabel(this);
+ QLabel * l = new QLabel(this);
+ l->setTextFormat(Qt::RichText);
+ l->setText("<h1><img src=\":/res/StatsD.png\"> " + PageGameStats::tr("Details") + "</h1>");
+ l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ labelGameStats->setTextFormat(Qt::RichText);
+ labelGameStats->setAlignment(Qt::AlignTop);
+ labelGameStats->setWordWrap(true);
+ gbl->addWidget(l);
+ gbl->addWidget(labelGameStats);
+ gb->setLayout(gbl);
+ pageLayout->addWidget(gb, 1, 1, 1, 2);
+
+ // graph
+ graphic = new FitGraphicsView(gb);
+ l = new QLabel(this);
+ l->setTextFormat(Qt::RichText);
+ l->setText("<br><h1><img src=\":/res/StatsH.png\"> " + PageGameStats::tr("Health graph") + "</h1>");
+ l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ gbl->addWidget(l);
+ gbl->addWidget(graphic);
+ graphic->scale(1.0, -1.0);
+ graphic->setBackgroundBrush(QBrush(Qt::black));
+
+ labelGameWin = new QLabel(this);
+ labelGameWin->setTextFormat(Qt::RichText);
+ pageLayout->addWidget(labelGameWin, 0, 0, 1, 2);
+
+ // ranking box
+ gb = new QGroupBox(this);
+ gbl = new QVBoxLayout;
+ labelGameRank = new QLabel(gb);
+ l = new QLabel(this);
+ l->setTextFormat(Qt::RichText);
+ l->setText("<h1><img src=\":/res/StatsR.png\"> " + PageGameStats::tr("Ranking") + "</h1>");
+ l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ gbl->addWidget(l);
+ gbl->addWidget(labelGameRank);
+ gb->setLayout(gbl);
+
+ labelGameRank->setTextFormat(Qt::RichText);
+ labelGameRank->setAlignment(Qt::AlignTop);
+ pageLayout->addWidget(gb, 1, 0);
+
+ return pageLayout;
+}
+
+QLayout * PageGameStats::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+
+ btnSave = addButton(":/res/Save.png", bottomLayout, 0, true);
+ btnSave->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
+ bottomLayout->setAlignment(btnSave, Qt::AlignRight | Qt::AlignBottom);
+
+ return bottomLayout;
+}
+
+void PageGameStats::connectSignals()
+{
+ connect(btnSave, SIGNAL(clicked()), this, SIGNAL(saveDemoRequested()));
+}
+
+PageGameStats::PageGameStats(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PageGameStats::AddStatText(const QString & msg)
+{
+ labelGameStats->setText(labelGameStats->text() + msg);
+}
+
+void PageGameStats::clear()
+{
+ labelGameStats->setText("");
+ healthPoints.clear();
+ labelGameRank->setText("");
+ playerPosition = 0;
+ lastColor = 0;
+}
+
+void PageGameStats::renderStats()
+{
+ QGraphicsScene * scene = new QGraphicsScene();
+
+ QMap<quint32, QVector<quint32> >::const_iterator i = healthPoints.constBegin();
+ while (i != healthPoints.constEnd())
+ {
+ quint32 c = i.key();
+ QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
+ QVector<quint32> hps = i.value();
+
+ QPainterPath path;
+ if (hps.size())
+ path.moveTo(0, hps[0]);
+
+ for(int t = 1; t < hps.size(); ++t)
+ path.lineTo(t, hps[t]);
+
+ scene->addPath(path, QPen(c));
+ ++i;
+ }
+
+ graphic->setScene(scene);
+ graphic->fitInView(graphic->sceneRect());
+}
+
+void PageGameStats::GameStats(char type, const QString & info)
+{
+ switch(type) {
+ case 'r' : {
+ labelGameWin->setText(QString("<h1 align=\"center\">%1</h1>").arg(info));
+ break;
+ }
+ case 'D' : {
+ int i = info.indexOf(' ');
+ QString message = "<p><img src=\":/res/StatsBestShot.png\"> " + PageGameStats::tr("The best shot award was won by <b>%1</b> with <b>%2</b> pts.").arg(info.mid(i + 1), info.left(i)) + "</p>";
+ AddStatText(message);
+ break;
+ }
+ case 'k' : {
+ int i = info.indexOf(' ');
+ int num = info.left(i).toInt();
+ QString message = "<p><img src=\":/res/StatsBestKiller.png\"> " + PageGameStats::tr("The best killer is <b>%1</b> with <b>%2</b> kills in a turn.", "", num).arg(info.mid(i + 1), info.left(i)) + "</p>";
+ AddStatText(message);
+ break;
+ }
+ case 'K' : {
+ int num = info.toInt();
+ QString message = "<p><img src=\":/res/StatsHedgehogsKilled.png\"> " + PageGameStats::tr("A total of <b>%1</b> hedgehog(s) were killed during this round.", "", num).arg(num) + "</p>";
+ AddStatText(message);
+ break;
+ }
+ case 'H' : {
+ int i = info.indexOf(' ');
+ quint32 clan = info.left(i).toInt();
+ quint32 hp = info.mid(i + 1).toUInt();
+ healthPoints[clan].append(hp);
+ break;
+ }
+ case 'T': { // local team stats
+ //AddStatText("<p>local team: " + info + "</p>");
+ QStringList infol = info.split(":");
+ HWTeam team(infol[0]);
+ if(team.fileExists()) // do some better test to avoid influence from scripted/predefined teams?
+ {
+ team.loadFromFile();
+ team.incRounds();
+ if(infol[1].toInt() > 0) // might require some better test for winning condition (or changed flag) ... WIP!
+ team.incWins(); // should draws count as wins?
+ //team.SaveToFile(); // don't save yet
+ }
+ break;
+ }
+
+ case 'P' : {
+ int i = info.indexOf(' ');
+ playerPosition++;
+ QString color = info.left(i);
+ quint32 c = color.toInt();
+ QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
+
+ QString playerinfo = info.mid(i + 1);
+
+ i = playerinfo.indexOf(' ');
+
+ int kills = playerinfo.left(i).toInt();
+ QString playername = playerinfo.mid(i + 1);
+ QString image;
+
+ if (lastColor == c) playerPosition--;
+ lastColor = c;
+
+ switch (playerPosition)
+ {
+ case 1:
+ image = "<img src=\":/res/StatsMedal1.png\">";
+ break;
+ case 2:
+ image = "<img src=\":/res/StatsMedal2.png\">";
+ break;
+ case 3:
+ image = "<img src=\":/res/StatsMedal3.png\">";
+ break;
+ default:
+ image = "<img src=\":/res/StatsMedal4.png\">";
+ break;
+ }
+
+ QString message;
+ QString killstring = PageGameStats::tr("(%1 kill)", "", kills).arg(kills);
+
+ message = QString("<p><h2>%1 %2. <font color=\"%4\">%3</font> ").arg(image, QString::number(playerPosition), playername, clanColor.name()) + killstring + "</h2></p>";
+
+ labelGameRank->setText(labelGameRank->text() + message);
+ break;
+ }
+ case 's' : {
+ int i = info.indexOf(' ');
+ int num = info.left(i).toInt();
+ QString message = "<p><img src=\":/res/StatsMostSelfDamage.png\"> " + PageGameStats::tr("<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
+ AddStatText(message);
+ break;
+ }
+ case 'S' : {
+ int i = info.indexOf(' ');
+ int num = info.left(i).toInt();
+ QString message = "<p><img src=\":/res/StatsSelfKilled.png\"> " + PageGameStats::tr("<b>%1</b> killed <b>%2</b> of his own hedgehogs.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
+ AddStatText(message);
+ break;
+ }
+ case 'B' : {
+ int i = info.indexOf(' ');
+ int num = info.left(i).toInt();
+ QString message = "<p><img src=\":/res/StatsSkipped.png\"> " + PageGameStats::tr("<b>%1</b> was scared and skipped turn <b>%2</b> times.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
+ AddStatText(message);
+ break;
+ }
+
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagegamestats.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,73 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2010-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef STATSPAGE_H
+#define STATSPAGE_H
+
+#include <QVector>
+#include <QMap>
+#include <QGraphicsView>
+
+#include "AbstractPage.h"
+
+class FitGraphicsView : public QGraphicsView
+{
+ Q_OBJECT
+
+public:
+ FitGraphicsView(QWidget* parent = 0);
+
+protected:
+ void resizeEvent(QResizeEvent * event);
+};
+
+class PageGameStats : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageGameStats(QWidget* parent = 0);
+
+ QPushButton *btnSave;
+ QLabel *labelGameStats;
+ QLabel *labelGameWin;
+ QLabel *labelGameRank;
+ FitGraphicsView * graphic;
+
+public slots:
+ void GameStats(char type, const QString & info);
+ void clear();
+ void renderStats();
+
+signals:
+ void saveDemoRequested();
+
+private:
+ void AddStatText(const QString & msg);
+
+ QMap<quint32, QVector<quint32> > healthPoints;
+ unsigned int playerPosition;
+ quint32 lastColor;
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+};
+
+#endif // STATSPAGE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageinfo.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,57 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+
+#include "pageinfo.h"
+#include "about.h"
+
+QLayout * PageInfo::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ pageLayout->setColumnStretch(0, 1);
+ pageLayout->setColumnStretch(1, 1);
+ pageLayout->setColumnStretch(2, 1);
+
+ about = new About();
+ pageLayout->addWidget(about, 0, 0, 1, 3);
+
+ return pageLayout;
+}
+
+QLayout * PageInfo::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+ BtnSnapshots = addButton(":/res/Star.png", bottomLayout, 0, true);
+ bottomLayout->setAlignment(BtnSnapshots, Qt::AlignRight | Qt::AlignVCenter);
+ return bottomLayout;
+}
+
+void PageInfo::connectSignals()
+{
+ //TODO
+}
+
+PageInfo::PageInfo(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageinfo.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,43 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_INFO_H
+#define PAGE_INFO_H
+
+#include "AbstractPage.h"
+
+class About;
+
+class PageInfo : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageInfo(QWidget* parent = 0);
+
+ QPushButton *BtnSnapshots;
+ About *about;
+
+private:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageingame.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,40 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QHBoxLayout>
+#include <QLabel>
+
+#include "pageingame.h"
+
+QLayout * PageInGame::bodyLayoutDefinition()
+{
+ QHBoxLayout * pageLayout = new QHBoxLayout();
+
+ QLabel * label = new QLabel(this);
+ label->setText(tr("In game..."));
+ pageLayout->addWidget(label);
+
+ setBackButtonVisible(false);
+
+ return pageLayout;
+}
+
+PageInGame::PageInGame(QWidget * parent) : AbstractPage(parent)
+{
+ initPage();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageingame.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,35 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_INGAME_H
+#define PAGE_INGAME_H
+
+#include "AbstractPage.h"
+
+class PageInGame : public AbstractPage
+{
+ Q_OBJECT
+
+ public:
+ PageInGame(QWidget * parent = 0);
+
+ QLayout * bodyLayoutDefinition();
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagemain.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,162 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QLabel>
+#include <QTime>
+
+#include "pagemain.h"
+#include "hwconsts.h"
+#include "hwform.h"
+
+QLayout * PageMain::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ //pageLayout->setColumnStretch(0, 1);
+ //pageLayout->setColumnStretch(1, 2);
+ //pageLayout->setColumnStretch(2, 1);
+
+ //QPushButton* btnLogo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
+ //pageLayout->setAlignment(btnLogo, Qt::AlignHCenter);
+ pageLayout->setRowStretch(0, 1);
+ pageLayout->setRowStretch(1, 1);
+ pageLayout->setRowStretch(2, 0);
+ pageLayout->setRowStretch(3, 1);
+ pageLayout->setRowStretch(4, 1);
+
+ BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
+ BtnSinglePlayer->setToolTip(tr("Local Game (Play a game on a single computer)"));
+ pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
+
+ BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
+ BtnNet->setToolTip(tr("Network Game (Play a game across a network)"));
+ pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
+
+ // button order matters for overlapping (what's on top and what isn't)
+ BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
+ BtnInfo->setStyleSheet("border: transparent;background: transparent;");
+ pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
+
+ BtnDataDownload = addButton(tr("Downloadable Content"), pageLayout, 4, 0, 1, 4, false);
+ pageLayout->setAlignment(BtnDataDownload, Qt::AlignHCenter);
+
+ return pageLayout;
+}
+
+QLayout * PageMain::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+
+ mainNote = new QLabel(this);
+ mainNote->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
+ mainNote->setWordWrap(true);
+
+ bottomLayout->addWidget(mainNote, 0);
+ bottomLayout->setStretch(0,1);
+
+ BtnSetup = addButton(":/res/Settings.png", bottomLayout, 1, true);
+ bottomLayout->setStretch(1,0);
+
+ return bottomLayout;
+}
+
+void PageMain::connectSignals()
+{
+ //TODO
+}
+
+PageMain::PageMain(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+
+ if(frontendEffects) setAttribute(Qt::WA_NoSystemBackground, true);
+ mainNote->setOpenExternalLinks(true);
+
+ if(!isDevBuild)
+ {
+ mainNote->setText(QLabel::tr("Tip: ") + randomTip());
+ }
+ else
+ 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!"));
+
+}
+
+QString PageMain::randomTip() const
+{
+ QStringList Tips;
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ Tips << tr("Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.", "Tips");
+ 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");
+ Tips << tr("Connect one or more gamepads before starting the game to be able to assign their controls to your teams.", "Tips");
+ 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>");
+ Tips << tr("While playing you should give yourself a short break at least once an hour.", "Tips");
+ 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");
+ Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.", "Tips");
+ 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");
+ Tips << tr("Especially while playing online be polite and always remember there might be some minors playing with or against you as well!", "Tips");
+ Tips << tr("Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!", "Tips");
+ 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");
+ Tips << tr("You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!", "Tips");
+ 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");
+ Tips << tr("No hedgehogs were harmed in making this game.", "Tips");
+ Tips << tr("There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.", "Tips");
+ Tips << tr("Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.", "Tips");
+ 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");
+ 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");
+ Tips << tr("The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.", "Tips");
+ 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");
+ 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");
+ Tips << tr("Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.", "Tips");
+ Tips << tr("The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.", "Tips");
+ Tips << tr("If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.", "Tips");
+ Tips << tr("The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.", "Tips");
+ Tips << tr("The Flame Thrower is a weapon but it can be used for tunnel digging as well.", "Tips");
+ Tips << tr("Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.", "Tips");
+ Tips << tr("Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.", "Tips");
+ 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>");
+ 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");
+ Tips << tr("Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!", "Tips");
+ // The following tip will require links to app store entries first.
+ //Tips << tr("Want to play Hedgewars any time? Grab the Mobile version for %1 and %2.", "Tips").arg("").arg("");
+ // the ios version is located here: http://itunes.apple.com/us/app/hedgewars/id391234866
+ Tips << tr("Keep your video card drivers up to date to avoid issues playing the game.", "Tips");
+ 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");
+#ifdef _WIN32
+ 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");
+#elif defined __APPLE__
+ 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");
+#else
+ 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");
+#endif
+
+ return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagemain.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,47 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_MAIN_H
+#define PAGE_MAIN_H
+
+#include "AbstractPage.h"
+
+class PageMain : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageMain(QWidget * parent = 0);
+
+ QPushButton * BtnSinglePlayer;
+ QPushButton * BtnNet;
+ QPushButton * BtnSetup;
+ QPushButton * BtnInfo;
+ QPushButton * BtnDataDownload;
+ QLabel * mainNote;
+
+private:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+ QString randomTip() const;
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagemultiplayer.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,72 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief PageMultiplayer class implementation
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+
+#include "pagemultiplayer.h"
+#include "gamecfgwidget.h"
+#include "teamselect.h"
+
+QLayout * PageMultiplayer::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ gameCFG = new GameCFGWidget(this);
+ pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
+
+ btnSetup = new QPushButton(this);
+ btnSetup->setText(QPushButton::tr("Setup"));
+ pageLayout->addWidget(btnSetup, 1, 0, 1, 2);
+
+ pageLayout->setRowStretch(2, 1);
+
+ teamsSelect = new TeamSelWidget(this);
+ pageLayout->addWidget(teamsSelect, 0, 2, 3, 2);
+
+ return pageLayout;
+}
+
+QLayout * PageMultiplayer::footerLayoutDefinition()
+{
+ QHBoxLayout * footerLayout = new QHBoxLayout();
+
+ BtnStartMPGame = formattedButton(tr("Start"));
+ BtnStartMPGame->setMinimumWidth(180);
+
+ footerLayout->addStretch();
+ footerLayout->addWidget(BtnStartMPGame);
+
+ return footerLayout;
+}
+
+void PageMultiplayer::connectSignals()
+{
+ PageMultiplayer::connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked()));
+}
+
+PageMultiplayer::PageMultiplayer(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagemultiplayer.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,51 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_MULTIPLAYER_H
+#define PAGE_MULTIPLAYER_H
+
+#include "AbstractPage.h"
+
+class GameCFGWidget;
+class TeamSelWidget;
+
+class PageMultiplayer : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageMultiplayer(QWidget* parent = 0);
+
+ GameCFGWidget *gameCFG;
+ TeamSelWidget *teamsSelect;
+ QPushButton *BtnStartMPGame;
+
+signals:
+ void SetupClicked();
+
+private:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+ QPushButton * btnSetup;
+};
+
+#endif
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenet.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,118 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QGroupBox>
+#include <QTableView>
+#include <QMessageBox>
+#include <QHeaderView>
+
+#include "pagenet.h"
+#include "hwconsts.h"
+#include "netudpwidget.h"
+
+QLayout * PageNet::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ pageLayout->setColumnStretch(0, 1);
+ pageLayout->setColumnStretch(1, 1);
+ pageLayout->setColumnStretch(2, 1);
+
+ ConnGroupBox = new QGroupBox(this);
+ ConnGroupBox->setTitle(QGroupBox::tr("Net game"));
+ pageLayout->addWidget(ConnGroupBox, 2, 0, 1, 3);
+ GBClayout = new QGridLayout(ConnGroupBox);
+ GBClayout->setColumnStretch(0, 1);
+ GBClayout->setColumnStretch(1, 1);
+ GBClayout->setColumnStretch(2, 1);
+
+ BtnNetConnect = new QPushButton(ConnGroupBox);
+ BtnNetConnect->setFont(*font14);
+ BtnNetConnect->setText(QPushButton::tr("Connect"));
+ GBClayout->addWidget(BtnNetConnect, 2, 2);
+
+ tvServersList = new QTableView(ConnGroupBox);
+ tvServersList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ GBClayout->addWidget(tvServersList, 1, 0, 1, 3);
+
+ BtnUpdateSList = new QPushButton(ConnGroupBox);
+ BtnUpdateSList->setFont(*font14);
+ BtnUpdateSList->setText(QPushButton::tr("Update"));
+ GBClayout->addWidget(BtnUpdateSList, 2, 0);
+
+ BtnSpecifyServer = new QPushButton(ConnGroupBox);
+ BtnSpecifyServer->setFont(*font14);
+ BtnSpecifyServer->setText(QPushButton::tr("Specify"));
+ GBClayout->addWidget(BtnSpecifyServer, 2, 1);
+
+ return pageLayout;
+}
+
+QLayout * PageNet::footerLayoutDefinition()
+{
+ QHBoxLayout * footerLayout = new QHBoxLayout();
+
+ BtnNetSvrStart = formattedButton(QPushButton::tr("Start server"));
+ BtnNetSvrStart->setMinimumWidth(180);
+ BtnNetSvrStart->setVisible(haveServer);
+
+ footerLayout->addStretch();
+ footerLayout->addWidget(BtnNetSvrStart);
+
+ return footerLayout;
+}
+
+void PageNet::connectSignals()
+{
+ connect(BtnNetConnect, SIGNAL(clicked()), this, SLOT(slotConnect()));
+}
+
+PageNet::PageNet(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PageNet::updateServersList()
+{
+ tvServersList->setModel(new HWNetUdpModel(tvServersList));
+
+ tvServersList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
+
+ static_cast<HWNetServersModel *>(tvServersList->model())->updateList();
+
+ connect(BtnUpdateSList, SIGNAL(clicked()), static_cast<HWNetServersModel *>(tvServersList->model()), SLOT(updateList()));
+ connect(tvServersList, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotConnect()));
+}
+
+void PageNet::slotConnect()
+{
+ HWNetServersModel * model = static_cast<HWNetServersModel *>(tvServersList->model());
+ QModelIndex mi = tvServersList->currentIndex();
+ if(!mi.isValid())
+ {
+ QMessageBox::information(this, tr("Error"), tr("Please select server from the list above"));
+ return;
+ }
+ QString host = model->index(mi.row(), 1).data().toString();
+ quint16 port = model->index(mi.row(), 2).data().toUInt();
+
+ emit connectClicked(host, port);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenet.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,56 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_NET_H
+#define PAGE_NET_H
+
+#include "AbstractPage.h"
+
+class PageNet : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageNet(QWidget* parent = 0);
+
+ QPushButton* BtnUpdateSList;
+ QTableView * tvServersList;
+ QPushButton * BtnNetConnect;
+ QPushButton * BtnNetSvrStart;
+ QPushButton * BtnSpecifyServer;
+
+public slots:
+ void updateServersList();
+
+signals:
+ void connectClicked(const QString & host, quint16 port);
+
+private:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+ QGroupBox * ConnGroupBox;
+ QGridLayout * GBClayout;
+
+private slots:
+ void slotConnect();
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenetgame.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,176 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QAction>
+#include <QMenu>
+#include <QMessageBox>
+
+#include "pagenetgame.h"
+#include "gamecfgwidget.h"
+#include "teamselect.h"
+#include "chatwidget.h"
+
+QLayout * PageNetGame::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ pageLayout->setSizeConstraint(QLayout::SetMinimumSize);
+ //pageLayout->setSpacing(1);
+ pageLayout->setColumnStretch(0, 50);
+ pageLayout->setColumnStretch(1, 50);
+
+ // chatwidget
+ pChatWidget = new HWChatWidget(this, m_gameSettings, true);
+ pChatWidget->setShowReady(true); // show status bulbs by default
+ pChatWidget->setShowFollow(false); // don't show follow in nicks' context menus
+ pageLayout->addWidget(pChatWidget, 2, 0, 1, 2);
+ pageLayout->setRowStretch(1, 100);
+ pageLayout->setRowStretch(2, 100);
+
+ pGameCFG = new GameCFGWidget(this);
+ pageLayout->addWidget(pGameCFG, 0, 0);
+
+ btnSetup = new QPushButton(this);
+ btnSetup->setText(QPushButton::tr("Setup"));
+ pageLayout->addWidget(btnSetup, 1, 0);
+
+ pNetTeamsWidget = new TeamSelWidget(this);
+ pNetTeamsWidget->setAcceptOuter(true);
+ pageLayout->addWidget(pNetTeamsWidget, 0, 1, 2, 1);
+
+ return pageLayout;
+}
+
+QLayout * PageNetGame::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout;
+
+ leRoomName = new HistoryLineEdit(this,10);
+ leRoomName->setMaxLength(60);
+ leRoomName->setMinimumWidth(200);
+ leRoomName->setMaximumWidth(400);
+
+ BtnGo = new QPushButton(this);
+ BtnGo->setToolTip(QPushButton::tr("Ready"));
+ BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
+ BtnGo->setIconSize(QSize(25, 34));
+ BtnGo->setMinimumWidth(50);
+ BtnGo->setMinimumHeight(50);
+
+
+ bottomLayout->addWidget(leRoomName);
+ BtnUpdate = addButton(QAction::tr("Update"), bottomLayout, 1);
+
+ bottomLayout->addStretch();
+ bottomLayout->addWidget(BtnGo);
+
+ BtnMaster = addButton(tr("Control"), bottomLayout, 3);
+ bottomLayout->insertStretch(3, 100);
+
+ BtnStart = addButton(QAction::tr("Start"), bottomLayout, 3);
+
+ return bottomLayout;
+}
+
+void PageNetGame::connectSignals()
+{
+ connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked()));
+
+ connect(BtnUpdate, SIGNAL(clicked()), this, SLOT(onUpdateClick()));
+}
+
+PageNetGame::PageNetGame(QWidget* parent, QSettings * gameSettings) : AbstractPage(parent)
+{
+ m_gameSettings = gameSettings;
+
+ initPage();
+
+ QMenu * menu = new QMenu(BtnMaster);
+
+ restrictJoins = new QAction(QAction::tr("Restrict Joins"), menu);
+ restrictJoins->setCheckable(true);
+ restrictTeamAdds = new QAction(QAction::tr("Restrict Team Additions"), menu);
+ restrictTeamAdds->setCheckable(true);
+ //menu->addAction(startGame);
+ menu->addAction(restrictJoins);
+ menu->addAction(restrictTeamAdds);
+
+ BtnMaster->setMenu(menu);
+
+}
+
+
+void PageNetGame::displayError(const QString & message)
+{
+ pChatWidget->displayError(message);
+}
+
+
+void PageNetGame::displayNotice(const QString & message)
+{
+ pChatWidget->displayNotice(message);
+}
+
+void PageNetGame::displayWarning(const QString & message)
+{
+ pChatWidget->displayWarning(message);
+}
+
+
+void PageNetGame::setReadyStatus(bool isReady)
+{
+ if(isReady)
+ BtnGo->setIcon(QIcon(":/res/lightbulb_on.png"));
+ else
+ BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
+}
+
+void PageNetGame::onUpdateClick()
+{
+ if (!leRoomName->text().trimmed().isEmpty())
+ {
+ emit askForUpdateRoomName(leRoomName->text());
+ leRoomName->rememberCurrentText();
+ }
+ else
+ {
+ leRoomName->clear();
+ QMessageBox::critical(this,
+ tr("Error"),
+ tr("Please enter room name"),
+ tr("OK"));
+ }
+}
+
+
+void PageNetGame::setRoomName(const QString & roomName)
+{
+ leRoomName->setText(roomName);
+ leRoomName->rememberCurrentText();
+}
+
+void PageNetGame::setMasterMode(bool isMaster)
+{
+ BtnMaster->setVisible(isMaster);
+ BtnStart->setVisible(isMaster);
+ BtnUpdate->setVisible(isMaster);
+ leRoomName->setVisible(isMaster);
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenetgame.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,80 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_NETGAME_H
+#define PAGE_NETGAME_H
+
+#include "HistoryLineEdit.h"
+
+#include "AbstractPage.h"
+
+class HWChatWidget;
+class TeamSelWidget;
+class GameCFGWidget;
+
+class PageNetGame : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageNetGame(QWidget* parent, QSettings * gameSettings);
+
+ /**
+ * Sets the room name to display.
+ * @param roomName room name to be displayed.
+ */
+ void setRoomName(const QString & roomName);
+
+ void displayError(const QString & message);
+ void displayNotice(const QString & message);
+ void displayWarning(const QString & message);
+
+ QPushButton *BtnGo;
+ QPushButton *BtnMaster;
+ QPushButton *BtnStart;
+ QPushButton *BtnUpdate;
+
+ QAction * restrictJoins;
+ QAction * restrictTeamAdds;
+
+ HWChatWidget* pChatWidget;
+
+ TeamSelWidget* pNetTeamsWidget;
+ GameCFGWidget* pGameCFG;
+
+public slots:
+ void setReadyStatus(bool isReady);
+ void onUpdateClick();
+ void setMasterMode(bool isMaster);
+
+signals:
+ void SetupClicked();
+ void askForUpdateRoomName(const QString &);
+
+private:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+ QSettings * m_gameSettings;
+
+ HistoryLineEdit * leRoomName;
+ QPushButton * btnSetup;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenetserver.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,99 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QPushButton>
+#include <QGroupBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QSpinBox>
+
+#include "pagenetserver.h"
+
+QLayout * PageNetServer::bodyLayoutDefinition()
+{
+ QVBoxLayout * pageLayout = new QVBoxLayout();
+
+ QWidget * wg = new QWidget(this);
+ pageLayout->addWidget(wg);
+
+ QGridLayout * wgLayout = new QGridLayout(wg);
+ wgLayout->setColumnStretch(0, 1);
+ wgLayout->setColumnStretch(1, 3);
+ wgLayout->setColumnStretch(2, 1);
+
+ wgLayout->setRowStretch(0, 0);
+ wgLayout->setRowStretch(1, 1);
+
+ QGroupBox * gb = new QGroupBox(wg);
+ wgLayout->addWidget(gb, 0, 1);
+
+ QGridLayout * gbLayout = new QGridLayout(gb);
+
+ labelSD = new QLabel(gb);
+ labelSD->setText(QLabel::tr("Server name:"));
+ gbLayout->addWidget(labelSD, 0, 0);
+
+ leServerDescr = new QLineEdit(gb);
+ gbLayout->addWidget(leServerDescr, 0, 1);
+
+ labelPort = new QLabel(gb);
+ labelPort->setText(QLabel::tr("Server port:"));
+ gbLayout->addWidget(labelPort, 1, 0);
+
+ sbPort = new QSpinBox(gb);
+ sbPort->setMinimum(0);
+ sbPort->setMaximum(65535);
+ gbLayout->addWidget(sbPort, 1, 1);
+
+ BtnDefault = new QPushButton(gb);
+ BtnDefault->setText(QPushButton::tr("default"));
+ gbLayout->addWidget(BtnDefault, 1, 2);
+
+ return pageLayout;
+}
+
+QLayout * PageNetServer::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+
+ BtnStart = formattedButton(QPushButton::tr("Start"));
+ BtnStart->setMinimumWidth(180);
+
+ bottomLayout->addStretch();
+ bottomLayout->addWidget(BtnStart);
+
+ return bottomLayout;
+}
+
+void PageNetServer::connectSignals()
+{
+ connect(BtnDefault, SIGNAL(clicked()), this, SLOT(setDefaultPort()));
+}
+
+PageNetServer::PageNetServer(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PageNetServer::setDefaultPort()
+{
+ sbPort->setValue(46631);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenetserver.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,47 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_NETSERVER_H
+#define PAGE_NETSERVER_H
+
+#include "AbstractPage.h"
+
+class PageNetServer : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageNetServer(QWidget* parent = 0);
+
+ QPushButton *BtnStart;
+ QPushButton *BtnDefault;
+ QLabel *labelSD;
+ QLineEdit *leServerDescr;
+ QLabel *labelPort;
+ QSpinBox *sbPort;
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+private slots:
+ void setDefaultPort();
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenettype.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,47 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QPushButton>
+
+#include "pagenettype.h"
+
+
+QLayout * PageNetType::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ pageLayout->setRowStretch(0, 10);
+ pageLayout->setRowStretch(3, 10);
+
+ pageLayout->setColumnStretch(1, 10);
+ pageLayout->setColumnStretch(2, 20);
+ pageLayout->setColumnStretch(3, 10);
+
+ BtnLAN = addButton(tr("LAN game"), pageLayout, 1, 2);
+ BtnOfficialServer = addButton(tr("Official server"), pageLayout, 2, 2);
+
+ // hack: temporary deactivated - requires server modifications that aren't backward compatible (yet)
+ //BtnOfficialServer->setEnabled(false);
+
+ return pageLayout;
+}
+
+PageNetType::PageNetType(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagenettype.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,38 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_NETTYPE_H
+#define PAGE_NETTYPE_H
+
+#include "AbstractPage.h"
+
+class PageNetType : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageNetType(QWidget* parent = 0);
+
+ QPushButton * BtnLAN;
+ QPushButton * BtnOfficialServer;
+
+protected:
+ QLayout * bodyLayoutDefinition();
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageoptions.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,498 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QGroupBox>
+#include <QComboBox>
+#include <QCheckBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QSpinBox>
+#include <QTextBrowser>
+#include <QTableWidget>
+#include <QSlider>
+
+#include "pageoptions.h"
+#include "hwconsts.h"
+#include "fpsedit.h"
+#include "igbox.h"
+
+// TODO cleanup
+QLayout * PageOptions::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ pageLayout->setColumnStretch(0, 100);
+ pageLayout->setColumnStretch(1, 100);
+ pageLayout->setColumnStretch(2, 100);
+ pageLayout->setRowStretch(0, 0);
+ //pageLayout->setRowStretch(1, 100);
+ pageLayout->setRowStretch(2, 0);
+ pageLayout->setContentsMargins(7, 7, 7, 0);
+ pageLayout->setSpacing(0);
+
+
+ QGroupBox * gbTwoBoxes = new QGroupBox(this);
+ pageLayout->addWidget(gbTwoBoxes, 0, 0, 1, 3);
+ QGridLayout * gbTBLayout = new QGridLayout(gbTwoBoxes);
+ gbTBLayout->setMargin(0);
+ gbTBLayout->setSpacing(0);
+ gbTBLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
+
+ QPixmap pmNew(":/res/new.png");
+ QPixmap pmEdit(":/res/edit.png");
+ QPixmap pmDelete(":/res/delete.png");
+
+ {
+ teamsBox = new IconedGroupBox(this);
+ //teamsBox->setContentTopPadding(0);
+ //teamsBox->setAttribute(Qt::WA_PaintOnScreen, true);
+ teamsBox->setIcon(QIcon(":/res/teamicon.png"));
+ teamsBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ teamsBox->setTitle(QGroupBox::tr("Teams"));
+
+ QGridLayout * GBTlayout = new QGridLayout(teamsBox);
+
+ CBTeamName = new QComboBox(teamsBox);
+ GBTlayout->addWidget(CBTeamName, 0, 0);
+
+ BtnNewTeam = new QPushButton(teamsBox);
+ BtnNewTeam->setToolTip(tr("New team"));
+ BtnNewTeam->setIconSize(pmNew.size());
+ BtnNewTeam->setIcon(pmNew);
+ BtnNewTeam->setMaximumWidth(pmNew.width() + 6);
+ connect(BtnNewTeam, SIGNAL(clicked()), this, SIGNAL(newTeamRequested()));
+ GBTlayout->addWidget(BtnNewTeam, 0, 1);
+
+ BtnEditTeam = new QPushButton(teamsBox);
+ BtnEditTeam->setToolTip(tr("Edit team"));
+ BtnEditTeam->setIconSize(pmEdit.size());
+ BtnEditTeam->setIcon(pmEdit);
+ BtnEditTeam->setMaximumWidth(pmEdit.width() + 6);
+ connect(BtnEditTeam, SIGNAL(clicked()), this, SLOT(requestEditSelectedTeam()));
+ GBTlayout->addWidget(BtnEditTeam, 0, 2);
+
+ BtnDeleteTeam = new QPushButton(teamsBox);
+ BtnDeleteTeam->setToolTip(tr("Delete team"));
+ BtnDeleteTeam->setIconSize(pmDelete.size());
+ BtnDeleteTeam->setIcon(pmDelete);
+ BtnDeleteTeam->setMaximumWidth(pmDelete.width() + 6);
+ connect(BtnDeleteTeam, SIGNAL(clicked()), this, SLOT(requestDeleteSelectedTeam()));
+ GBTlayout->addWidget(BtnDeleteTeam, 0, 3);
+
+ LblNoEditTeam = new QLabel(teamsBox);
+ LblNoEditTeam->setText(tr("You can't edit teams from team selection. Go back to main menu to add, edit or delete teams."));
+ LblNoEditTeam->setWordWrap(true);
+ LblNoEditTeam->setVisible(false);
+ GBTlayout->addWidget(LblNoEditTeam, 0, 0);
+
+ gbTBLayout->addWidget(teamsBox, 0, 0);
+ }
+
+ {
+ IconedGroupBox* groupWeapons = new IconedGroupBox(this);
+
+ //groupWeapons->setContentTopPadding(0);
+ //groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ groupWeapons->setIcon(QIcon(":/res/weaponsicon.png"));
+ groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ groupWeapons->setTitle(QGroupBox::tr("Schemes and Weapons"));
+ QGridLayout * WeaponsLayout = new QGridLayout(groupWeapons);
+
+ QLabel* SchemeLabel = new QLabel(groupWeapons);
+ SchemeLabel->setText(QLabel::tr("Game scheme"));
+ WeaponsLayout->addWidget(SchemeLabel, 1, 0);
+
+ SchemesName = new QComboBox(groupWeapons);
+ WeaponsLayout->addWidget(SchemesName, 1, 1);
+
+ SchemeNew = new QPushButton(groupWeapons);
+ SchemeNew->setToolTip(tr("New scheme"));
+ SchemeNew->setIconSize(pmNew.size());
+ SchemeNew->setIcon(pmNew);
+ SchemeNew->setMaximumWidth(pmNew.width() + 6);
+ WeaponsLayout->addWidget(SchemeNew, 1, 2);
+
+ SchemeEdit = new QPushButton(groupWeapons);
+ SchemeEdit->setToolTip(tr("Edit scheme"));
+ SchemeEdit->setIconSize(pmEdit.size());
+ SchemeEdit->setIcon(pmEdit);
+ SchemeEdit->setMaximumWidth(pmEdit.width() + 6);
+ WeaponsLayout->addWidget(SchemeEdit, 1, 3);
+
+ SchemeDelete = new QPushButton(groupWeapons);
+ SchemeDelete->setToolTip(tr("Delete scheme"));
+ SchemeDelete->setIconSize(pmDelete.size());
+ SchemeDelete->setIcon(pmDelete);
+ SchemeDelete->setMaximumWidth(pmDelete.width() + 6);
+ WeaponsLayout->addWidget(SchemeDelete, 1, 4);
+
+ QLabel* WeaponLabel = new QLabel(groupWeapons);
+ WeaponLabel->setText(QLabel::tr("Weapons"));
+ WeaponsLayout->addWidget(WeaponLabel, 2, 0);
+
+ WeaponsName = new QComboBox(groupWeapons);
+ WeaponsLayout->addWidget(WeaponsName, 2, 1);
+
+ WeaponNew = new QPushButton(groupWeapons);
+ WeaponNew->setToolTip(tr("New weapon set"));
+ WeaponNew->setIconSize(pmNew.size());
+ WeaponNew->setIcon(pmNew);
+ WeaponNew->setMaximumWidth(pmNew.width() + 6);
+ WeaponsLayout->addWidget(WeaponNew, 2, 2);
+
+ WeaponEdit = new QPushButton(groupWeapons);
+ WeaponEdit->setToolTip(tr("Edit weapon set"));
+ WeaponEdit->setIconSize(pmEdit.size());
+ WeaponEdit->setIcon(pmEdit);
+ WeaponEdit->setMaximumWidth(pmEdit.width() + 6);
+ WeaponsLayout->addWidget(WeaponEdit, 2, 3);
+
+ WeaponDelete = new QPushButton(groupWeapons);
+ WeaponDelete->setToolTip(tr("Delete weapon set"));
+ WeaponDelete->setIconSize(pmDelete.size());
+ WeaponDelete->setIcon(pmDelete);
+ WeaponDelete->setMaximumWidth(pmDelete.width() + 6);
+ WeaponsLayout->addWidget(WeaponDelete, 2, 4);
+
+ WeaponTooltip = new QCheckBox(this);
+ WeaponTooltip->setText(QCheckBox::tr("Show ammo menu tooltips"));
+ WeaponsLayout->addWidget(WeaponTooltip, 3, 0, 1, 4);
+
+ gbTBLayout->addWidget(groupWeapons, 1, 0);
+ }
+
+ {
+ IconedGroupBox* groupMisc = new IconedGroupBox(this);
+ //groupMisc->setContentTopPadding(0);
+ groupMisc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ groupMisc->setIcon(QIcon(":/res/miscicon.png"));
+ //groupMisc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ groupMisc->setTitle(QGroupBox::tr("Misc"));
+ QGridLayout * MiscLayout = new QGridLayout(groupMisc);
+
+ labelNN = new QLabel(groupMisc);
+ labelNN->setText(QLabel::tr("Net nick"));
+ MiscLayout->addWidget(labelNN, 0, 0);
+
+ editNetNick = new QLineEdit(groupMisc);
+ editNetNick->setMaxLength(20);
+ editNetNick->setText(QLineEdit::tr("unnamed"));
+ connect(editNetNick, SIGNAL(editingFinished()), this, SLOT(trimNetNick()));
+ MiscLayout->addWidget(editNetNick, 0, 1);
+
+ labelNetPassword = new QLabel(groupMisc);
+ labelNetPassword->setText(QLabel::tr("Password"));
+ MiscLayout->addWidget(labelNetPassword, 1, 0);
+
+ editNetPassword = new QLineEdit(groupMisc);
+ editNetPassword->setEchoMode(QLineEdit::Password);
+ MiscLayout->addWidget(editNetPassword, 1, 1);
+
+ QLabel *labelLanguage = new QLabel(groupMisc);
+ labelLanguage->setText(QLabel::tr("Locale") + " *");
+ MiscLayout->addWidget(labelLanguage, 2, 0);
+
+ CBLanguage = new QComboBox(groupMisc);
+ QDir tmpdir;
+ tmpdir.cd(cfgdir->absolutePath());
+ tmpdir.cd("Data/Locale");
+ tmpdir.setFilter(QDir::Files);
+ QStringList locs = tmpdir.entryList(QStringList("hedgewars_*.qm"));
+ CBLanguage->addItem(QComboBox::tr("(System default)"), QString(""));
+ for(int i = 0; i < locs.count(); i++)
+ {
+ QLocale loc(locs[i].replace(QRegExp("hedgewars_(.*)\\.qm"), "\\1"));
+ CBLanguage->addItem(QLocale::languageToString(loc.language()) + " (" + QLocale::countryToString(loc.country()) + ")", loc.name());
+ }
+
+ tmpdir.cd(datadir->absolutePath());
+ tmpdir.cd("Locale");
+ tmpdir.setFilter(QDir::Files);
+ QStringList tmplist = tmpdir.entryList(QStringList("hedgewars_*.qm"));
+ for(int i = 0; i < tmplist.count(); i++)
+ {
+ if (locs.contains(tmplist[i])) continue;
+ QLocale loc(tmplist[i].replace(QRegExp("hedgewars_(.*)\\.qm"), "\\1"));
+ CBLanguage->addItem(QLocale::languageToString(loc.language()) + " (" + QLocale::countryToString(loc.country()) + ")", loc.name());
+ }
+
+ MiscLayout->addWidget(CBLanguage, 2, 1);
+
+ CBAltDamage = new QCheckBox(groupMisc);
+ CBAltDamage->setText(QCheckBox::tr("Alternative damage show"));
+ MiscLayout->addWidget(CBAltDamage, 3, 0, 1, 2);
+
+ CBNameWithDate = new QCheckBox(groupMisc);
+ CBNameWithDate->setText(QCheckBox::tr("Append date and time to record file name"));
+ MiscLayout->addWidget(CBNameWithDate, 4, 0, 1, 2);
+
+ BtnAssociateFiles = new QPushButton(groupMisc);
+ BtnAssociateFiles->setText(QPushButton::tr("Associate file extensions"));
+ BtnAssociateFiles->setEnabled(!custom_data && !custom_config);
+ MiscLayout->addWidget(BtnAssociateFiles, 5, 0, 1, 2);
+
+#ifdef __APPLE__
+#ifdef SPARKLE_ENABLED
+ CBAutoUpdate = new QCheckBox(groupMisc);
+ CBAutoUpdate->setText(QCheckBox::tr("Check for updates at startup"));
+ MiscLayout->addWidget(CBAutoUpdate, 6, 0, 1, 3);
+#endif
+#endif
+ gbTBLayout->addWidget(groupMisc, 2, 0);
+ }
+
+ {
+ AGGroupBox = new IconedGroupBox(this);
+ //AGGroupBox->setContentTopPadding(0);
+ AGGroupBox->setIcon(QIcon(":/res/graphicsicon.png"));
+ //AGGroupBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
+ AGGroupBox->setTitle(QGroupBox::tr("Audio/Graphic options"));
+
+ QVBoxLayout * GBAlayout = new QVBoxLayout(AGGroupBox);
+ QHBoxLayout * GBAreslayout = new QHBoxLayout(0);
+ QHBoxLayout * GBAstereolayout = new QHBoxLayout(0);
+ QHBoxLayout * GBAqualayout = new QHBoxLayout(0);
+
+ CBFrontendFullscreen = new QCheckBox(AGGroupBox);
+ CBFrontendFullscreen->setText(QCheckBox::tr("Frontend fullscreen"));
+ GBAlayout->addWidget(CBFrontendFullscreen);
+
+ CBFrontendEffects = new QCheckBox(AGGroupBox);
+ CBFrontendEffects->setText(QCheckBox::tr("Frontend effects") + " *");
+ GBAlayout->addWidget(CBFrontendEffects);
+
+ CBEnableFrontendSound = new QCheckBox(AGGroupBox);
+ CBEnableFrontendSound->setText(QCheckBox::tr("Enable frontend sounds"));
+ GBAlayout->addWidget(CBEnableFrontendSound);
+
+ CBEnableFrontendMusic = new QCheckBox(AGGroupBox);
+ CBEnableFrontendMusic->setText(QCheckBox::tr("Enable frontend music"));
+ GBAlayout->addWidget(CBEnableFrontendMusic);
+
+ QFrame * hr = new QFrame(AGGroupBox);
+ hr->setFrameStyle(QFrame::HLine);
+ hr->setLineWidth(3);
+ hr->setFixedHeight(10);
+ GBAlayout->addWidget(hr);
+
+ QLabel * resolution = new QLabel(AGGroupBox);
+ resolution->setText(QLabel::tr("Resolution"));
+ GBAreslayout->addWidget(resolution);
+
+ CBResolution = new QComboBox(AGGroupBox);
+ GBAreslayout->addWidget(CBResolution);
+ GBAlayout->addLayout(GBAreslayout);
+
+ CBFullscreen = new QCheckBox(AGGroupBox);
+ CBFullscreen->setText(QCheckBox::tr("Fullscreen"));
+ GBAlayout->addWidget(CBFullscreen);
+
+ QLabel * quality = new QLabel(AGGroupBox);
+ quality->setText(QLabel::tr("Quality"));
+ quality->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ GBAqualayout->addWidget(quality);
+
+ SLQuality = new QSlider(Qt::Horizontal, AGGroupBox);
+ SLQuality->setTickPosition(QSlider::TicksBelow);
+ SLQuality->setMaximum(5);
+ SLQuality->setMinimum(0);
+ SLQuality->setFixedWidth(150);
+ GBAqualayout->addWidget(SLQuality);
+ GBAlayout->addLayout(GBAqualayout);
+
+ QLabel * stereo = new QLabel(AGGroupBox);
+ stereo->setText(QLabel::tr("Stereo rendering"));
+ GBAstereolayout->addWidget(stereo);
+
+ CBStereoMode = new QComboBox(AGGroupBox);
+ CBStereoMode->addItem(QComboBox::tr("Disabled"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Cyan"));
+ CBStereoMode->addItem(QComboBox::tr("Cyan/Red"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Blue"));
+ CBStereoMode->addItem(QComboBox::tr("Blue/Red"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Green"));
+ CBStereoMode->addItem(QComboBox::tr("Green/Red"));
+ CBStereoMode->addItem(QComboBox::tr("Side-by-side"));
+ CBStereoMode->addItem(QComboBox::tr("Top-Bottom"));
+ CBStereoMode->addItem(QComboBox::tr("Wiggle"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Cyan grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Cyan/Red grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Blue grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Blue/Red grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Green grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Green/Red grayscale"));
+ connect(CBStereoMode, SIGNAL(currentIndexChanged(int)), this, SLOT(forceFullscreen(int)));
+
+ GBAstereolayout->addWidget(CBStereoMode);
+ GBAlayout->addLayout(GBAstereolayout);
+
+ hr = new QFrame(AGGroupBox);
+ hr->setFrameStyle(QFrame::HLine);
+ hr->setLineWidth(3);
+ hr->setFixedHeight(10);
+ GBAlayout->addWidget(hr);
+
+ QHBoxLayout * GBAvollayout = new QHBoxLayout(0);
+ QLabel * vol = new QLabel(AGGroupBox);
+ vol->setText(QLabel::tr("Initial sound volume"));
+ GBAvollayout->addWidget(vol);
+ GBAlayout->addLayout(GBAvollayout);
+ volumeBox = new QSpinBox(AGGroupBox);
+ volumeBox->setRange(0, 100);
+ volumeBox->setSingleStep(5);
+ GBAvollayout->addWidget(volumeBox);
+
+ CBEnableSound = new QCheckBox(AGGroupBox);
+ CBEnableSound->setText(QCheckBox::tr("Enable sound"));
+ GBAlayout->addWidget(CBEnableSound);
+
+ CBEnableMusic = new QCheckBox(AGGroupBox);
+ CBEnableMusic->setText(QCheckBox::tr("Enable music"));
+ GBAlayout->addWidget(CBEnableMusic);
+
+ hr = new QFrame(AGGroupBox);
+ hr->setFrameStyle(QFrame::HLine);
+ hr->setLineWidth(3);
+ hr->setFixedHeight(10);
+ GBAlayout->addWidget(hr);
+
+ QHBoxLayout * GBAfpslayout = new QHBoxLayout(0);
+ QLabel * maxfps = new QLabel(AGGroupBox);
+ maxfps->setText(QLabel::tr("FPS limit"));
+ GBAfpslayout->addWidget(maxfps);
+ GBAlayout->addLayout(GBAfpslayout);
+ fpsedit = new FPSEdit(AGGroupBox);
+ GBAfpslayout->addWidget(fpsedit);
+
+ CBShowFPS = new QCheckBox(AGGroupBox);
+ CBShowFPS->setText(QCheckBox::tr("Show FPS"));
+ GBAlayout->addWidget(CBShowFPS);
+
+ hr = new QFrame(AGGroupBox);
+ hr->setFrameStyle(QFrame::HLine);
+ hr->setLineWidth(3);
+ hr->setFixedHeight(10);
+ GBAlayout->addWidget(hr);
+
+ QLabel *restartNote = new QLabel(this);
+ restartNote->setText(QString("* ") + QLabel::tr("Restart game to apply"));
+ restartNote->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
+ GBAlayout->addWidget(restartNote);
+
+ gbTBLayout->addWidget(AGGroupBox, 0, 1, 3, 1);
+ }
+
+ previousQuality = this->SLQuality->value();
+ previousResolutionIndex = this->CBResolution->currentIndex();
+ previousFullscreenValue = this->CBFullscreen->isChecked();
+
+ return pageLayout;
+}
+
+QLayout * PageOptions::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+ btnSave = addButton(":/res/Save.png", bottomLayout, 0, true);
+ btnSave->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
+ bottomLayout->setAlignment(btnSave, Qt::AlignRight | Qt::AlignBottom);
+ return bottomLayout;
+}
+
+void PageOptions::connectSignals()
+{
+ connect(CBResolution, SIGNAL(currentIndexChanged(int)), this, SLOT(setResolution(int)));
+ connect(CBFullscreen, SIGNAL(stateChanged(int)), this, SLOT(setFullscreen(int)));
+ connect(SLQuality, SIGNAL(valueChanged(int)), this, SLOT(setQuality(int)));
+}
+
+PageOptions::PageOptions(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PageOptions::forceFullscreen(int index)
+{
+ bool forced = (index == 7 || index == 8 || index == 9);
+
+ if (index != 0) {
+ this->SLQuality->setValue(this->SLQuality->maximum());
+ this->SLQuality->setEnabled(false);
+ this->CBFullscreen->setEnabled(!forced);
+ this->CBFullscreen->setChecked(forced ? true : previousFullscreenValue);
+ this->CBResolution->setCurrentIndex(forced ? 0 : previousResolutionIndex);
+ } else {
+ this->SLQuality->setEnabled(true);
+ this->CBFullscreen->setEnabled(true);
+ this->SLQuality->setValue(previousQuality);
+ this->CBFullscreen->setChecked(previousFullscreenValue);
+ this->CBResolution->setCurrentIndex(previousResolutionIndex);
+ }
+}
+
+void PageOptions::setQuality(int value)
+{
+ Q_UNUSED(value);
+
+ int index = this->CBStereoMode->currentIndex();
+ if (index == 0)
+ previousQuality = this->SLQuality->value();
+}
+
+void PageOptions::setFullscreen(int state)
+{
+ Q_UNUSED(state);
+
+ int index = this->CBStereoMode->currentIndex();
+ if (index != 7 && index != 8 && index != 9)
+ previousFullscreenValue = this->CBFullscreen->isChecked();
+}
+
+void PageOptions::setResolution(int state)
+{
+ Q_UNUSED(state);
+
+ int index = this->CBStereoMode->currentIndex();
+ if (index != 7 && index != 8 && index != 9)
+ previousResolutionIndex = this->CBResolution->currentIndex();
+}
+
+void PageOptions::trimNetNick()
+{
+ editNetNick->setText(editNetNick->text().trimmed());
+}
+
+void PageOptions::requestEditSelectedTeam()
+{
+ emit editTeamRequested(CBTeamName->currentText());
+}
+
+void PageOptions::requestDeleteSelectedTeam()
+{
+ emit deleteTeamRequested(CBTeamName->currentText());
+}
+
+void PageOptions::setTeamOptionsEnabled(bool enabled)
+{
+ BtnNewTeam->setVisible(enabled);
+ BtnEditTeam->setVisible(enabled);
+ BtnDeleteTeam->setVisible(enabled);
+ CBTeamName->setVisible(enabled);
+ LblNoEditTeam->setVisible(!enabled);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageoptions.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,107 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_OPTIONS_H
+#define PAGE_OPTIONS_H
+
+#include "AbstractPage.h"
+
+class FPSEdit;
+class IconedGroupBox;
+
+class PageOptions : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageOptions(QWidget* parent = 0);
+
+ QCheckBox *WeaponTooltip;
+ QPushButton *WeaponNew;
+ QPushButton *WeaponEdit;
+ QPushButton *WeaponDelete;
+ QComboBox *WeaponsName;
+ QPushButton *SchemeNew;
+ QPushButton *SchemeEdit;
+ QPushButton *SchemeDelete;
+ QComboBox *SchemesName;
+
+ QComboBox *CBLanguage;
+
+ IconedGroupBox *teamsBox;;
+ QPushButton *BtnAssociateFiles;
+ QComboBox *CBTeamName;
+ IconedGroupBox *AGGroupBox;
+ QComboBox *CBResolution;
+ QComboBox *CBStereoMode;
+ QCheckBox *CBEnableSound;
+ QCheckBox *CBEnableFrontendSound;
+ QCheckBox *CBEnableMusic;
+ QCheckBox *CBEnableFrontendMusic;
+ QCheckBox *CBFullscreen;
+ QCheckBox *CBFrontendFullscreen;
+ QCheckBox *CBShowFPS;
+ QCheckBox *CBAltDamage;
+ QCheckBox *CBNameWithDate;
+#ifdef __APPLE__
+ QCheckBox *CBAutoUpdate;
+#endif
+
+ FPSEdit *fpsedit;
+ QPushButton *btnSave;
+ QLabel *labelNN;
+ QLabel *labelNetPassword;
+ QSpinBox * volumeBox;
+ QLineEdit *editNetNick;
+ QLineEdit *editNetPassword;
+ QSlider *SLQuality;
+ QCheckBox *CBFrontendEffects;
+
+ void setTeamOptionsEnabled(bool enabled);
+
+signals:
+ void newTeamRequested();
+ void editTeamRequested(const QString & teamName);
+ void deleteTeamRequested(const QString & teamName);
+
+
+private:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+ bool previousFullscreenValue;
+ int previousResolutionIndex;
+ int previousQuality;
+ QLabel *LblNoEditTeam;
+ QPushButton *BtnNewTeam;
+ QPushButton *BtnEditTeam;
+ QPushButton *BtnDeleteTeam;
+
+private slots:
+ void forceFullscreen(int index);
+ void setFullscreen(int state);
+ void setResolution(int state);
+ void setQuality(int value);
+ void trimNetNick();
+ void requestEditSelectedTeam();
+ void requestDeleteSelectedTeam();
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageplayrecord.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,165 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QFont>
+#include <QGridLayout>
+#include <QPushButton>
+#include <QListWidget>
+#include <QListWidgetItem>
+#include <QFileInfo>
+#include <QMessageBox>
+#include <QInputDialog>
+
+#include "hwconsts.h"
+#include "pageplayrecord.h"
+
+QLayout * PagePlayDemo::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ pageLayout->setColumnStretch(0, 1);
+ pageLayout->setColumnStretch(1, 2);
+ pageLayout->setColumnStretch(2, 1);
+ pageLayout->setRowStretch(2, 100);
+
+ BtnPlayDemo = new QPushButton(this);
+ BtnPlayDemo->setFont(*font14);
+ BtnPlayDemo->setText(QPushButton::tr("Play demo"));
+ pageLayout->addWidget(BtnPlayDemo, 3, 2);
+
+ BtnRenameRecord = new QPushButton(this);
+ BtnRenameRecord->setText(QPushButton::tr("Rename"));
+ pageLayout->addWidget(BtnRenameRecord, 0, 2);
+
+ BtnRemoveRecord = new QPushButton(this);
+ BtnRemoveRecord->setText(QPushButton::tr("Delete"));
+ pageLayout->addWidget(BtnRemoveRecord, 1, 2);
+
+ DemosList = new QListWidget(this);
+ DemosList->setGeometry(QRect(170, 10, 311, 311));
+ pageLayout->addWidget(DemosList, 0, 1, 3, 1);
+
+ return pageLayout;
+}
+
+void PagePlayDemo::connectSignals()
+{
+ connect(BtnRenameRecord, SIGNAL(clicked()), this, SLOT(renameRecord()));
+ connect(BtnRemoveRecord, SIGNAL(clicked()), this, SLOT(removeRecord()));
+}
+
+PagePlayDemo::PagePlayDemo(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PagePlayDemo::FillFromDir(RecordType rectype)
+{
+ QDir dir;
+ QString extension;
+
+ recType = rectype;
+
+ dir.cd(cfgdir->absolutePath());
+ if (rectype == RT_Demo)
+ {
+ dir.cd("Demos");
+ extension = "hwd";
+ BtnPlayDemo->setText(QPushButton::tr("Play demo"));
+ } else
+ {
+ dir.cd("Saves");
+ extension = "hws";
+ BtnPlayDemo->setText(QPushButton::tr("Load"));
+ }
+ dir.setFilter(QDir::Files);
+
+ QStringList sl = dir.entryList(QStringList(QString("*.%2.%1").arg(extension, *cProtoVer)));
+ sl.replaceInStrings(QRegExp(QString("^(.*)\\.%2\\.%1$").arg(extension, *cProtoVer)), "\\1");
+
+ DemosList->clear();
+ DemosList->addItems(sl);
+
+ for (int i = 0; i < DemosList->count(); ++i)
+ {
+ DemosList->item(i)->setData(Qt::UserRole, dir.absoluteFilePath(QString("%1.%3.%2").arg(sl[i], extension, *cProtoVer)));
+ DemosList->item(i)->setIcon(recType == RT_Demo ? QIcon(":/res/file_demo.png") : QIcon(":/res/file_save.png"));
+ }
+}
+
+void PagePlayDemo::renameRecord()
+{
+ QListWidgetItem * curritem = DemosList->currentItem();
+ if (!curritem)
+ {
+ QMessageBox::critical(this,
+ tr("Error"),
+ tr("Please select record from the list"),
+ tr("OK"));
+ return ;
+ }
+ QFile rfile(curritem->data(Qt::UserRole).toString());
+
+ QFileInfo finfo(rfile);
+
+ bool ok;
+
+ QString newname = QInputDialog::getText(this, tr("Rename dialog"), tr("Enter new file name:"), QLineEdit::Normal, finfo.completeBaseName().replace("." + *cProtoVer, ""), &ok);
+
+ if(ok && newname.size())
+ {
+ QString newfullname = QString("%1/%2.%3.%4")
+ .arg(finfo.absolutePath())
+ .arg(newname)
+ .arg(*cProtoVer)
+ .arg(finfo.suffix());
+
+ ok = rfile.rename(newfullname);
+ if(!ok)
+ QMessageBox::critical(this, tr("Error"), tr("Cannot rename to") + newfullname);
+ else
+ FillFromDir(recType);
+ }
+}
+
+void PagePlayDemo::removeRecord()
+{
+ QListWidgetItem * curritem = DemosList->currentItem();
+ if (!curritem)
+ {
+ QMessageBox::critical(this,
+ tr("Error"),
+ tr("Please select record from the list"),
+ tr("OK"));
+ return ;
+ }
+ QFile rfile(curritem->data(Qt::UserRole).toString());
+
+ bool ok;
+
+ ok = rfile.remove();
+ if(!ok)
+ QMessageBox::critical(this, tr("Error"), tr("Cannot delete file"));
+ else
+ FillFromDir(recType);
+}
+
+bool PagePlayDemo::isSave()
+{
+ return recType == RT_Save;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageplayrecord.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,61 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PLAYRECORDPAGE_H
+#define PLAYRECORDPAGE_H
+
+#include <QDir>
+
+#include "AbstractPage.h"
+
+class QPushButton;
+class QListWidget;
+
+class PagePlayDemo : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ enum RecordType {
+ RT_Demo,
+ RT_Save
+ };
+
+ PagePlayDemo(QWidget* parent = 0);
+
+ void FillFromDir(RecordType rectype);
+ bool isSave();
+
+ QPushButton *BtnPlayDemo;
+ QPushButton *BtnRenameRecord;
+ QPushButton *BtnRemoveRecord;
+ QListWidget *DemosList;
+
+private:
+ QLayout * bodyLayoutDefinition();
+ void connectSignals();
+
+ RecordType recType;
+
+private slots:
+ void renameRecord();
+ void removeRecord();
+};
+
+
+#endif // PLAYRECORDPAGE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageroomslist.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,448 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QComboBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QMessageBox>
+#include <QHeaderView>
+#include <QTableWidget>
+
+#include "ammoSchemeModel.h"
+#include "pageroomslist.h"
+#include "hwconsts.h"
+#include "chatwidget.h"
+
+QLayout * PageRoomsList::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ QHBoxLayout * newRoomLayout = new QHBoxLayout();
+ QLabel * roomNameLabel = new QLabel(this);
+ roomNameLabel->setText(tr("Room Name:"));
+ roomName = new QLineEdit(this);
+ roomName->setMaxLength(60);
+ newRoomLayout->addWidget(roomNameLabel);
+ newRoomLayout->addWidget(roomName);
+ pageLayout->addLayout(newRoomLayout, 0, 0, 1, 2);
+
+ roomsList = new QTableWidget(this);
+ roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ roomsList->verticalHeader()->setVisible(false);
+ roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
+ roomsList->setAlternatingRowColors(true);
+ roomsList->setShowGrid(false);
+ roomsList->setSelectionMode(QAbstractItemView::SingleSelection);
+ pageLayout->addWidget(roomsList, 1, 0, 3, 2);
+ pageLayout->setRowStretch(2, 100);
+
+ QHBoxLayout * filterLayout = new QHBoxLayout();
+
+ QLabel * stateLabel = new QLabel(this);
+ CBState = new QComboBox(this);
+
+ filterLayout->addWidget(stateLabel);
+ filterLayout->addWidget(CBState);
+ filterLayout->addSpacing(30);
+
+ QLabel * ruleLabel = new QLabel(this);
+ ruleLabel->setText(tr("Rules:"));
+ CBRules = new QComboBox(this);
+
+ filterLayout->addWidget(ruleLabel);
+ filterLayout->addWidget(CBRules);
+ filterLayout->addSpacing(30);
+
+ QLabel * weaponLabel = new QLabel(this);
+ weaponLabel->setText(tr("Weapons:"));
+ CBWeapons = new QComboBox(this);
+
+ filterLayout->addWidget(weaponLabel);
+ filterLayout->addWidget(CBWeapons);
+ filterLayout->addSpacing(30);
+
+ QLabel * searchLabel = new QLabel(this);
+ searchLabel->setText(tr("Search:"));
+ searchText = new QLineEdit(this);
+ searchText->setMaxLength(60);
+ filterLayout->addWidget(searchLabel);
+ filterLayout->addWidget(searchText);
+
+ pageLayout->addLayout(filterLayout, 4, 0, 1, 2);
+
+ chatWidget = new HWChatWidget(this, m_gameSettings, false);
+ pageLayout->addWidget(chatWidget, 5, 0, 1, 3);
+ pageLayout->setRowStretch(5, 350);
+
+ BtnCreate = addButton(tr("Create"), pageLayout, 0, 2);
+ BtnJoin = addButton(tr("Join"), pageLayout, 1, 2);
+ BtnRefresh = addButton(tr("Refresh"), pageLayout, 3, 2);
+ BtnClear = addButton(tr("Clear"), pageLayout, 4, 2);
+
+ // strech all but the buttons column
+ pageLayout->setColumnStretch(0, 1);
+ pageLayout->setColumnStretch(1, 1);
+ pageLayout->setColumnStretch(2, 0);
+
+ CBRules->addItem(QComboBox::tr("Any"));
+ CBState->addItem(QComboBox::tr("Any"));
+ CBState->addItem(QComboBox::tr("In lobby"));
+ CBState->addItem(QComboBox::tr("In progress"));
+
+ return pageLayout;
+}
+
+QLayout * PageRoomsList::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+
+ lblCount = new QLabel(this);
+ bottomLayout->addWidget(lblCount, 0, Qt::AlignHCenter);
+ bottomLayout->setStretchFactor(lblCount, 1);
+ lblCount->setText("?");
+ lblCount->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
+
+ BtnAdmin = addButton(tr("Admin features"), bottomLayout, 1);
+ BtnAdmin->setMinimumWidth(160);
+
+ // strech left part
+ bottomLayout->setStretch(0, 1);
+ bottomLayout->setStretch(1, 0);
+
+ return bottomLayout;
+}
+
+void PageRoomsList::connectSignals()
+{
+ connect(chatWidget, SIGNAL(nickCountUpdate(const int)), this, SLOT(updateNickCounter(const int)));
+
+ connect(BtnCreate, SIGNAL(clicked()), this, SLOT(onCreateClick()));
+ connect(BtnJoin, SIGNAL(clicked()), this, SLOT(onJoinClick()));
+ connect(BtnRefresh, SIGNAL(clicked()), this, SLOT(onRefreshClick()));
+ connect(BtnClear, SIGNAL(clicked()), this, SLOT(onClearClick()));
+ connect(roomsList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(onJoinClick()));
+ connect(CBState, SIGNAL(currentIndexChanged (int)), this, SLOT(onRefreshClick()));
+ connect(CBRules, SIGNAL(currentIndexChanged (int)), this, SLOT(onRefreshClick()));
+ connect(CBWeapons, SIGNAL(currentIndexChanged (int)), this, SLOT(onRefreshClick()));
+ connect(searchText, SIGNAL(textChanged (const QString &)), this, SLOT(onRefreshClick()));
+ connect(this, SIGNAL(askJoinConfirmation (const QString &)), this, SLOT(onJoinConfirmation(const QString &)), Qt::QueuedConnection);
+}
+
+
+PageRoomsList::PageRoomsList(QWidget* parent, QSettings * gameSettings) :
+ AbstractPage(parent)
+{
+ m_gameSettings = gameSettings;
+
+ initPage();
+
+ // not the most elegant solution but it works
+ ammoSchemeModel = new AmmoSchemeModel(this, NULL);
+ for (int i = 0; i < ammoSchemeModel->predefSchemesNames.count(); i++)
+ CBRules->addItem(ammoSchemeModel->predefSchemesNames.at(i).toAscii().constData());
+
+ CBWeapons->addItem(QComboBox::tr("Any"));
+ for (int i = 0; i < cDefaultAmmos.count(); i++) {
+ QPair<QString,QString> ammo = cDefaultAmmos.at(i);
+ CBWeapons->addItem(ammo.first.toAscii().constData());
+ }
+
+ gameInLobby = false;
+}
+
+
+void PageRoomsList::displayError(const QString & message)
+{
+ chatWidget->displayError(message);
+}
+
+
+void PageRoomsList::displayNotice(const QString & message)
+{
+ chatWidget->displayNotice(message);
+}
+
+void PageRoomsList::displayWarning(const QString & message)
+{
+ chatWidget->displayWarning(message);
+}
+
+
+void PageRoomsList::setAdmin(bool flag)
+{
+ BtnAdmin->setVisible(flag);
+}
+
+void PageRoomsList::setRoomsList(const QStringList & list)
+{
+ QBrush red(QColor(255, 0, 0));
+ QBrush orange(QColor(127, 127, 0));
+ QBrush yellow(QColor(255, 255, 0));
+ QBrush green(QColor(0, 255, 0));
+
+ listFromServer = list;
+
+ QString selection = "";
+
+ if(QTableWidgetItem *item = roomsList->item(roomsList->currentRow(), 0))
+ selection = item->text();
+
+ roomsList->clear();
+ roomsList->setColumnCount(7);
+ roomsList->setHorizontalHeaderLabels(
+ QStringList() <<
+ QTableWidget::tr("Room Name") <<
+ QTableWidget::tr("C") <<
+ QTableWidget::tr("T") <<
+ QTableWidget::tr("Owner") <<
+ QTableWidget::tr("Map") <<
+ QTableWidget::tr("Rules") <<
+ QTableWidget::tr("Weapons")
+ );
+
+ // set minimum sizes
+// roomsList->horizontalHeader()->resizeSection(0, 200);
+// roomsList->horizontalHeader()->resizeSection(1, 50);
+// roomsList->horizontalHeader()->resizeSection(2, 50);
+// roomsList->horizontalHeader()->resizeSection(3, 100);
+// roomsList->horizontalHeader()->resizeSection(4, 100);
+// roomsList->horizontalHeader()->resizeSection(5, 100);
+// roomsList->horizontalHeader()->resizeSection(6, 100);
+
+ // set resize modes
+// roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
+
+ bool gameCanBeJoined = true;
+
+ if (list.size() % 8)
+ return;
+
+ roomsList->setRowCount(list.size() / 8);
+ for(int i = 0, r = 0; i < list.size(); i += 8, r++)
+ {
+ // if we are joining a game
+ // TODO: Should NOT be done here
+ if (gameInLobby) {
+ if (gameInLobbyName == list[i + 1]) {
+ gameCanBeJoined = list[i].compare("True");
+ }
+ }
+
+ // check filter settings
+ #define NO_FILTER_MATCH roomsList->setRowCount(roomsList->rowCount() - 1); --r; continue
+
+ if (list[i].compare("True") && CBState->currentIndex() == 2) { NO_FILTER_MATCH; }
+ if (list[i].compare("False") && CBState->currentIndex() == 1) { NO_FILTER_MATCH; }
+ if (CBRules->currentIndex() != 0 && list[i + 6].compare(CBRules->currentText())) { NO_FILTER_MATCH; }
+ if (CBWeapons->currentIndex() != 0 && list[i + 7].compare(CBWeapons->currentText())) { NO_FILTER_MATCH; }
+ bool found = list[i + 1].contains(searchText->text(), Qt::CaseInsensitive);
+ if (!found) {
+ for (int a = 4; a <= 7; ++a) {
+ QString compString = list[i + a];
+ if (a == 5 && compString == "+rnd+") {
+ compString = "Random Map";
+ } else if (a == 5 && compString == "+maze+") {
+ compString = "Random Maze";
+ } else if (a == 5 && compString == "+drawn+") {
+ compString = "Drawn Map";
+ }
+ if (compString.contains(searchText->text(), Qt::CaseInsensitive)) {
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!searchText->text().isEmpty() && !found) { NO_FILTER_MATCH; }
+
+ QTableWidgetItem * item;
+ item = new QTableWidgetItem(list[i + 1]); // room name
+ item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+
+ // pick appropriate room icon and tooltip (game in progress yes/no; later maybe locked rooms etc.)
+ if(list[i].compare("True"))
+ {
+ item->setIcon(QIcon(":/res/iconTime.png"));// game is in lobby
+ item->setToolTip(tr("This game is in lobby.\nYou may join and start playing once the game starts."));
+ }
+ else
+ {
+ item->setIcon(QIcon(":/res/iconDamage.png"));// game has started
+ item->setToolTip(tr("This game is in progress.\nYou may join and spectate now but you'll have to wait for the game to end to start playing."));
+ }
+
+ roomsList->setItem(r, 0, item);
+
+ item = new QTableWidgetItem(list[i + 2]); // number of clients
+ item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ item->setTextAlignment(Qt::AlignCenter);
+ item->setToolTip(tr("There are %1 clients connected to this room.", "", list[i + 2].toInt()).arg(list[i + 2]));
+ roomsList->setItem(r, 1, item);
+
+ item = new QTableWidgetItem(list[i + 3]); // number of teams
+ item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ item->setTextAlignment(Qt::AlignCenter);
+ item->setToolTip(tr("There are %1 teams participating in this room.", "", list[i + 3].toInt()).arg(list[i + 3]));
+ //Should we highlight "full" games? Might get misinterpreted
+ //if(list[i + 3].toInt() >= cMaxTeams)
+ // item->setForeground(red);
+ roomsList->setItem(r, 2, item);
+
+ item = new QTableWidgetItem(list[i + 4].left(15)); // name of host
+ item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ item->setToolTip(tr("%1 is the host. He may adjust settings and start the game.").arg(list[i + 4]));
+ roomsList->setItem(r, 3, item);
+
+ if(list[i + 5] == "+rnd+")
+ {
+ item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized)
+// FIXME - need real icons. Disabling until then
+// item->setIcon(QIcon(":/res/mapRandom.png"));
+ }
+ else if (list[i+5] == "+maze+")
+ {
+ item = new QTableWidgetItem(tr("Random Maze"));
+// FIXME - need real icons. Disabling until then
+// item->setIcon(QIcon(":/res/mapMaze.png"));
+ }
+ else
+ {
+ item = new QTableWidgetItem(list[i + 5]); // selected map
+
+ // check to see if we've got this map
+ // not perfect but a start
+ if(!mapList->contains(list[i + 5]))
+ {
+ item->setForeground(red);
+ item->setIcon(QIcon(":/res/mapMissing.png"));
+ }
+ else
+ {
+ // todo: mission icon?
+// FIXME - need real icons. Disabling until then
+// item->setIcon(QIcon(":/res/mapCustom.png"));
+ }
+ }
+
+ item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ item->setToolTip(tr("Games may be played on precreated or randomized maps."));
+ roomsList->setItem(r, 4, item);
+
+ item = new QTableWidgetItem(list[i + 6].left(24)); // selected game scheme
+ item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ item->setToolTip(tr("The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism."));
+ roomsList->setItem(r, 5, item);
+
+ item = new QTableWidgetItem(list[i + 7].left(24)); // selected weapon scheme
+ item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ item->setToolTip(tr("The Weapon Scheme defines available weapons and their ammunition count."));
+ roomsList->setItem(r, 6, item);
+
+ if(!list[i + 1].compare(selection) && !selection.isEmpty())
+ roomsList->selectionModel()->setCurrentIndex(roomsList->model()->index(r, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
+ }
+
+ roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
+ roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
+
+ // TODO: Should NOT be done here
+ if (gameInLobby) {
+ gameInLobby = false;
+ if (gameCanBeJoined) {
+ emit askForJoinRoom(gameInLobbyName);
+ } else {
+ emit askJoinConfirmation(gameInLobbyName);
+ }
+ }
+
+// roomsList->resizeColumnsToContents();
+}
+
+void PageRoomsList::onCreateClick()
+{
+ if (roomName->text().size())
+ emit askForCreateRoom(roomName->text());
+ else
+ QMessageBox::critical(this,
+ tr("Error"),
+ tr("Please enter room name"),
+ tr("OK"));
+}
+
+void PageRoomsList::onJoinClick()
+{
+ QTableWidgetItem * curritem = roomsList->item(roomsList->currentRow(), 0);
+ if (!curritem)
+ {
+ QMessageBox::critical(this,
+ tr("Error"),
+ tr("Please select room from the list"),
+ tr("OK"));
+ return;
+ }
+
+ for (int i = 0; i < listFromServer.size(); i += 8) {
+ if (listFromServer[i + 1] == curritem->data(Qt::DisplayRole).toString()) {
+ gameInLobby = listFromServer[i].compare("True");
+ break;
+ }
+ }
+
+ if (gameInLobby) {
+ gameInLobbyName = curritem->data(Qt::DisplayRole).toString();
+ emit askForRoomList();
+ } else {
+ emit askForJoinRoom(curritem->data(Qt::DisplayRole).toString());
+ }
+}
+
+void PageRoomsList::onRefreshClick()
+{
+ emit askForRoomList();
+}
+
+void PageRoomsList::onClearClick()
+{
+ CBState->setCurrentIndex(0);
+ CBRules->setCurrentIndex(0);
+ CBWeapons->setCurrentIndex(0);
+ searchText->clear();
+}
+
+void PageRoomsList::onJoinConfirmation(const QString & room)
+{
+ if (QMessageBox::warning(this,
+ tr("Warning"),
+ tr("The game you are trying to join has started.\nDo you still want to join the room?"),
+ QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
+ {
+ emit askForJoinRoom(room);
+ }
+}
+
+void PageRoomsList::updateNickCounter(int cnt)
+{
+ lblCount->setText(tr("%1 players online", 0, cnt).arg(cnt));
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageroomslist.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,84 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_ROOMLIST_H
+#define PAGE_ROOMLIST_H
+
+#include "AbstractPage.h"
+
+class HWChatWidget;
+class AmmoSchemeModel;
+
+class PageRoomsList : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageRoomsList(QWidget* parent, QSettings * config);
+ void displayError(const QString & message);
+ void displayNotice(const QString & message);
+ void displayWarning(const QString & message);
+
+ QLineEdit * roomName;
+ QLineEdit * searchText;
+ QTableWidget * roomsList;
+ QPushButton * BtnCreate;
+ QPushButton * BtnJoin;
+ QPushButton * BtnRefresh;
+ QPushButton * BtnAdmin;
+ QPushButton * BtnClear;
+ QComboBox * CBState;
+ QComboBox * CBRules;
+ QComboBox * CBWeapons;
+ HWChatWidget * chatWidget;
+ QLabel * lblCount;
+
+public slots:
+ void setRoomsList(const QStringList & list);
+ void setAdmin(bool);
+ void updateNickCounter(int cnt);
+
+signals:
+ void askForCreateRoom(const QString &);
+ void askForJoinRoom(const QString &);
+ void askForRoomList();
+ void askJoinConfirmation(const QString &);
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+private slots:
+ void onCreateClick();
+ void onJoinClick();
+ void onRefreshClick();
+ void onClearClick();
+ void onJoinConfirmation(const QString &);
+
+private:
+ QSettings * m_gameSettings;
+
+ bool gameInLobby;
+ QString gameInLobbyName;
+ QStringList listFromServer;
+ AmmoSchemeModel * ammoSchemeModel;
+
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagescheme.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,510 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QGroupBox>
+#include <QComboBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QMessageBox>
+#include <QDataWidgetMapper>
+#include <QSpinBox>
+
+#include "ammoSchemeModel.h"
+#include "pagescheme.h"
+#include "FreqSpinBox.h"
+
+
+QLayout * PageScheme::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+ QGroupBox * gb = new QGroupBox(this);
+
+ QGridLayout * gl = new QGridLayout();
+ gb->setLayout(gl);
+ QSizePolicy sp;
+ sp.setVerticalPolicy(QSizePolicy::MinimumExpanding);
+ sp.setHorizontalPolicy(QSizePolicy::Expanding);
+
+ pageLayout->addWidget(gb, 1,0,13,5);
+
+ gbGameModes = new QGroupBox(QGroupBox::tr("Game Modifiers"), gb);
+ gbBasicSettings = new QGroupBox(QGroupBox::tr("Basic Settings"), gb);
+
+ // TODO name stuff and put CSS into main style sheet
+ gbGameModes->setStyleSheet(".QGroupBox {"
+ "background-color: #130f2c; background-image:url();"
+ "}");
+ gbBasicSettings->setStyleSheet(".QGroupBox {"
+ "background-color: #130f2c; background-image:url();"
+ "}");
+
+ gbGameModes->setSizePolicy(sp);
+ gbBasicSettings->setSizePolicy(sp);
+ gl->addWidget(gbGameModes,0,0,1,3,Qt::AlignTop);
+ gl->addWidget(gbBasicSettings,0,3,1,3,Qt::AlignTop);
+
+ QGridLayout * glGMLayout = new QGridLayout(gbGameModes);
+ QGridLayout * glBSLayout = new QGridLayout(gbBasicSettings);
+ gbGameModes->setLayout(glGMLayout);
+ gbBasicSettings->setLayout(glBSLayout);
+ // Left
+
+ TBW_mode_Forts = new ToggleButtonWidget(gbGameModes, ":/res/btnForts@2x.png");
+ TBW_mode_Forts->setToolTip("<b>" + ToggleButtonWidget::tr("Fort Mode") + "</b>:<br />" + tr("Defend your fort and destroy the opponents, two team colours max!"));
+ glGMLayout->addWidget(TBW_mode_Forts,0,0,1,1);
+
+ TBW_teamsDivide = new ToggleButtonWidget(gbGameModes, ":/res/btnTeamsDivide@2x.png");
+ TBW_teamsDivide->setToolTip("<b>" + ToggleButtonWidget::tr("Divide Teams") + "</b>:<br />" + tr("Teams will start on opposite sides of the terrain, two team colours max!"));
+ glGMLayout->addWidget(TBW_teamsDivide,0,1,1,1);
+
+ TBW_solid = new ToggleButtonWidget(gbGameModes, ":/res/btnSolid@2x.png");
+ TBW_solid->setToolTip("<b>" + ToggleButtonWidget::tr("Solid Land") + "</b>:<br />" + tr("Land can not be destroyed!"));
+ glGMLayout->addWidget(TBW_solid,0,2,1,1);
+
+ TBW_border = new ToggleButtonWidget(gbGameModes, ":/res/btnBorder@2x.png");
+ TBW_border->setToolTip("<b>" + ToggleButtonWidget::tr("Add Border") + "</b>:<br />" + tr("Add an indestructible border around the terrain"));
+ glGMLayout->addWidget(TBW_border,0,3,1,1);
+
+ TBW_lowGravity = new ToggleButtonWidget(gbGameModes, ":/res/btnLowGravity@2x.png");
+ TBW_lowGravity->setToolTip("<b>" + ToggleButtonWidget::tr("Low Gravity") + "</b>:<br />" + tr("Lower gravity"));
+ glGMLayout->addWidget(TBW_lowGravity,0,4,1,1);
+
+ TBW_laserSight = new ToggleButtonWidget(gbGameModes, ":/res/btnLaserSight@2x.png");
+ TBW_laserSight->setToolTip("<b>" + ToggleButtonWidget::tr("Laser Sight") + "</b>:<br />" + tr("Assisted aiming with laser sight"));
+ glGMLayout->addWidget(TBW_laserSight,1,0,1,1);
+
+ TBW_invulnerable = new ToggleButtonWidget(gbGameModes, ":/res/btnInvulnerable@2x.png");
+ TBW_invulnerable->setToolTip("<b>" + ToggleButtonWidget::tr("Invulnerable") + "</b>:<br />" + tr("All hogs have a personal forcefield"));
+ glGMLayout->addWidget(TBW_invulnerable,1,1,1,1);
+
+ TBW_resethealth = new ToggleButtonWidget(gbGameModes, ":/res/btnResetHealth@2x.png");
+ TBW_resethealth->setToolTip("<b>" + ToggleButtonWidget::tr("Reset Health") + "</b>:<br />" + tr("All (living) hedgehogs are fully restored at the end of turn"));
+ glGMLayout->addWidget(TBW_resethealth,1,2,1,1);
+
+ TBW_vampiric = new ToggleButtonWidget(gbGameModes, ":/res/btnVampiric@2x.png");
+ TBW_vampiric->setToolTip("<b>" + ToggleButtonWidget::tr("Vampirism") + "</b>:<br />" + tr("Gain 80% of the damage you do back in health"));
+ glGMLayout->addWidget(TBW_vampiric,1,3,1,1);
+
+ TBW_karma = new ToggleButtonWidget(gbGameModes, ":/res/btnKarma@2x.png");
+ TBW_karma->setToolTip("<b>" + ToggleButtonWidget::tr("Karma") + "</b>:<br />" + tr("Share your opponents pain, share their damage"));
+ glGMLayout->addWidget(TBW_karma,1,4,1,1);
+
+ TBW_artillery = new ToggleButtonWidget(gbGameModes, ":/res/btnArtillery@2x.png");
+ TBW_artillery->setToolTip("<b>" + ToggleButtonWidget::tr("Artillery") + "</b>:<br />" + tr("Your hogs are unable to move, put your artillery skills to the test"));
+ glGMLayout->addWidget(TBW_artillery,2,0,1,1);
+
+ TBW_randomorder = new ToggleButtonWidget(gbGameModes, ":/res/btnRandomOrder@2x.png");
+ TBW_randomorder->setToolTip("<b>" + ToggleButtonWidget::tr("Random Order") + "</b>:<br />" + tr("Order of play is random instead of in room order."));
+ glGMLayout->addWidget(TBW_randomorder,2,1,1,1);
+
+ TBW_king = new ToggleButtonWidget(gbGameModes, ":/res/btnKing@2x.png");
+ TBW_king->setToolTip("<b>" + ToggleButtonWidget::tr("King") + "</b>:<br />" + tr("Play with a King. If he dies, your side dies."));
+ glGMLayout->addWidget(TBW_king,2,2,1,1);
+
+ TBW_placehog = new ToggleButtonWidget(gbGameModes, ":/res/btnPlaceHog@2x.png");
+ TBW_placehog->setToolTip("<b>" + ToggleButtonWidget::tr("Place Hedgehogs") + "</b>:<br />" + tr("Take turns placing your hedgehogs before the start of play."));
+ glGMLayout->addWidget(TBW_placehog,2,3,1,1);
+
+ TBW_sharedammo = new ToggleButtonWidget(gbGameModes, ":/res/btnSharedAmmo@2x.png");
+ TBW_sharedammo->setToolTip("<b>" + ToggleButtonWidget::tr("Clan Shares Ammo") + "</b>:<br />" + tr("Ammo is shared between all teams that share a colour."));
+ glGMLayout->addWidget(TBW_sharedammo,2,4,1,1);
+
+ TBW_disablegirders = new ToggleButtonWidget(gbGameModes, ":/res/btnDisableGirders@2x.png");
+ TBW_disablegirders->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Girders") + "</b>:<br />" + tr("Disable girders when generating random maps."));
+ glGMLayout->addWidget(TBW_disablegirders,3,0,1,1);
+
+ TBW_disablelandobjects = new ToggleButtonWidget(gbGameModes, ":/res/btnDisableLandObjects@2x.png");
+ TBW_disablelandobjects->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Land Objects") + "</b>:<br />" + tr("Disable land objects when generating random maps."));
+ glGMLayout->addWidget(TBW_disablelandobjects,3,1,1,1);
+
+ TBW_aisurvival = new ToggleButtonWidget(gbGameModes, ":/res/btnAISurvival@2x.png");
+ TBW_aisurvival->setToolTip("<b>" + ToggleButtonWidget::tr("AI Survival Mode") + "</b>:<br />" + tr("AI respawns on death."));
+ glGMLayout->addWidget(TBW_aisurvival,3,2,1,1);
+
+ TBW_infattack = new ToggleButtonWidget(gbGameModes, ":/res/btnInfAttack@2x.png");
+ TBW_infattack->setToolTip("<b>" + ToggleButtonWidget::tr("Unlimited Attacks") + "</b>:<br />" + tr("Attacking does not end your turn."));
+ glGMLayout->addWidget(TBW_infattack,3,3,1,1);
+
+ TBW_resetweps = new ToggleButtonWidget(gbGameModes, ":/res/btnResetWeps@2x.png");
+ TBW_resetweps->setToolTip("<b>" + ToggleButtonWidget::tr("Reset Weapons") + "</b>:<br />" + tr("Weapons are reset to starting values each turn."));
+ glGMLayout->addWidget(TBW_resetweps,3,4,1,1);
+
+ TBW_perhogammo = new ToggleButtonWidget(gbGameModes, ":/res/btnPerHogAmmo@2x.png");
+ TBW_perhogammo->setToolTip("<b>" + ToggleButtonWidget::tr("Per Hedgehog Ammo") + "</b>:<br />" + tr("Each hedgehog has its own ammo. It does not share with the team."));
+ glGMLayout->addWidget(TBW_perhogammo,4,0,1,1);
+
+ TBW_nowind = new ToggleButtonWidget(gbGameModes, ":/res/btnNoWind@2x.png");
+ TBW_nowind->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Wind") + "</b>:<br />" + tr("You will not have to worry about wind anymore."));
+ glGMLayout->addWidget(TBW_nowind,4,1,1,1);
+
+ TBW_morewind = new ToggleButtonWidget(gbGameModes, ":/res/btnMoreWind@2x.png");
+ TBW_morewind->setToolTip("<b>" + ToggleButtonWidget::tr("More Wind") + "</b>:<br />" + tr("Wind will affect almost everything."));
+ glGMLayout->addWidget(TBW_morewind,4,2,1,1);
+
+ TBW_tagteam = new ToggleButtonWidget(gbGameModes, ":/res/btnTagTeam@2x.png");
+ TBW_tagteam->setToolTip("<b>" + ToggleButtonWidget::tr("Tag Team") + "</b>:<br />" + tr("Teams in each clan take successive turns sharing their turn time."));
+ glGMLayout->addWidget(TBW_tagteam,4,3,1,1);
+
+ TBW_bottomborder = new ToggleButtonWidget(gbGameModes, ":/res/btnBottomBorder@2x.png");
+ TBW_bottomborder->setToolTip("<b>" + ToggleButtonWidget::tr("Add Bottom Border") + "</b>:<br />" + tr("Add an indestructible border along the bottom"));
+ glGMLayout->addWidget(TBW_bottomborder,4,4,1,1);
+
+
+ // Right
+ QLabel * l;
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Damage Modifier"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,0,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconDamage.png"));
+ glBSLayout->addWidget(l,0,1,1,1);
+ SB_DamageModifier = new QSpinBox(gbBasicSettings);
+ SB_DamageModifier->setRange(10, 300);
+ SB_DamageModifier->setValue(100);
+ SB_DamageModifier->setSingleStep(25);
+ glBSLayout->addWidget(SB_DamageModifier,0,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Turn Time"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,1,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconTime.png"));
+ glBSLayout->addWidget(l,1,1,1,1);
+ SB_TurnTime = new QSpinBox(gbBasicSettings);
+ SB_TurnTime->setRange(1, 9999);
+ SB_TurnTime->setValue(45);
+ SB_TurnTime->setSingleStep(15);
+ glBSLayout->addWidget(SB_TurnTime,1,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Initial Health"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,2,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconHealth.png"));
+ glBSLayout->addWidget(l,2,1,1,1);
+ SB_InitHealth = new QSpinBox(gbBasicSettings);
+ SB_InitHealth->setRange(50, 200);
+ SB_InitHealth->setValue(100);
+ SB_InitHealth->setSingleStep(25);
+ glBSLayout->addWidget(SB_InitHealth,2,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Sudden Death Timeout"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,3,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconSuddenDeath.png"));
+ glBSLayout->addWidget(l,3,1,1,1);
+ SB_SuddenDeath = new QSpinBox(gbBasicSettings);
+ SB_SuddenDeath->setRange(0, 50);
+ SB_SuddenDeath->setValue(15);
+ SB_SuddenDeath->setSingleStep(3);
+ glBSLayout->addWidget(SB_SuddenDeath,3,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Sudden Death Water Rise"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,4,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconSuddenDeath.png")); // TODO: icon
+ glBSLayout->addWidget(l,4,1,1,1);
+ SB_WaterRise = new QSpinBox(gbBasicSettings);
+ SB_WaterRise->setRange(0, 100);
+ SB_WaterRise->setValue(47);
+ SB_WaterRise->setSingleStep(5);
+ glBSLayout->addWidget(SB_WaterRise,4,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Sudden Death Health Decrease"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,5,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconSuddenDeath.png")); // TODO: icon
+ glBSLayout->addWidget(l,5,1,1,1);
+ SB_HealthDecrease = new QSpinBox(gbBasicSettings);
+ SB_HealthDecrease->setRange(0, 100);
+ SB_HealthDecrease->setValue(5);
+ SB_HealthDecrease->setSingleStep(1);
+ glBSLayout->addWidget(SB_HealthDecrease,5,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("% Rope Length"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,6,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconRope.png"));
+ glBSLayout->addWidget(l,6,1,1,1);
+ SB_RopeModifier = new QSpinBox(gbBasicSettings);
+ SB_RopeModifier->setRange(25, 999);
+ SB_RopeModifier->setValue(100);
+ SB_RopeModifier->setSingleStep(25);
+ glBSLayout->addWidget(SB_RopeModifier,6,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Crate Drops"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,7,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconBox.png"));
+ glBSLayout->addWidget(l,7,1,1,1);
+ SB_CaseProb = new FreqSpinBox(gbBasicSettings);
+ SB_CaseProb->setRange(0, 9);
+ SB_CaseProb->setValue(5);
+ glBSLayout->addWidget(SB_CaseProb,7,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("% Health Crates"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,8,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconHealth.png")); // TODO: icon
+ glBSLayout->addWidget(l,8,1,1,1);
+ SB_HealthCrates = new QSpinBox(gbBasicSettings);
+ SB_HealthCrates->setRange(0, 100);
+ SB_HealthCrates->setValue(35);
+ SB_HealthCrates->setSingleStep(5);
+ glBSLayout->addWidget(SB_HealthCrates,8,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Health in Crates"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,9,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconHealth.png")); // TODO: icon
+ glBSLayout->addWidget(l,9,1,1,1);
+ SB_CrateHealth = new QSpinBox(gbBasicSettings);
+ SB_CrateHealth->setRange(0, 200);
+ SB_CrateHealth->setValue(25);
+ SB_CrateHealth->setSingleStep(5);
+ glBSLayout->addWidget(SB_CrateHealth,9,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Mines Time"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,10,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconTime.png")); // TODO: icon
+ glBSLayout->addWidget(l,10,1,1,1);
+ SB_MinesTime = new QSpinBox(gbBasicSettings);
+ SB_MinesTime->setRange(-1, 5);
+ SB_MinesTime->setValue(3);
+ SB_MinesTime->setSingleStep(1);
+ SB_MinesTime->setSpecialValueText(tr("Random"));
+ SB_MinesTime->setSuffix(" "+ tr("Seconds"));
+ glBSLayout->addWidget(SB_MinesTime,10,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Mines"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,11,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconMine.png")); // TODO: icon
+ glBSLayout->addWidget(l,11,1,1,1);
+ SB_Mines = new QSpinBox(gbBasicSettings);
+ SB_Mines->setRange(0, 80);
+ SB_Mines->setValue(0);
+ SB_Mines->setSingleStep(5);
+ glBSLayout->addWidget(SB_Mines,11,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("% Dud Mines"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,12,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconDud.png"));
+ glBSLayout->addWidget(l,12,1,1,1);
+ SB_MineDuds = new QSpinBox(gbBasicSettings);
+ SB_MineDuds->setRange(0, 100);
+ SB_MineDuds->setValue(0);
+ SB_MineDuds->setSingleStep(5);
+ glBSLayout->addWidget(SB_MineDuds,12,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Explosives"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,13,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconDamage.png"));
+ glBSLayout->addWidget(l,13,1,1,1);
+ SB_Explosives = new QSpinBox(gbBasicSettings);
+ SB_Explosives->setRange(0, 40);
+ SB_Explosives->setValue(0);
+ SB_Explosives->setSingleStep(1);
+ glBSLayout->addWidget(SB_Explosives,13,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("% Get Away Time"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,14,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconTime.png"));
+ glBSLayout->addWidget(l,14,1,1,1);
+ SB_GetAwayTime = new QSpinBox(gbBasicSettings);
+ SB_GetAwayTime->setRange(0, 999);
+ SB_GetAwayTime->setValue(100);
+ SB_GetAwayTime->setSingleStep(25);
+ glBSLayout->addWidget(SB_GetAwayTime,14,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Scheme Name:"));
+
+ LE_name = new QLineEdit(this);
+
+ gl->addWidget(LE_name,15,1,1,5);
+ gl->addWidget(l,15,0,1,1);
+
+ return pageLayout;
+}
+
+QLayout * PageScheme::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLayout = new QHBoxLayout();
+ selectScheme = new QComboBox(this);
+
+ bottomLayout->addWidget(selectScheme, 0);
+ BtnCopy = addButton(tr("Copy"), bottomLayout, 1);
+ BtnNew = addButton(tr("New"), bottomLayout, 2);
+ BtnDelete = addButton(tr("Delete"), bottomLayout, 3);
+
+ bottomLayout->setStretch(1,1);
+ bottomLayout->setStretch(2,1);
+ bottomLayout->setStretch(3,1);
+
+ return bottomLayout;
+}
+
+void PageScheme::connectSignals()
+{
+ connect(BtnCopy, SIGNAL(clicked()), this, SLOT(copyRow()));
+ connect(BtnNew, SIGNAL(clicked()), this, SLOT(newRow()));
+ connect(BtnDelete, SIGNAL(clicked()), this, SLOT(deleteRow()));
+ mapper = new QDataWidgetMapper(this);
+ connect(selectScheme, SIGNAL(currentIndexChanged(int)), mapper, SLOT(setCurrentIndex(int)));
+ connect(selectScheme, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeSelected(int)));
+}
+
+PageScheme::PageScheme(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
+
+void PageScheme::setModel(QAbstractItemModel * model)
+{
+ mapper->setModel(model);
+ selectScheme->setModel(model);
+
+ mapper->addMapping(LE_name, 0);
+ mapper->addMapping(TBW_mode_Forts, 1);
+ mapper->addMapping(TBW_teamsDivide, 2);
+ mapper->addMapping(TBW_solid, 3);
+ mapper->addMapping(TBW_border, 4);
+ mapper->addMapping(TBW_lowGravity, 5);
+ mapper->addMapping(TBW_laserSight, 6);
+ mapper->addMapping(TBW_invulnerable, 7);
+ mapper->addMapping(TBW_resethealth, 8);
+ mapper->addMapping(TBW_vampiric, 9);
+ mapper->addMapping(TBW_karma, 10);
+ mapper->addMapping(TBW_artillery, 11);
+ mapper->addMapping(TBW_randomorder, 12);
+ mapper->addMapping(TBW_king, 13);
+ mapper->addMapping(TBW_placehog, 14);
+ mapper->addMapping(TBW_sharedammo, 15);
+ mapper->addMapping(TBW_disablegirders, 16);
+ mapper->addMapping(TBW_disablelandobjects, 17);
+ mapper->addMapping(TBW_aisurvival, 18);
+ mapper->addMapping(TBW_infattack, 19);
+ mapper->addMapping(TBW_resetweps, 20);
+ mapper->addMapping(TBW_perhogammo, 21);
+ mapper->addMapping(TBW_nowind, 22);
+ mapper->addMapping(TBW_morewind, 23);
+ mapper->addMapping(TBW_tagteam, 24);
+ mapper->addMapping(TBW_bottomborder, 25);
+ mapper->addMapping(SB_DamageModifier, 26);
+ mapper->addMapping(SB_TurnTime, 27);
+ mapper->addMapping(SB_InitHealth, 28);
+ mapper->addMapping(SB_SuddenDeath, 29);
+ mapper->addMapping(SB_CaseProb, 30);
+ mapper->addMapping(SB_MinesTime, 31);
+ mapper->addMapping(SB_Mines, 32);
+ mapper->addMapping(SB_MineDuds, 33);
+ mapper->addMapping(SB_Explosives, 34);
+ mapper->addMapping(SB_HealthCrates, 35);
+ mapper->addMapping(SB_CrateHealth, 36);
+ mapper->addMapping(SB_WaterRise, 37);
+ mapper->addMapping(SB_HealthDecrease, 38);
+ mapper->addMapping(SB_RopeModifier, 39);
+ mapper->addMapping(SB_GetAwayTime, 40);
+
+ mapper->toFirst();
+}
+
+void PageScheme::newRow()
+{
+ QAbstractItemModel * model = mapper->model();
+ model->insertRow(-1);
+ selectScheme->setCurrentIndex(model->rowCount() - 1);
+}
+
+void PageScheme::copyRow()
+{
+ QAbstractItemModel * model = mapper->model();
+ model->insertRow(selectScheme->currentIndex());
+ selectScheme->setCurrentIndex(model->rowCount() - 1);
+}
+
+void PageScheme::deleteRow()
+{
+ QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Schemes"), QMessageBox::tr("Really delete this game scheme?"), QMessageBox::Ok | QMessageBox::Cancel);
+
+ if (reallyDelete.exec() == QMessageBox::Ok) {
+ QAbstractItemModel * model = mapper->model();
+ model->removeRow(selectScheme->currentIndex());
+ }
+}
+
+void PageScheme::schemeSelected(int n)
+{
+ int c = ((AmmoSchemeModel*)mapper->model())->numberOfDefaultSchemes;
+ gbGameModes->setEnabled(n >= c);
+ gbBasicSettings->setEnabled(n >= c);
+ LE_name->setEnabled(n >= c);
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagescheme.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,104 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_SCHEME_H
+#define PAGE_SCHEME_H
+
+#include "AbstractPage.h"
+#include "togglebutton.h"
+
+class FreqSpinBox;
+
+class PageScheme : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageScheme(QWidget* parent = 0);
+
+ QPushButton * BtnCopy;
+ QPushButton * BtnNew;
+ QPushButton * BtnDelete;
+ QPushButton * btnSave;
+ QComboBox * selectScheme;
+
+ void setModel(QAbstractItemModel * model);
+
+public slots:
+ void newRow();
+ void copyRow();
+ void deleteRow();
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+private:
+ QDataWidgetMapper * mapper;
+ ToggleButtonWidget * TBW_mode_Forts;
+ ToggleButtonWidget * TBW_teamsDivide;
+ ToggleButtonWidget * TBW_solid;
+ ToggleButtonWidget * TBW_border;
+ ToggleButtonWidget * TBW_lowGravity;
+ ToggleButtonWidget * TBW_laserSight;
+ ToggleButtonWidget * TBW_invulnerable;
+ ToggleButtonWidget * TBW_resethealth;
+ ToggleButtonWidget * TBW_vampiric;
+ ToggleButtonWidget * TBW_karma;
+ ToggleButtonWidget * TBW_artillery;
+ ToggleButtonWidget * TBW_randomorder;
+ ToggleButtonWidget * TBW_king;
+ ToggleButtonWidget * TBW_placehog;
+ ToggleButtonWidget * TBW_sharedammo;
+ ToggleButtonWidget * TBW_disablegirders;
+ ToggleButtonWidget * TBW_disablelandobjects;
+ ToggleButtonWidget * TBW_aisurvival;
+ ToggleButtonWidget * TBW_infattack;
+ ToggleButtonWidget * TBW_resetweps;
+ ToggleButtonWidget * TBW_perhogammo;
+ ToggleButtonWidget * TBW_nowind;
+ ToggleButtonWidget * TBW_morewind;
+ ToggleButtonWidget * TBW_tagteam;
+ ToggleButtonWidget * TBW_bottomborder;
+
+ QSpinBox * SB_DamageModifier;
+ QSpinBox * SB_TurnTime;
+ QSpinBox * SB_InitHealth;
+ QSpinBox * SB_SuddenDeath;
+ QSpinBox * SB_WaterRise;
+ QSpinBox * SB_HealthDecrease;
+ FreqSpinBox * SB_CaseProb;
+ QSpinBox * SB_HealthCrates;
+ QSpinBox * SB_CrateHealth;
+ QSpinBox * SB_MinesTime;
+ QSpinBox * SB_Mines;
+ QSpinBox * SB_MineDuds;
+ QSpinBox * SB_Explosives;
+ QSpinBox * SB_RopeModifier;
+ QSpinBox * SB_GetAwayTime;
+ QLineEdit * LE_name;
+
+ QGroupBox * gbGameModes;
+ QGroupBox * gbBasicSettings;
+
+private slots:
+ void schemeSelected(int);
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageselectweapon.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,75 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QComboBox>
+
+#include "pageselectweapon.h"
+#include "hwconsts.h"
+#include "selectWeapon.h"
+
+QLayout * PageSelectWeapon::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+ pWeapons = new SelWeaponWidget(cAmmoNumber, this);
+ pageLayout->addWidget(pWeapons);
+
+ return pageLayout;
+}
+
+QLayout * PageSelectWeapon::footerLayoutDefinition()
+{
+ QGridLayout * bottomLayout = new QGridLayout();
+
+ selectWeaponSet = new QComboBox(this);
+ bottomLayout->addWidget(selectWeaponSet, 0, 0, 2, 1);
+
+ // first row
+ BtnNew = addButton(tr("New"), bottomLayout, 0, 1);
+ BtnDefault = addButton(tr("Default"), bottomLayout, 0, 2);
+
+ // second row
+ BtnCopy = addButton(tr("Copy"), bottomLayout, 1, 1);
+ BtnDelete = addButton(tr("Delete"), bottomLayout, 1, 2);
+
+ bottomLayout->setColumnStretch(1,1);
+ bottomLayout->setColumnStretch(2,1);
+
+ btnSave = addButton(":/res/Save.png", bottomLayout, 0, 3, 2, 1, true);
+ btnSave->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
+ bottomLayout->setAlignment(btnSave, Qt::AlignRight | Qt::AlignBottom);
+
+ return bottomLayout;
+}
+
+void PageSelectWeapon::connectSignals()
+{
+ connect(BtnDefault, SIGNAL(clicked()), pWeapons, SLOT(setDefault()));
+ connect(btnSave, SIGNAL(clicked()), pWeapons, SLOT(save()));
+ connect(BtnNew, SIGNAL(clicked()), pWeapons, SLOT(newWeaponsName()));
+ connect(BtnCopy, SIGNAL(clicked()), pWeapons, SLOT(copy()));
+ connect(selectWeaponSet, SIGNAL(currentIndexChanged(const QString&)), pWeapons, SLOT(setWeaponsName(const QString&)));
+}
+
+PageSelectWeapon::PageSelectWeapon(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pageselectweapon.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,47 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_SELECTWEAPON_H
+#define PAGE_SELECTWEAPON_H
+
+#include "AbstractPage.h"
+
+class SelWeaponWidget;
+
+class PageSelectWeapon : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageSelectWeapon(QWidget* parent = 0);
+
+ QPushButton *btnSave;
+ QPushButton *BtnDefault;
+ QPushButton *BtnDelete;
+ QPushButton *BtnNew;
+ QPushButton *BtnCopy;
+ SelWeaponWidget* pWeapons;
+ QComboBox* selectWeaponSet;
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagesingleplayer.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,83 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QPushButton>
+
+#include "pagesingleplayer.h"
+#include "gamecfgwidget.h"
+
+QLayout * PageSinglePlayer::bodyLayoutDefinition()
+{
+ QVBoxLayout * vLayout = new QVBoxLayout();
+
+ QHBoxLayout * topLine = new QHBoxLayout();
+ QHBoxLayout * middleLine = new QHBoxLayout();
+ vLayout->addStretch();
+ vLayout->addLayout(topLine);
+ vLayout->addSpacing(30);
+ vLayout->addLayout(middleLine);
+ vLayout->addStretch();
+
+ topLine->addStretch();
+ BtnSimpleGamePage = addButton(":/res/SimpleGame.png", topLine, 0, true);
+ BtnSimpleGamePage->setToolTip(tr("Simple Game (a quick game against the computer, settings are chosen for you)"));
+ topLine->addSpacing(60);
+ BtnMultiplayer = addButton(":/res/Multiplayer.png", topLine, 1, true);
+ BtnMultiplayer->setToolTip(tr("Multiplayer (play a hotseat game against your friends, or AI teams)"));
+ topLine->addStretch();
+
+
+ BtnCampaignPage = addButton(":/res/Campaign.png", middleLine, 0, true);
+ BtnCampaignPage->setToolTip(tr("Campaign Mode (...)"));
+ BtnCampaignPage->setVisible(false);
+
+ BtnTrainPage = addButton(":/res/Trainings.png", middleLine, 1, true);
+ BtnTrainPage->setToolTip(tr("Training Mode (Practice your skills in a range of training missions)"));
+
+ return vLayout;
+}
+
+QLayout * PageSinglePlayer::footerLayoutDefinition()
+{
+ QHBoxLayout * bottomLine = new QHBoxLayout();
+ bottomLine->addStretch();
+
+ BtnDemos = addButton(":/res/Record.png", bottomLine, 1, true);
+ BtnDemos->setToolTip(tr("Demos (Watch recorded demos)"));
+ BtnLoad = addButton(":/res/Load.png", bottomLine, 2, true);
+ BtnLoad->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
+ BtnLoad->setToolTip(tr("Load (Load a previously saved game)"));
+
+ bottomLine->setStretch(1,0);
+ bottomLine->setStretch(2,0);
+ bottomLine->setAlignment(BtnDemos, Qt::AlignRight | Qt::AlignBottom);
+ bottomLine->setAlignment(BtnLoad, Qt::AlignRight | Qt::AlignBottom);
+
+ return bottomLine;
+}
+
+void PageSinglePlayer::connectSignals()
+{
+ //TODO
+}
+
+PageSinglePlayer::PageSinglePlayer(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagesingleplayer.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,48 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_SINGLE_PLAYER_H
+#define PAGE_SINGLE_PLAYER_H
+
+#include "AbstractPage.h"
+
+class GameCFGWidget;
+
+class PageSinglePlayer : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageSinglePlayer(QWidget* parent = 0);
+
+ QPushButton *BtnSimpleGamePage;
+ QPushButton *BtnTrainPage;
+ QPushButton *BtnCampaignPage;
+ QPushButton *BtnMultiplayer;
+ QPushButton *BtnLoad;
+ QPushButton *BtnDemos;
+ GameCFGWidget *gameCFG;
+
+private:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagetraining.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,221 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QVBoxLayout>
+#include <QLabel>
+#include <QListWidget>
+#include <QListWidgetItem>
+#include <QPushButton>
+
+#include <QFile>
+#include <QLocale>
+#include <QSettings>
+
+#include "hwconsts.h"
+#include "HWDataManager.h"
+
+#include "pagetraining.h"
+
+QLayout * PageTraining::bodyLayoutDefinition()
+{
+ QGridLayout * pageLayout = new QGridLayout();
+
+// left column
+
+ // declare start button, caption and description
+ btnPreview = formattedButton(":/res/Trainings.png", true);
+ btnPreview->setToolTip(QPushButton::tr("Go!"));
+
+ // make both rows equal height
+ pageLayout->setRowStretch(0, 1);
+ pageLayout->setRowStretch(1, 1);
+
+ // add start button, caption and description to 3 different rows
+ pageLayout->addWidget(btnPreview, 0, 0);
+
+ // center preview
+ pageLayout->setAlignment(btnPreview, Qt::AlignRight | Qt::AlignVCenter);
+
+
+// right column
+
+ // info area (caption on top, description below)
+ QVBoxLayout * infoLayout = new QVBoxLayout();
+
+ lblCaption = new QLabel();
+ lblCaption->setMinimumWidth(360);
+ lblCaption->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
+ lblCaption->setWordWrap(true);
+ lblDescription = new QLabel();
+ lblDescription->setMinimumWidth(360);
+ lblDescription->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
+ lblDescription->setWordWrap(true);
+
+ infoLayout->addWidget(lblCaption);
+ infoLayout->addWidget(lblDescription);
+
+ pageLayout->addLayout(infoLayout, 0, 1);
+ pageLayout->setAlignment(infoLayout, Qt::AlignLeft);
+
+
+ // mission list
+ lstMissions = new QListWidget(this);
+ pageLayout->addWidget(lstMissions, 1, 0, 1, 2); // span 2 columns
+
+ // let's not make the list use more space than needed
+ lstMissions->setFixedWidth(360);
+ pageLayout->setAlignment(lstMissions, Qt::AlignHCenter);
+
+ return pageLayout;
+}
+
+QLayout * PageTraining::footerLayoutDefinition()
+{
+ QBoxLayout * bottomLayout = new QVBoxLayout();
+
+ btnStart = formattedButton(QPushButton::tr("Go!"));
+ btnStart->setFixedWidth(140);
+
+ bottomLayout->addWidget(btnStart);
+
+ bottomLayout->setAlignment(btnStart, Qt::AlignRight | Qt::AlignVCenter);
+
+ return bottomLayout;
+}
+
+
+void PageTraining::connectSignals()
+{
+ connect(lstMissions, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(updateInfo()));
+ connect(lstMissions, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateInfo()));
+ connect(lstMissions, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(startSelected()));
+ connect(btnPreview, SIGNAL(clicked()), this, SLOT(startSelected()));
+ connect(btnStart, SIGNAL(clicked()), this, SLOT(startSelected()));
+}
+
+
+PageTraining::PageTraining(QWidget* parent) : AbstractPage(parent)
+{
+ initPage();
+
+ HWDataManager & dataMgr = HWDataManager::instance();
+
+ // get locale
+ QSettings settings(cfgdir->absolutePath() + "/hedgewars.ini",
+ QSettings::IniFormat);
+
+ QString loc = settings.value("misc/locale", "").toString();
+ if (loc.isEmpty())
+ loc = QLocale::system().name();
+
+ QString infoFile = dataMgr.findFileForRead(
+ QString("Locale/missions_" + loc + ".txt"));
+
+ // if file is non-existant try with language only
+ if (!QFile::exists(infoFile))
+ infoFile = dataMgr.findFileForRead(QString(
+ "Locale/missions_" + loc.remove(QRegExp("_.*$")) + ".txt"));
+
+ // fallback if file for current locale is non-existant
+ if (!QFile::exists(infoFile))
+ infoFile = dataMgr.findFileForRead(QString("Locale/missions_en.txt"));
+
+
+ // preload mission info for current locale
+ m_info = new QSettings(infoFile, QSettings::IniFormat, this);
+
+
+ QStringList missionList = dataMgr.entryList(
+ "Missions/Training",
+ QDir::Files, QStringList("*.lua")).
+ replaceInStrings(QRegExp("\\.lua$"), "");
+
+ // scripts to lost - TODO: model?
+ foreach (const QString & mission, missionList)
+ {
+ QListWidgetItem * item = new QListWidgetItem(mission);
+
+ // fallback name: replace underscores in mission name with spaces
+ QString name = item->text().replace("_", " ");
+
+ // see if we can get a prettier/translated name
+ name = m_info->value(mission + ".name", name).toString();
+
+ item->setText(name);
+
+ // store original name in data
+ item->setData(Qt::UserRole, mission);
+
+ lstMissions->addItem(item);
+ }
+
+ updateInfo();
+
+ // pre-select first mission
+ if (lstMissions->count() > 0)
+ lstMissions->setCurrentRow(0);
+}
+
+
+void PageTraining::startSelected()
+{
+ QListWidgetItem * curItem = lstMissions->currentItem();
+
+ if (curItem != NULL)
+ emit startMission(curItem->data(Qt::UserRole).toString());
+}
+
+
+void PageTraining::updateInfo()
+{
+ HWDataManager & dataMgr = HWDataManager::instance();
+
+ if (lstMissions->currentItem())
+ {
+ // TODO also use .pngs in userdata folder
+ QString thumbFile = dataMgr.findFileForRead(
+ "Graphics/Missions/Training/" +
+ lstMissions->currentItem()->data(Qt::UserRole).toString() +
+ "@2x.png");
+
+ if (QFile::exists(thumbFile))
+ btnPreview->setIcon(QIcon(thumbFile));
+ else
+ btnPreview->setIcon(QIcon(":/res/Trainings.png"));
+
+ QString realName = lstMissions->currentItem()->data(
+ Qt::UserRole).toString();
+
+ QString caption = m_info->value(realName + ".name",
+ lstMissions->currentItem()->text()).toString();
+
+ QString description = m_info->value(realName + ".desc",
+ tr("No description available")).toString();
+
+ lblCaption->setText("<h2>" + caption +"</h2>");
+ lblDescription->setText(description);
+ }
+ else
+ {
+ btnPreview->setIcon(QIcon(":/res/Trainings.png"));
+ lblCaption->setText(tr("Select a mission!"));
+ // TODO better text and tr()
+ lblDescription->setText("");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/page/pagetraining.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,58 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef PAGE_TRAINING_H
+#define PAGE_TRAINING_H
+
+#include "AbstractPage.h"
+
+class PageTraining : public AbstractPage
+{
+ Q_OBJECT
+
+public:
+ PageTraining(QWidget* parent = 0);
+
+
+signals:
+ void startMission(const QString & scriptName);
+
+
+protected:
+ QLayout * bodyLayoutDefinition();
+ QLayout * footerLayoutDefinition();
+ void connectSignals();
+
+
+private:
+ QPushButton * btnPreview;
+ QPushButton * btnStart;
+ QLabel * lblCaption;
+ QLabel * lblDescription;
+ QListWidget * lstMissions;
+ QSettings * m_info;
+
+
+private slots:
+ void startSelected();
+ void updateInfo();
+
+};
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/qaspectratiolayout.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,206 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation.
+ */
+
+#include "qaspectratiolayout.h"
+
+QAspectRatioLayout::QAspectRatioLayout(QWidget* parent, int spacing) : QLayout(parent) {
+ init(spacing);
+}
+
+QAspectRatioLayout::QAspectRatioLayout(int spacing) {
+ init(spacing);
+}
+
+QAspectRatioLayout::~QAspectRatioLayout() {
+ delete item;
+ delete lastReceivedRect;
+ delete _geometry;
+}
+
+void QAspectRatioLayout::init(int spacing) {
+ item = 0;
+ lastReceivedRect = new QRect(0, 0, 0, 0);
+ _geometry = new QRect(0, 0, 0, 0);
+ setSpacing(spacing);
+}
+
+
+/* Adds item if place isn't already taken. */
+void QAspectRatioLayout::add(QLayoutItem* item) {
+ if(!hasItem()) {
+ replaceItem(item);
+ }
+}
+
+/* Adds item if place isn't already taken. */
+void QAspectRatioLayout::addItem(QLayoutItem* item) {
+ if(!hasItem()) {
+ replaceItem(item);
+ }
+}
+
+/* Adds widget if place isn't already taken. */
+void QAspectRatioLayout::addWidget(QWidget* widget) {
+ if(!hasItem()) {
+ replaceItem(new QWidgetItem(widget));
+ }
+}
+
+/* Returns the item pointer and dereferences it here. */
+QLayoutItem* QAspectRatioLayout::take() {
+ QLayoutItem* item = 0;
+ if(this->hasItem()) {
+ item = this->item;
+ this->item = 0;
+ }
+ return item;
+}
+
+/* Returns the item pointer and dereferences it here. */
+QLayoutItem* QAspectRatioLayout::takeAt(int index) {
+ if(index != 0) {
+ return 0;
+ }
+ return this->take();
+}
+
+/* Returns the item pointer. */
+QLayoutItem* QAspectRatioLayout::itemAt(int index) const {
+ if(index != 0) {
+ return 0;
+ }
+ if(hasItem()) {
+ return this->item;
+ }
+ return 0;
+}
+
+/* Checks if we have an item. */
+bool QAspectRatioLayout::hasItem() const {
+ return this->item != 0;
+}
+
+/* Returns the count of items which can be either 0 or 1. */
+int QAspectRatioLayout::count() const {
+ int returnValue = 0;
+ if(hasItem()) {
+ returnValue = 1;
+ }
+ return returnValue;
+}
+
+/* Replaces the item with the new and returns the old. */
+QLayoutItem* QAspectRatioLayout::replaceItem(QLayoutItem* item) {
+ QLayoutItem* old = 0;
+ if(this->hasItem()) {
+ old = this->item;
+ }
+ this->item = item;
+ setGeometry(*this->_geometry);
+ return old;
+}
+
+/* Tells which way layout expands. */
+Qt::Orientations QAspectRatioLayout::expandingDirections() const {
+ return Qt::Horizontal | Qt::Vertical;
+}
+
+/* Tells which size is preferred. */
+QSize QAspectRatioLayout::sizeHint() const {
+ return this->item->minimumSize();
+}
+
+/* Tells minimum size. */
+QSize QAspectRatioLayout::minimumSize() const {
+ return this->item->minimumSize();
+}
+
+/*
+ * Tells if heightForWidth calculations is handled.
+ * It isn't since width isn't enough to calculate
+ * proper size.
+ */
+bool QAspectRatioLayout::hasHeightForWidth() const {
+ return false;
+}
+
+/* Replaces lastReceivedRect. */
+void QAspectRatioLayout::setLastReceivedRect(const QRect& rect) {
+ QRect* oldRect = this->lastReceivedRect;
+ this->lastReceivedRect = new QRect(rect.topLeft(), rect.size());
+ delete oldRect;
+}
+
+/* Returns geometry */
+QRect QAspectRatioLayout::geometry() {
+ return QRect(*this->_geometry);
+}
+
+/* Sets geometry to given size. */
+void QAspectRatioLayout::setGeometry(const QRect& rect) {
+ /*
+ * We check if the item is set and
+ * if size is the same previously received.
+ * If either is false nothing is done.
+ */
+ if(!this->hasItem() ||
+ areRectsEqual(*this->lastReceivedRect, rect)) {
+ return;
+ }
+ /* Replace the last received rectangle. */
+ setLastReceivedRect(rect);
+ /* Calculate proper size for the item relative to the received size. */
+ QSize properSize = calculateProperSize(rect.size());
+ /* Calculate center location in the rect and with item size. */
+ QPoint properLocation = calculateCenterLocation(rect.size(), properSize);
+ /* Set items geometry */
+ this->item->setGeometry(QRect(properLocation, properSize));
+ QRect* oldRect = this->_geometry;
+ /* Cache the calculated geometry. */
+ this->_geometry = new QRect(properLocation, properSize);
+ delete oldRect;
+ /* Super classes setGeometry */
+ QLayout::setGeometry(*this->_geometry);
+}
+
+/* Takes the shortest side and creates QSize
+ * with the shortest side as width and height. */
+QSize QAspectRatioLayout::calculateProperSize(QSize from) const {
+ QSize properSize;
+ if(from.height() * 2 < from.width()) {
+ properSize.setHeight(from.height() - this->margin());
+ properSize.setWidth(from.height() * 2 - this->margin());
+ }
+ else {
+ properSize.setWidth(from.width() - this->margin());
+ properSize.setHeight(from.width() / 2 - this->margin());
+ }
+ return properSize;
+}
+
+/* Calculates center location from the given height and width for item size. */
+QPoint QAspectRatioLayout::calculateCenterLocation(QSize from,
+ QSize itemSize) const {
+ QPoint centerLocation;
+ if((from.width() - itemSize.width()) > 0) {
+ centerLocation.setX((from.width() - itemSize.width())/2);
+ }
+ if((from.height() - itemSize.height()) > 0) {
+ centerLocation.setY((from.height() - itemSize.height())/2);
+ }
+ return centerLocation;
+}
+
+/* Compares if two QRects are equal. */
+bool QAspectRatioLayout::areRectsEqual(const QRect& a,
+ const QRect& b) const {
+ bool result = false;
+ if(a.x() == b.x() &&
+ a.y() == b.y() &&
+ a.height() == b.height() &&
+ a.width() == b.width()) {
+ result = true;
+ }
+ return result;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/qaspectratiolayout.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation.
+ */
+
+#ifndef QASPECTRATIOLAYOUT_H_
+#define QASPECTRATIOLAYOUT_H_
+
+#include <QLayout>
+#include <QPointer>
+#include <QRect>
+#include <QWidgetItem>
+#include <QLayoutItem>
+
+
+class QAspectRatioLayout : public QLayout
+{
+ Q_OBJECT
+
+public:
+ QAspectRatioLayout(QWidget* parent, int spacing =-1);
+ QAspectRatioLayout(int spacing = -1);
+ ~QAspectRatioLayout();
+
+ /* Convenience method */
+ virtual void add(QLayoutItem* item);
+
+/* http://doc.trolltech.com/qlayout.html#addItem */
+ virtual void addItem(QLayoutItem* item);
+ /* http://doc.trolltech.com/qlayout.html#addWidget */
+ virtual void addWidget(QWidget* widget);
+ /* http://doc.trolltech.com/qlayout.html#takeAt */
+ virtual QLayoutItem* takeAt(int index);
+ /* http://doc.trolltech.com/qlayout.html#itemAt */
+ virtual QLayoutItem* itemAt(int index) const;
+ /* http://doc.trolltech.com/qlayout.html#count */
+ virtual int count() const;
+
+ /*
+ * These are ours since we do have only one item.
+ */
+ virtual QLayoutItem* replaceItem(QLayoutItem* item);
+ virtual QLayoutItem* take();
+ virtual bool hasItem() const;
+
+/* http://doc.trolltech.com/qlayout.html#expandingDirections */
+ virtual Qt::Orientations expandingDirections() const;
+
+ /*
+ * This method contains most of the juice of this article.
+ * http://doc.trolltech.com/qlayoutitem.html#setGeometry
+ */
+ virtual void setGeometry(const QRect& rect);
+ /* http://doc.trolltech.com/qlayoutitem.html#geometry */
+ virtual QRect geometry();
+
+ /* http://doc.trolltech.com/qlayoutitem.html#sizeHint */
+ virtual QSize sizeHint() const;
+ /* http://doc.trolltech.com/qlayout.html#minimumSize */
+ virtual QSize minimumSize() const;
+ /* http://doc.trolltech.com/qlayoutitem.html#hasHeightForWidth */
+ virtual bool hasHeightForWidth() const;
+
+private:
+ /* Saves the last received rect. */
+ void setLastReceivedRect(const QRect& rect);
+ /* Used to initialize the object. */
+ void init(int spacing);
+ /* Calculates the maximum size for the item from the assigned size. */
+ QSize calculateProperSize(QSize from) const;
+ /* Calculates the center location from the assigned size and
+ * the items size. */
+ QPoint calculateCenterLocation(QSize from, QSize itemSize) const;
+ /* Check if two QRects are equal */
+ bool areRectsEqual(const QRect& a, const QRect& b) const;
+ /* Contains item reference */
+ QLayoutItem* item;
+ /*
+ * Used for caching so we won't do calculations every time
+ * setGeometry is called.
+ */
+ QRect* lastReceivedRect;
+ /* Contains geometry */
+ QRect* _geometry;
+
+};
+
+#endif /* QASPECTRATIOLAYOUT_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/FreqSpinBox.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,39 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief FreqSpinBox class implementation
+ */
+
+#include "FreqSpinBox.h"
+
+
+FreqSpinBox::FreqSpinBox(QWidget* parent) : QSpinBox(parent)
+{
+ // do nothing
+};
+
+
+QString FreqSpinBox::textFromValue(int value) const
+{
+ if (value == 0)
+ return tr("Never");
+ else
+ return tr("Every %1 turn", "", value).arg(value);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/FreqSpinBox.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,58 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief FreqSpinBox class definition
+ */
+
+#ifndef HEDGEWARS_FREQSPINBOX_H
+#define HEDGEWARS_FREQSPINBOX_H
+
+#include <QObject>
+#include <QSpinBox>
+
+/**
+ * <code>SpinBox</code> that returns its value as localized turn frequency.
+ * 'Never', 'Every Turn', 'Every 2 Turns', etc.
+ * @author unc0rr
+ * @since 0.9.12
+ */
+class FreqSpinBox : public QSpinBox
+{
+ Q_OBJECT
+
+public:
+ /**
+ * @brief Class constructor.
+ * @param parent parent widget.
+ */
+ FreqSpinBox(QWidget * parent);
+
+protected:
+ /**
+ * Returns it's value as localized frequency.
+ * 'Never', 'Every Turn', 'Every 2 Turns', etc.
+ * @param value integer value to be representing as string.
+ * @return the turn frequence-like string representation.
+ */
+ QString textFromValue(int value) const;
+};
+
+
+#endif // HEDGEWARS_FREQSPINBOX_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/HistoryLineEdit.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,142 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief HistoryLineEdit class implementation
+ */
+
+#include <QStringList>
+
+#include "HistoryLineEdit.h"
+
+HistoryLineEdit::HistoryLineEdit(QWidget * parent, int maxHistorySize)
+: QLineEdit(parent)
+{
+ m_curHistEntryIdx = 0;
+ m_maxHistorySize = maxHistorySize;
+ m_history = new QStringList();
+}
+
+
+HistoryLineEdit::~HistoryLineEdit()
+{
+ delete m_history;
+}
+
+
+void HistoryLineEdit::rememberCurrentText()
+{
+ QString newEntry = text();
+
+ // don't store whitespace-only/empty text
+ if (newEntry.trimmed().isEmpty())
+ return;
+
+ m_history->removeOne(newEntry); // no duplicates please
+ m_history->append(newEntry);
+
+ // do not keep more entries than allowed
+ if (m_history->size() > m_maxHistorySize)
+ m_history->removeFirst();
+
+ // we're looking at the latest entry
+ m_curHistEntryIdx = m_history->size() - 1;
+}
+
+
+void HistoryLineEdit::clear()
+{
+ QLineEdit::clear();
+ m_curHistEntryIdx = m_history->size();
+}
+
+
+void HistoryLineEdit::reset()
+{
+ // forget history
+ m_history->clear();
+ m_curHistEntryIdx = 0;
+}
+
+
+void HistoryLineEdit::navigateHistory(bool isGoingUp)
+{
+ // save possible changes to new entry
+ if ((m_curHistEntryIdx >= m_history->size() ||
+ (text() != m_history->at(m_curHistEntryIdx))))
+ {
+ rememberCurrentText();
+ }
+
+ if (isGoingUp)
+ m_curHistEntryIdx--;
+ else
+ m_curHistEntryIdx++;
+
+ // if Idx higher than valid range
+ if (m_curHistEntryIdx >= m_history->size())
+ {
+ QLineEdit::clear();
+ m_curHistEntryIdx = m_history->size();
+ }
+ // if Idx in valid range
+ else if (m_curHistEntryIdx >= 0)
+ {
+ setText(m_history->at(m_curHistEntryIdx));
+ }
+ // if Idx below 0
+ else
+ m_curHistEntryIdx = 0;
+
+}
+
+
+void HistoryLineEdit::keyPressEvent(QKeyEvent * event)
+{
+ int key = event->key(); // retrieve pressed key
+
+ // navigate history with arrow keys
+ if (event->modifiers() == Qt::NoModifier)
+ switch (key)
+ {
+ case Qt::Key_Escape:
+ clear();
+ event->accept();
+ break;
+
+ case Qt::Key_Up:
+ navigateHistory(true);
+ event->accept();
+ break;
+
+ case Qt::Key_Down:
+ navigateHistory(false);
+ event->accept();
+ break;
+
+ default:
+ QLineEdit::keyPressEvent(event);
+ break;
+ }
+ // otherwise forward keys to parent
+ else
+ QLineEdit::keyPressEvent(event);
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/HistoryLineEdit.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,111 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief HistoryLineEdit class definition
+ */
+
+#ifndef HEDGEWARS_HISTORYLINEEDIT
+#define HEDGEWARS_HISTORYLINEEDIT
+
+#include <QStringList>
+#include <QString>
+
+#include <QLineEdit>
+
+#include <QKeyEvent>
+
+
+class QLineEdit;
+
+/**
+ * @brief <code>QLineEdit</code> that features a history of previous contents,
+ * re-selectable using the arrow keys.
+ *
+ * @author sheepluva
+ * @since 0.9.17
+ */
+class HistoryLineEdit : public QLineEdit
+{
+ Q_OBJECT
+
+public:
+ /**
+ * @brief Class constructor.
+ * @param parent parent QWidget.
+ * @param maxHistorySize maximum amount of history entries kept.
+ */
+ HistoryLineEdit(QWidget * parent = 0, int maxHistorySize = 64);
+
+ /**
+ * @brief Class destructor.
+ */
+ ~HistoryLineEdit();
+
+ /**
+ * @brief Appends current text to history (if not only whitespaces);
+ */
+ void rememberCurrentText();
+
+ /**
+ * @brief Forget all history.
+ */
+ void reset();
+
+
+public slots:
+ /**
+ * @brief Clears the contents.
+ */
+ void clear();
+
+
+protected:
+ /**
+ * @brief Overrides method of parent class.
+ * Arrow keys are used for navigating the history.
+ *
+ * All other keys are forwarded to the parent's method.
+ *
+ * @param event the key event.
+ */
+ virtual void keyPressEvent(QKeyEvent * event);
+
+
+private:
+ int m_maxHistorySize; ///< the maximum allowed size for the history
+ int m_curHistEntryIdx; ///< the index of the displayed used entry
+
+ QStringList * m_history; ///< history of previous inputs
+
+ /**
+ * @brief Navigates content history in the desired direction.
+ *
+ * Note: no wrap-around on purpose (so that holding down/up will get the
+ * the user to the respective end rather than into an endless cycle :P)
+ *
+ * @param isGoingUp true: next older entry, false: next more recent entry.
+ */
+ void navigateHistory(bool isGoingUp);
+};
+
+
+
+#endif // HEDGEWARS_HISTORYLINEEDIT
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/SmartLineEdit.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,256 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief SmartLineEdit class implementation
+ */
+
+#include "SmartLineEdit.h"
+
+SmartLineEdit::SmartLineEdit(QWidget * parent, int maxHistorySize)
+: HistoryLineEdit(parent, maxHistorySize)
+{
+ m_whitespace = QRegExp("\\s");
+
+ m_cmds = new QStringList();
+ m_nicks = new QStringList();
+ m_sorted_nicks = new QMap<QString, QString>();
+
+ resetAutoCompletionStatus();
+
+ // reset autocompletion status when cursor is moved or content is changed
+ connect(this, SIGNAL(cursorPositionChanged(int, int)),
+ this, SLOT(resetAutoCompletionStatus()));
+ connect(this, SIGNAL(textChanged(const QString&)),
+ this, SLOT(resetAutoCompletionStatus()));
+}
+
+
+SmartLineEdit::~SmartLineEdit()
+{
+ delete m_cmds;
+ delete m_nicks;
+ delete m_sorted_nicks;
+}
+
+
+void SmartLineEdit::addCommands(const QStringList & commands)
+{
+ m_cmds->append(commands);
+}
+
+
+void SmartLineEdit::removeCommands(const QStringList & commands)
+{
+ foreach (const QString & cmd, commands)
+ {
+ m_cmds->removeAll(cmd);
+ }
+}
+
+
+void SmartLineEdit::addNickname(const QString & name)
+{
+ m_sorted_nicks->insert(name.toLower(), name);
+ m_nicks->append(name);
+}
+
+
+void SmartLineEdit::removeNickname(const QString & name)
+{
+ m_sorted_nicks->remove(name.toLower());
+ m_nicks->removeAll(name);
+}
+
+
+void SmartLineEdit::reset()
+{
+ // forget keywords
+ m_cmds->clear();
+ m_sorted_nicks->clear();
+ m_nicks->clear();
+ resetAutoCompletionStatus();
+
+ // forget history
+ HistoryLineEdit::reset();
+}
+
+
+bool SmartLineEdit::event(QEvent * event)
+{
+ // we only want special treatment for key press events
+ if (event->type() == QEvent::KeyPress)
+ {
+ QKeyEvent * keyEvent = static_cast<QKeyEvent*>(event);
+
+ // TAB key pressed and any useful chars in the matchMe -> let's process those
+ if ((keyEvent->key() == Qt::Key_Tab) && (!text().trimmed().isEmpty()))
+ {
+ keyPressEvent(keyEvent);
+ if (event->isAccepted())
+ return true;
+ }
+ }
+ return HistoryLineEdit::event(event);
+}
+
+void SmartLineEdit::keyPressEvent(QKeyEvent * event)
+{
+ int key = event->key(); // retrieve pressed key
+
+ // auto-complete on pressed TAB (except for whitespace-only contents)
+ if ((key == Qt::Key_Tab) && (!text().trimmed().isEmpty()))
+ {
+ autoComplete();
+ event->accept();
+ }
+ // clear contents on pressed ESC
+ else if ((event->modifiers() == Qt::NoModifier) && (key == Qt::Key_Escape))
+ {
+ clear();
+ event->accept();
+ }
+ // otherwise forward keys to parent
+ else
+ HistoryLineEdit::keyPressEvent(event);
+}
+
+
+void SmartLineEdit::autoComplete()
+{
+ QString match = "";
+ bool isNick = false;
+ QString matchMe = text();
+ QString prefix = "";
+ QString postfix = "";
+ bool isFirstWord;
+
+ // we are trying to rematch, so use the data from earlier
+ if (m_hasJustMatched)
+ {
+ // restore values from earlier auto-completion
+ matchMe = m_beforeMatch;
+ prefix = m_prefix;
+ postfix = m_postfix;
+ isFirstWord = prefix.isEmpty();
+ }
+ else
+ {
+ m_cmds->sort();
+ m_nicks = new QStringList(m_sorted_nicks->values());
+
+ int cp = cursorPosition();
+
+ // cursor is not in or at end/beginning of word
+ if ((cp = matchMe.length()) || (QString(matchMe.at(cp)).contains(m_whitespace)))
+ if ((cp < 1) || (QString(matchMe.at(cp-1)).contains(m_whitespace)))
+ return;
+
+ // crop matchMe at cursor position
+ prefix = matchMe.left (cp);
+ postfix = matchMe.right(matchMe.length()-cp);
+
+ matchMe = "";
+
+
+ // use the whole word the curser is on for matching
+ int prefixLen = prefix.lastIndexOf(m_whitespace) + 1;
+ int preWordLen = prefix.length() - prefixLen;
+ int postWordLen = postfix.indexOf(m_whitespace);
+ int postfixLen = 0;
+ if (postWordLen < 0)
+ postWordLen = postfix.length();
+ else
+ postfixLen = postfix.length() - (postWordLen + 1);
+
+ matchMe = prefix.right(preWordLen) + postfix.left(postWordLen);
+ prefix = prefix.left(prefixLen);
+ postfix = postfix.right(postfixLen);
+
+
+ isFirstWord = prefix.isEmpty(); // true if first word
+ }
+
+
+ if (isFirstWord)
+ {
+ // find matching commands
+ foreach (const QString & cmd, *m_cmds)
+ {
+ if (cmd.startsWith(matchMe, Qt::CaseInsensitive))
+ {
+ match = cmd;
+
+ // move match to end so next time new matches will be preferred
+ m_cmds->removeAll(cmd);
+ m_cmds->append(cmd);
+
+ break;
+ }
+ }
+ }
+
+ if (match.isEmpty())
+ {
+ // find matching nicks
+ foreach (const QString & nick, *m_nicks)
+ {
+ if (nick.startsWith(matchMe, Qt::CaseInsensitive))
+ {
+ match = nick;
+ isNick = true;
+
+ // move match to end so next time new matches will be prefered
+ m_nicks->removeAll(nick);
+ m_nicks->append(nick);
+
+ break;
+ }
+ }
+ }
+
+ // we found a single match?
+ if (!match.isEmpty())
+ {
+ // replace last word with match
+ // and append ':' if a name at the beginning of the matchMe got completed
+ // also add a space at the very end to ease further typing
+ QString addAfter = ((isNick && isFirstWord)?": ":" ");
+ match = prefix + match + addAfter;
+ setText(match + postfix);
+
+ setCursorPosition(match.length());
+
+ // save values for for the case a rematch is requested
+ m_beforeMatch = matchMe;
+ m_hasJustMatched = true;
+ m_prefix = prefix;
+ m_postfix = postfix;
+ }
+}
+
+void SmartLineEdit::resetAutoCompletionStatus()
+{
+ m_beforeMatch = "";
+ m_hasJustMatched = false;
+ m_prefix = "";
+ m_postfix = "";
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/SmartLineEdit.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,154 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief SmartLineEdit class definition
+ */
+
+#ifndef HEDGEWARS_SMARTLINEEDIT_H
+#define HEDGEWARS_SMARTLINEEDIT_H
+
+#include <QMap>
+#include <QString>
+#include <QStringList>
+
+#include <QEvent>
+#include <QKeyEvent>
+
+#include <QRegExp>
+
+#include "HistoryLineEdit.h"
+
+/**
+ * @brief {@link HistoryLineEdit} that features auto-completion with TAB key
+ * and clear with ESC key.
+ *
+ * Notes:
+ * <ul>
+ * <li>A Keyword can either be a command (if first word) or
+ * a nickname (completed regardless of position in text).</li>
+ * </ul>
+ *
+ * @author sheepluva
+ * @since 0.9.17
+ */
+class SmartLineEdit : public HistoryLineEdit
+{
+ Q_OBJECT
+
+public:
+ /**
+ * @brief Class constructor.
+ * @param parent parent QWidget.
+ * @param maxHistorySize maximum amount of history entries kept.
+ */
+ SmartLineEdit(QWidget * parent = 0, int maxHistorySize = 64);
+
+ /**
+ * @brief Class destructor.
+ */
+ ~SmartLineEdit();
+
+ /**
+ * @brief Adds commands to the auto-completion feature.
+ * @param commands list of commands to be added.
+ */
+ void addCommands(const QStringList & commands);
+
+ /**
+ * @brief Adds a single nickname to the auto-completion feature.
+ * @param nickname name to be added.
+ */
+ void addNickname(const QString & nickname);
+
+ /**
+ * @brief Removes commands from the auto-completion feature.
+ * @param commands list of commands to be removed.
+ */
+ void removeCommands(const QStringList & commands);
+
+ /**
+ * @brief Removes a single nickname from the auto-completion feature.
+ * @param nickname name to be removed.
+ */
+ void removeNickname(const QString & nickname);
+
+ /**
+ * @brief Forget all keywords and input history.
+ */
+ void reset();
+
+
+protected:
+ /**
+ * @brief Overrides method of parent class.
+ * Forward pressed TAB to parent class' method (for focus handling etc)
+ * only if line is empty.
+ *
+ * @param event the event.
+ * @return returns true if the event was recognized.
+ */
+ virtual bool event(QEvent * event);
+
+ /**
+ * @brief Overrides method of parent class.
+ * Autocompletes if TAB is reported as pressed key in the key event,
+ * ESC leads to the contents being cleared.
+ *
+ * Other keys are forwarded to parent method.
+ *
+ * @param event the key event.
+ */
+ virtual void keyPressEvent(QKeyEvent * event);
+
+
+private:
+ QRegExp m_whitespace; ///< regexp that matches a whitespace
+
+ QStringList * m_cmds; ///< list of recognized commands
+ QStringList * m_nicks; ///< list of recognized nicknames
+
+ /// recognized nicknames, sorted case-insensitive
+ QMap<QString, QString> * m_sorted_nicks;
+
+ // these variables contain information about the last replacement
+ // they get reset whenever cursor is moved or text is changed
+
+ QString m_beforeMatch; ///< the string that was just matched
+ bool m_hasJustMatched; ///< whether this widget just did an auto-completion
+ QString m_prefix; ///< prefix of the text replacement this widget just did
+ QString m_postfix; ///< postfix of the text replacement this widget just did
+
+ /**
+ * @brief Autocompletes the contents based on the known commands and/or names.
+ */
+ void autoComplete();
+
+
+private slots:
+ /**
+ * @brief Resets the information about the last match and text replacement.
+ */
+ void resetAutoCompletionStatus();
+};
+
+
+
+#endif // HEDGEWARS_SMARTLINEEDIT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/SquareLabel.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,50 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QPaintEvent>
+#include <QPainter>
+#include "SquareLabel.h"
+#include "hwform.h"
+
+SquareLabel::SquareLabel(QWidget * parent) :
+ QWidget(parent)
+{
+ if(frontendEffects) setAttribute(Qt::WA_PaintOnScreen, true);
+}
+
+void SquareLabel::paintEvent(QPaintEvent * event)
+{
+ Q_UNUSED(event);
+
+ QPainter painter(this);
+ int pixsize;
+ if (width() > height()) {
+ pixsize = height();
+ painter.translate((width() - pixsize) / 2, 0);
+ } else {
+ pixsize = width();
+ painter.translate(0, (height() - pixsize) / 2);
+ }
+ painter.drawPixmap(0, 0, pixsize, pixsize, pixmap.scaled(pixsize, pixsize, Qt::KeepAspectRatio));
+}
+
+void SquareLabel::setPixmap(const QPixmap & pixmap)
+{
+ this->pixmap = pixmap;
+ repaint();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/SquareLabel.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,41 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _SQUARELABEL_H
+#define _SQUARELABEL_H
+
+#include <QWidget>
+#include <QPixmap>
+
+class SquareLabel : public QWidget
+{
+ Q_OBJECT
+
+public:
+ SquareLabel(QWidget * parent = 0);
+
+ void setPixmap(const QPixmap & pixmap);
+protected:
+ virtual void paintEvent(QPaintEvent * event);
+
+private:
+ QPixmap pixmap;
+
+};
+
+#endif // _SQUARELABEL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/about.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,174 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QGridLayout>
+#include <QLabel>
+#include <QList>
+#include <QUrl>
+#include <QRegExp>
+#include "hwconsts.h"
+#include "SDLInteraction.h"
+
+#include "about.h"
+
+About::About(QWidget * parent) :
+ QWidget(parent)
+{
+ QGridLayout *mainLayout = new QGridLayout(this);
+
+ QLabel *imageLabel = new QLabel;
+ QImage image(":/res/Hedgehog.png");
+ imageLabel->setPixmap(QPixmap::fromImage(image));
+ imageLabel->setScaledContents(true);
+ imageLabel->setMinimumWidth(2.8);
+ imageLabel->setMaximumWidth(280);
+ imageLabel->setMinimumHeight(30);
+ imageLabel->setMaximumHeight(300);
+
+ mainLayout->addWidget(imageLabel, 0, 0, 2, 1);
+
+ QLabel *lbl1 = new QLabel(this);
+ lbl1->setOpenExternalLinks(true);
+ lbl1->setText(
+ "<style type=\"text/css\">"
+ "a { color: #ffcc00; }"
+// "a:hover { color: yellow; }"
+ "</style>"
+ "<div align=\"center\"><h1>Hedgewars</h1>"
+ "<h3>" + QLabel::tr("Version") + " " + *cVersionString + "</h3>"
+ "<p><a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a></p><br>" +
+ QLabel::tr("This program is distributed under the GNU General Public License v2") +
+ "</div>"
+ );
+ lbl1->setWordWrap(true);
+ mainLayout->addWidget(lbl1, 0, 1);
+
+ lbl2 = new QTextBrowser(this);
+
+ lbl2->setOpenExternalLinks(true);
+ lbl2->setText(
+ "<style type=\"text/css\">"
+ "a { color: #ffcc00; }"
+// "a:hover { color: yellow; }"
+ "</style>" +
+ QString("<h2>") +
+ QLabel::tr("Developers:") +
+ "</h2><p>"
+ "Engine, frontend, net server: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
+ "Many frontend improvements: Igor Ulyanov <<a href=\"mailto:disinbox@gmail.com\">disinbox@gmail.com</a>><br>"
+ "Many engine and frontend improvements: Derek Pomery <<a href=\"mailto:nemo@m8y.org\">nemo@m8y.org</a>><br>"
+ "Drill rocket, Ballgun, RC Plane weapons: Martin Boze <<a href=\"mailto:afffect@gmail.com\">afffect@gmail.com</a>><br>"
+ "Mine number and time game settings: David A. Cuadrado <<a href=\"mailto:krawek@gmail.com\">krawek@gmail.com</a>><br>"
+ "Frontend improvements: Martin Minarik <<a href=\"mailto:ttsmj@pokec.sk\">ttsmj@pokec.sk</a>><br>"
+ "Frontend improvements: Kristian Lehmann <<a href=\"mailto:email@thexception.net\">email@thexception.net</a>><br>"
+ "Mac OS X/iPhone port, OpenGL-ES conversion: Vittorio Giovara <<a href=\"mailto:vittorio.giovara@gmail.com\">vittorio.giovara@gmail.com</a>><br>"
+ "Many engine and frontend improvements (and bugs): Richard Karolyi <<a href=\"mailto:sheepluva@" "ercatec.net\">sheepluva@" "ercatec.net</a>><br>"
+ "Gamepad and Lua integration: Mario Liebisch <<a href=\"mailto:mario.liebisch@gmail.com\">mario.liebisch@gmail.com</a>><br>"
+ "Many engine improvements and graphics: Carlos Vives <<a href=\"mailto:mail@carlosvives.es\">mail@carlosvives.es</a>><br>"
+ "Maze maps: Henning Kühn <<a href=\"mailto:prg@cooco.de\">prg@cooco.de</a>><br>"
+ "Engine and frontend improvements: Henrik Rostedt <<a href=\"mailto:henrik.rostedt@gmail.com\">henrik.rostedt@gmail.com</a>><br>"
+ "Lua game modes and missions: John Lambert <<a href=\"mailto:redgrinner@gmail.com\">redgrinner@gmail.com</a>><br>"
+ "Frontend improvements: Mayur Pawashe <<a href=\"mailto:zorgiepoo@gmail.com\">zorgiepoo@gmail.com</a>><br>"
+ "Android port: Richard Deurwaarder <<a href=\"mailto:xeli@xelification.com\">xeli@xelification.com</a>><br>"
+ "</p><h2>" +
+
+ QLabel::tr("Art:") + "</h2>"
+ + QString::fromUtf8(
+ "<p>John Dum <<a href=\"mailto:fizzy@gmail.com\">fizzy@gmail.com</a>>"
+ "<br>"
+ "Joshua Frese <<a href=\"mailto:joshfrese@gmail.com\">joshfrese@gmail.com</a>>"
+ "<br>"
+ "Stanko Tadić <<a href=\"mailto:stanko@mfhinc.net\">stanko@mfhinc.net</a>>"
+ "<br>"
+ "Julien Koesten <<a href=\"mailto:julienkoesten@aol.com\">julienkoesten@aol.com</a>>"
+ "<br>"
+ "Joshua O'Sullivan <<a href=\"mailto:coheedftw@hotmail.co.uk\">coheedftw@hotmail.co.uk</a>>"
+ "<br>"
+ "Nils Lück <<a href=\"mailto:nils.luck.design@gmail.com\">nils.luck.design@gmail.com</a>>"
+ "<br>"
+ "Guillaume Englert <<a href=\"mailto:genglert@hybird.org\">genglert@hybird.org</a>>"
+ "<br>"
+ "Hats: Trey Perry <<a href=\"mailto:tx.perry.j@gmail.com\">tx.perry.j@gmail.com</a>>"
+ "</p><h2>") +
+ QLabel::tr("Sounds:") + "</h2>"
+ "Hedgehogs voice: Stephen Alexander <<a href=\"mailto:ArmagonNo1@gmail.com\">ArmagonNo1@gmail.com</a>>"
+ "<br>"
+ "John Dum <<a href=\"mailto:fizzy@gmail.com\">fizzy@gmail.com</a>>"
+ "<br>"
+ "Jonatan Nilsson <<a href=\"mailto:jonatanfan@gmail.com\">jonatanfan@gmail.com</a>>"
+ "<br>"
+ "Daniel Martin <<a href=\"mailto:elhombresinremedio@gmail.com\">elhombresinremedio@gmail.com</a>>"
+ "</p><h2>" +
+
+ QLabel::tr("Translations:") + "</h2><p>"
+ + QString::fromUtf8(
+ "Brazilian Portuguese: Romulo Fernandes Machado <<a href=\"mailto:abra185@gmail.com\">abra185@gmail.com</a>><br>"
+ "Bulgarian: Svetoslav Stefanov<br>"
+ "Czech: Petr ŘezáÄek <<a href=\"mailto:rezacek@gmail.com\">rezacek@gmail.com</a>><br>"
+ "Chinese: Jie Luo <<a href=\"mailto:lililjlj@gmail.com\">lililjlj@gmail.com</a>><br>"
+ "English: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
+ "Finnish: Nina Kuisma <<a href=\"mailto:ninnnu@gmail.com\">ninnnu@gmail.com</a>><br>"
+ "French: Antoine Turmel <<a href=\"mailto:geekshadow@gmail.com\">geekshadow@gmail.com</a>><br>"
+ "German: Peter Hüwe <<a href=\"mailto:PeterHuewe@gmx.de\">PeterHuewe@gmx.de</a>>, Mario Liebisch <<a href=\"mailto:mario.liebisch@gmail.com\">mario.liebisch@gmail.com</a>>, Richard Karolyi <<a href=\"mailto:sheepluva@" "ercatec.net\">sheepluva@" "ercatec.net</a>><br>"
+ "Greek: <<a href=\"mailto:talos_kriti@yahoo.gr\">talos_kriti@yahoo.gr</a>><br>"
+ "Italian: Luca Bonora <<a href=\"mailto:bonora.luca@gmail.com\">bonora.luca@gmail.com</a>>, Marco Bresciani<br>"
+ "Japanese: ADAM Etienne <<a href=\"mailto:etienne.adam@gmail.com\">etienne.adam@gmail.com</a>><br>"
+ "Korean: Anthony Bellew <<a href=\"mailto:webmaster@anthonybellew.com\">webmaster@anthonybellew.com</a>><br>"
+ "Lithuanian: Lukas Urbonas <<a href=\"mailto:lukasu08@gmail.com\">lukasu08@gmail.com</a>><br>"
+ "Polish: Maciej Mroziński <<a href=\"mailto:mynick2@o2.pl\">mynick2@o2.pl</a>>, Wojciech Latkowski <<a href=\"mailto:magik17l@gmail.com\">magik17l@gmail.com</a>>, Piotr Mitana, Maciej Górny<br>"
+ "Portuguese: Fábio Canário <<a href=\"mailto:inufabie@gmail.com\">inufabie@gmail.com</a>><br>"
+ "Russian: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
+ "Slovak: Jose Riha<br>"
+ "Spanish: Carlos Vives <<a href=\"mailto:mail@carlosvives.es\">mail@carlosvives.es</a>><br>"
+ "Swedish: Niklas Grahn <<a href=\"mailto:raewolusjoon@yaoo.com\">raewolusjoon@yaoo.com</a>>, Henrik Rostedt <<a href=\"mailto:henrik.rostedt@gmail.com\">henrik.rostedt@gmail.com</a>><br>"
+ "Ukrainian: Eugene V. Lyubimkin <<a href=\"mailto:jackyf.devel@gmail.com\">jackyf.devel@gmail.com</a>>, Igor Paliychuk <<a href=\"mailto:mansonigor@gmail.com\">mansonigor@gmail.com</a>>, Eugene Sakara <<a href=\"mailto:eresid@gmail.com\">eresid@gmail.com</a>>"
+ "</p><h2>") +
+
+ QLabel::tr("Special thanks:") + "</h2><p>"
+ "Aleksey Andreev <<a href=\"mailto:blaknayabr@gmail.com\">blaknayabr@gmail.com</a>><br>"
+ "Aleksander Rudalev <<a href=\"mailto:alexv@pomorsu.ru\">alexv@pomorsu.ru</a>><br>"
+ "Natasha Korotaeva <<a href=\"mailto:layout@pisem.net\">layout@pisem.net</a>><br>"
+ "Adam Higerd (aka ahigerd at FreeNode)"
+ "</p>"
+ );
+ mainLayout->addWidget(lbl2, 1, 1);
+
+ setAcceptDrops(true);
+}
+
+void About::dragEnterEvent(QDragEnterEvent * event)
+{
+ if (event->mimeData()->hasUrls())
+ {
+ QList<QUrl> urls = event->mimeData()->urls();
+ QString url = urls[0].toString();
+ if (urls.count() == 1)
+ if (url.contains(QRegExp("^file://.*\\.ogg$")))
+ event->acceptProposedAction();
+ }
+}
+
+void About::dropEvent(QDropEvent * event)
+{
+ QString file =
+ event->mimeData()->urls()[0].toString().remove(QRegExp("^file://"));
+
+ SDLInteraction::instance().setMusicTrack(file);
+
+ event->acceptProposedAction();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/about.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,42 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _ABOUT_H
+#define _ABOUT_H
+
+#include <QWidget>
+#include <QDropEvent>
+#include <QTextBrowser>
+
+
+class About : public QWidget
+{
+ Q_OBJECT
+
+public:
+ About(QWidget * parent = 0);
+
+protected:
+ virtual void dragEnterEvent(QDragEnterEvent * event);
+ virtual void dropEvent(QDropEvent * event);
+
+private:
+ QTextBrowser * lbl2;
+};
+
+#endif // _ABOUT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/bgwidget.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,143 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
+ * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "bgwidget.h"
+
+SpritePosition::SpritePosition(QWidget * parent, int sh)
+{
+ wParent = parent;
+ iSpriteHeight = sh;
+ reset();
+}
+
+SpritePosition::~SpritePosition()
+{
+}
+
+void SpritePosition::move()
+{
+ fX += fXMov;
+ fY += fYMov;
+ iAngle += 4;
+ if (iAngle >= 360) iAngle = 0;
+ if (fY > wParent->height()) reset();
+}
+
+void SpritePosition::reset()
+{
+ fY = -1 * iSpriteHeight;
+ fX = (qrand() % ((int)(wParent->width() * 1.5))) - wParent->width()/2;
+ fYMov = ((qrand() % 400)+300) / 100.0f;
+ fXMov = fYMov * 0.2f+((qrand()%100)/100.0f * 0.6f); //so between 0.2 and 0.6, or 0.5 +/- 0.3
+ iAngle = qrand() % 360;
+}
+
+QPoint SpritePosition::pos()
+{
+ return QPoint((int)fX,(int)fY);
+}
+
+int SpritePosition::getAngle()
+{
+ return iAngle;
+}
+
+void SpritePosition::init()
+{
+ fY = qrand() % (wParent->height() + 1);
+ fX = qrand() % (wParent->width() + 1);
+}
+
+BGWidget::BGWidget(QWidget * parent) : QWidget(parent)
+{
+ setAttribute(Qt::WA_NoSystemBackground, true);
+ sprite.load(":/res/Star.png");
+
+ setAutoFillBackground(false);
+
+ for (int i = 0; i < SPRITE_MAX; i++) spritePositions[i] = new SpritePosition(this, sprite.height());
+
+ for (int i = 0; i < 360; i++)
+ {
+ rotatedSprites[i] = new QImage(sprite.width(), sprite.height(), QImage::Format_ARGB32);
+ rotatedSprites[i]->fill(0);
+
+ QPoint translate(sprite.width()/2, sprite.height()/2);
+
+ QPainter p;
+ p.begin(rotatedSprites[i]);
+ // p.setRenderHint(QPainter::Antialiasing);
+ p.setRenderHint(QPainter::SmoothPixmapTransform);
+ p.translate(translate.x(), translate.y());
+ p.rotate(i);
+ p.translate(-1*translate.x(), -1*translate.y());
+ p.drawImage(0, 0, sprite);
+ }
+
+ timerAnimation = new QTimer();
+ connect(timerAnimation, SIGNAL(timeout()), this, SLOT(animate()));
+ timerAnimation->setInterval(ANIMATION_INTERVAL);
+}
+
+BGWidget::~BGWidget()
+{
+ for (int i = 0; i < SPRITE_MAX; i++) delete spritePositions[i];
+ for (int i = 0; i < 360; i++) delete rotatedSprites[i];
+ delete timerAnimation;
+}
+
+void BGWidget::paintEvent(QPaintEvent *event)
+{
+ Q_UNUSED(event);
+
+ QPainter p;
+ p.begin(this);
+ //p.setRenderHint(QPainter::Antialiasing);
+ for (int i = 0; i < SPRITE_MAX; i++)
+ {
+ QPoint point = spritePositions[i]->pos();
+ p.drawImage(point.x(), point.y(), *rotatedSprites[spritePositions[i]->getAngle()]);
+ }
+ p.end();
+}
+
+void BGWidget::animate()
+{
+ for (int i = 0; i < SPRITE_MAX; i++)
+ {
+ // bottom edge of star *seems* clipped, but in fact, if I switch to just plain old repaint()/update() it is still clipped - artifact of transform? As for 5, is arbitrary number. 4 was noticeably clipping, 5 seemed same as update() - I assume extra room is due to rotation and value really should be calculated proportional to width/height
+ update(spritePositions[i]->pos().x(),spritePositions[i]->pos().y(), sprite.width()+5, sprite.height()+5);
+ spritePositions[i]->move();
+ }
+}
+
+void BGWidget::startAnimation()
+{
+ timerAnimation->start();
+}
+
+void BGWidget::stopAnimation()
+{
+ timerAnimation->stop();
+}
+
+void BGWidget::init()
+{
+ for (int i = 0; i < SPRITE_MAX; i++) spritePositions[i]->init();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/bgwidget.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,76 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
+ * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef BGWIDGET_H
+#define BGWIDGET_H
+
+#include <QWidget>
+//#include <QGLWidget>
+#include <QPainter>
+#include <QTimer>
+#include <QPaintEvent>
+#include <QTime>
+#include <QPoint>
+
+#define SPRITE_MAX 12
+
+#define ANIMATION_INTERVAL 40
+
+class SpritePosition
+{
+public:
+ SpritePosition(QWidget * parent, int sh);
+ ~SpritePosition();
+private:
+ float fX;
+ float fY;
+ float fXMov;
+ float fYMov;
+ int iAngle;
+ QWidget * wParent;
+ int iSpriteHeight;
+public:
+ void move();
+ void reset();
+ QPoint pos();
+ int getAngle();
+ void init();
+};
+
+class BGWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ BGWidget(QWidget * parent);
+ ~BGWidget();
+ void startAnimation();
+ void stopAnimation();
+ void init();
+private:
+ QImage sprite;
+ QTimer * timerAnimation;
+ SpritePosition * spritePositions[SPRITE_MAX];
+ QImage * rotatedSprites[360];
+protected:
+ void paintEvent(QPaintEvent * event);
+private slots:
+ void animate();
+};
+
+#endif // BGWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/chatwidget.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,973 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDesktopServices>
+#include <QTextBrowser>
+#include <QLineEdit>
+#include <QAction>
+#include <QTextDocument>
+#include <QFile>
+#include <QList>
+#include <QSettings>
+#include <QTextStream>
+#include <QMenu>
+#include <QCursor>
+#include <QScrollBar>
+#include <QItemSelectionModel>
+#include <QStringList>
+#include <QDateTime>
+#include <QTime>
+
+
+#include "HWDataManager.h"
+#include "hwconsts.h"
+#include "gameuiconfig.h"
+
+#include "chatwidget.h"
+
+ListWidgetNickItem::ListWidgetNickItem(const QString& nick, bool isFriend, bool isIgnored) : QListWidgetItem(nick)
+{
+ this->aFriend = isFriend;
+ this->isIgnored = isIgnored;
+}
+
+void ListWidgetNickItem::setFriend(bool isFriend)
+{
+ this->aFriend = isFriend;
+}
+
+void ListWidgetNickItem::setIgnored(bool isIgnored)
+{
+ this->isIgnored = isIgnored;
+}
+
+bool ListWidgetNickItem::isFriend()
+{
+ return aFriend;
+}
+
+bool ListWidgetNickItem::ignored()
+{
+ return isIgnored;
+}
+
+bool ListWidgetNickItem::operator< (const QListWidgetItem & other) const
+{
+ // case in-sensitive comparison of the associated strings
+ // chars that are no letters are sorted at the end of the list
+
+ ListWidgetNickItem otherNick = const_cast<ListWidgetNickItem &>(dynamic_cast<const ListWidgetNickItem &>(other));
+
+ // ignored always down
+ if (isIgnored != otherNick.ignored())
+ return !isIgnored;
+
+ // friends always up
+ if (aFriend != otherNick.isFriend())
+ return aFriend;
+
+ QString txt1 = text().toLower();
+ QString txt2 = other.text().toLower();
+
+ bool firstIsShorter = (txt1.size() < txt2.size());
+ int len = firstIsShorter?txt1.size():txt2.size();
+
+ for (int i = 0; i < len; i++)
+ {
+ if (txt1[i] == txt2[i])
+ continue;
+ if (txt1[i].isLetter() != txt2[i].isLetter())
+ return txt1[i].isLetter();
+ return (txt1[i] < txt2[i]);
+ }
+
+ return firstIsShorter;
+}
+
+QString * HWChatWidget::s_styleSheet = NULL;
+QStringList * HWChatWidget::s_displayNone = NULL;
+bool HWChatWidget::s_isTimeStamped = true;
+
+const QString & HWChatWidget::styleSheet()
+{
+ if (s_styleSheet != NULL)
+ return *s_styleSheet;
+
+ setStyleSheet();
+
+ return *s_styleSheet;
+}
+
+void HWChatWidget::setStyleSheet(const QString & styleSheet)
+{
+ QString orgStyleSheet = styleSheet;
+ QString style = QString(orgStyleSheet);
+
+ // no stylesheet supplied, search for one or use default
+ if (orgStyleSheet.isEmpty())
+ {
+ // load external stylesheet if there is any
+ QFile extFile(HWDataManager::instance().findFileForRead("css/chat.css"));
+
+ QFile resFile(":/res/css/chat.css");
+
+ QFile & file = (extFile.exists()?extFile:resFile);
+
+ if (file.open(QIODevice::ReadOnly | QIODevice::Text))
+ {
+ QTextStream in(&file);
+ while (!in.atEnd())
+ {
+ style.append(in.readLine()+"\n");
+ }
+ orgStyleSheet = style;
+
+ file.close();
+ }
+ }
+
+ // let's parse display:none; ...
+
+ // prepare for MAGIC :D
+
+ // matches (multi-)whitespaces (for replacement with simple space)
+ QRegExp ws("\\s+");
+
+ // matches comments (for removal)
+ QRegExp rem("/\\*([^*]|\\*(?!/))*\\*/");
+
+ // strip comments and multi-whitespaces to compress the style-sheet a bit
+ style = style.remove(rem).replace(ws," ");
+
+
+ // now let's see what messages the user does not want to be displayed
+ // by checking for display:none; (since QTextBrowser does not support it)
+
+ // MOAR MAGIC :DDD
+
+ // matches definitions lacking display:none; (for removal)
+ QRegExp displayed(
+ "([^{}]*\\{)(?!([^}]*;)* ?display ?: ?none ?(;[^}]*)?\\})[^}]*\\}");
+
+ // matches all {...} and , (used as seperator for splitting into names)
+ QRegExp split(" *(\\{[^}]*\\}|,) *");
+
+ // matches class names that are referenced without hierachy
+ QRegExp nohierarchy("^.[^ .]+$");
+
+ QStringList victims = QString(style).
+ remove(displayed). // remove visible stuff
+ split(split). // get a list of the names
+ filter(nohierarchy). // only direct class names
+ replaceInStrings(QRegExp("^."),""); // crop .
+
+
+ if (victims.contains("timestamp"))
+ {
+ s_isTimeStamped = false;
+ victims.removeAll("timestamp");
+ }
+
+ victims.removeDuplicates();
+
+ QStringList * oldDisplayNone = s_displayNone;
+ QString * oldStyleSheet = s_styleSheet;
+
+ s_displayNone = new QStringList(victims);
+ s_styleSheet = new QString(orgStyleSheet);
+
+ if (oldDisplayNone != NULL)
+ delete oldDisplayNone;
+
+ if (oldStyleSheet != NULL)
+ delete oldStyleSheet;
+
+}
+
+void HWChatWidget::displayError(const QString & message)
+{
+ addLine("msg_Error", " !!! " + message);
+ // scroll to the end
+ chatText->moveCursor(QTextCursor::End);
+}
+
+
+void HWChatWidget::displayNotice(const QString & message)
+{
+ addLine("msg_Notice", " *** " + message);
+ // scroll to the end
+ chatText->moveCursor(QTextCursor::End);
+}
+
+
+void HWChatWidget::displayWarning(const QString & message)
+{
+ addLine("msg_Warning", " *!* " + message);
+ // scroll to the end
+ chatText->moveCursor(QTextCursor::End);
+}
+
+
+HWChatWidget::HWChatWidget(QWidget* parent, QSettings * gameSettings, bool notify) :
+ QWidget(parent),
+ mainLayout(this)
+{
+ this->gameSettings = gameSettings;
+ this->notify = notify;
+ if(gameSettings->value("frontend/sound", true).toBool())
+ {
+ if (notify)
+ m_helloSound = HWDataManager::instance().findFileForRead(
+ "Sounds/voices/Classic/Hello.ogg");
+ m_hilightSound = HWDataManager::instance().findFileForRead(
+ "Sounds/1C.ogg");
+ }
+
+ mainLayout.setSpacing(1);
+ mainLayout.setMargin(1);
+ mainLayout.setSizeConstraint(QLayout::SetMinimumSize);
+ mainLayout.setColumnStretch(0, 76);
+ mainLayout.setColumnStretch(1, 24);
+
+ chatEditLine = new SmartLineEdit(this);
+ chatEditLine->setMaxLength(300);
+ connect(chatEditLine, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
+
+ mainLayout.addWidget(chatEditLine, 2, 0);
+
+ chatText = new QTextBrowser(this);
+
+ chatText->document()->setDefaultStyleSheet(styleSheet());
+
+ chatText->setMinimumHeight(20);
+ chatText->setMinimumWidth(10);
+ chatText->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ chatText->setOpenLinks(false);
+ connect(chatText, SIGNAL(anchorClicked(const QUrl&)),
+ this, SLOT(linkClicked(const QUrl&)));
+ mainLayout.addWidget(chatText, 0, 0, 2, 1);
+
+ chatNicks = new QListWidget(this);
+ chatNicks->setMinimumHeight(10);
+ chatNicks->setMinimumWidth(10);
+ chatNicks->setSortingEnabled(true);
+ chatNicks->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ chatNicks->setContextMenuPolicy(Qt::ActionsContextMenu);
+ connect(chatNicks, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
+ this, SLOT(chatNickDoubleClicked(QListWidgetItem *)));
+ connect(chatNicks, SIGNAL(currentRowChanged(int)),
+ this, SLOT(chatNickSelected(int)));
+
+ mainLayout.addWidget(chatNicks, 0, 1, 3, 1);
+
+ // the userData is used to flag things that are even available when user
+ // is offline
+ acInfo = new QAction(QAction::tr("Info"), chatNicks);
+ acInfo->setIcon(QIcon(":/res/info.png"));
+ acInfo->setData(QVariant(false));
+ connect(acInfo, SIGNAL(triggered(bool)), this, SLOT(onInfo()));
+ acKick = new QAction(QAction::tr("Kick"), chatNicks);
+ acKick->setIcon(QIcon(":/res/kick.png"));
+ acKick->setData(QVariant(false));
+ connect(acKick, SIGNAL(triggered(bool)), this, SLOT(onKick()));
+ acBan = new QAction(QAction::tr("Ban"), chatNicks);
+ acBan->setIcon(QIcon(":/res/ban.png"));
+ acBan->setData(QVariant(true));
+ connect(acBan, SIGNAL(triggered(bool)), this, SLOT(onBan()));
+ acFollow = new QAction(QAction::tr("Follow"), chatNicks);
+ acFollow->setIcon(QIcon(":/res/follow.png"));
+ acFollow->setData(QVariant(false));
+ connect(acFollow, SIGNAL(triggered(bool)), this, SLOT(onFollow()));
+ acIgnore = new QAction(QAction::tr("Ignore"), chatNicks);
+ acIgnore->setIcon(QIcon(":/res/ignore.png"));
+ acIgnore->setData(QVariant(true));
+ connect(acIgnore, SIGNAL(triggered(bool)), this, SLOT(onIgnore()));
+ acFriend = new QAction(QAction::tr("Add friend"), chatNicks);
+ acFriend->setIcon(QIcon(":/res/addfriend.png"));
+ acFriend->setData(QVariant(true));
+ connect(acFriend, SIGNAL(triggered(bool)), this, SLOT(onFriend()));
+
+ chatNicks->insertAction(0, acFriend);
+ chatNicks->insertAction(0, acInfo);
+ chatNicks->insertAction(0, acIgnore);
+
+ showReady = false;
+ setShowFollow(true);
+
+ setAcceptDrops(true);
+ clear();
+}
+
+
+void HWChatWidget::linkClicked(const QUrl & link)
+{
+ if (link.scheme() == "http")
+ QDesktopServices::openUrl(link);
+ if (link.scheme() == "hwnick")
+ {
+ // decode nick
+ QString nick = QString::fromUtf8(QByteArray::fromBase64(link.encodedQuery()));
+ QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly);
+
+ bool isOffline = (items.size() < 1);
+
+ QMenu * popup = new QMenu(this);
+
+ if (isOffline)
+ {
+ m_clickedNick = nick;
+ chatNickSelected(0); // update friend and ignore entry
+ chatNicks->setCurrentItem(NULL, QItemSelectionModel::Clear);
+ }
+ else
+ {
+ // selecting an item will automatically scroll there, so let's save old position
+ QScrollBar * scrollBar = chatNicks->verticalScrollBar();
+ int oldScrollPos = scrollBar->sliderPosition();
+ // select the nick which we want to see the actions for
+ chatNicks->setCurrentItem(items[0], QItemSelectionModel::Clear);
+ // selecting an item will automatically scroll there, so let's save old position
+ scrollBar->setSliderPosition(oldScrollPos);
+ }
+
+ // load actions
+ QList<QAction *> actions = chatNicks->actions();
+
+ foreach(QAction * action, actions)
+ {
+ if ((!isOffline) || (action->data().toBool()))
+ popup->addAction(action);
+ }
+
+ // display menu popup at mouse cursor position
+ popup->popup(QCursor::pos());
+ }
+}
+
+void HWChatWidget::setShowFollow(bool enabled)
+{
+ if (enabled) {
+ if (!(chatNicks->actions().contains(acFollow)))
+ chatNicks->insertAction(acFriend, acFollow);
+ }
+ else {
+ if (chatNicks->actions().contains(acFollow))
+ chatNicks->removeAction(acFollow);
+ }
+}
+
+void HWChatWidget::loadList(QStringList & list, const QString & file)
+{
+ list.clear();
+ QFile txt(cfgdir->absolutePath() + "/" + file);
+ if(!txt.open(QIODevice::ReadOnly))
+ return;
+ QTextStream stream(&txt);
+ stream.setCodec("UTF-8");
+
+ while(!stream.atEnd())
+ {
+ QString str = stream.readLine();
+ if(str.startsWith(";") || str.length() == 0)
+ continue;
+ list << str.trimmed();
+ }
+ //readd once we require newer Qt than 4.4
+ //list.removeDuplicates();
+ txt.close();
+}
+
+void HWChatWidget::saveList(QStringList & list, const QString & file)
+{
+ QFile txt(cfgdir->absolutePath() + "/" + file);
+
+ // list empty? => rather have no file for the list than an empty one
+ if (list.isEmpty())
+ {
+ if (txt.exists())
+ {
+ // try to remove file, if successful we're done here.
+ if (txt.remove())
+ return;
+ }
+ else
+ // there is no file
+ return;
+ }
+
+ if(!txt.open(QIODevice::WriteOnly | QIODevice::Truncate))
+ return;
+ QTextStream stream(&txt);
+ stream.setCodec("UTF-8");
+
+ stream << "; this list is used by Hedgewars - do not edit it unless you know what you're doing!" << endl;
+ for(int i = 0; i < list.size(); i++)
+ stream << list[i] << endl;
+ txt.close();
+}
+
+void HWChatWidget::updateNickItem(QListWidgetItem *nickItem)
+{
+ QString nick = nickItem->text();
+ ListWidgetNickItem * item = dynamic_cast<ListWidgetNickItem*>(nickItem);
+
+ item->setFriend(friendsList.contains(nick, Qt::CaseInsensitive));
+ item->setIgnored(ignoreList.contains(nick, Qt::CaseInsensitive));
+
+ if(item->ignored())
+ {
+ item->setIcon(QIcon(showReady ? (item->data(Qt::UserRole).toBool() ? ":/res/chat_ignore_on.png" : ":/res/chat_ignore_off.png") : ":/res/chat_ignore.png"));
+ item->setForeground(Qt::gray);
+ }
+ else if(item->isFriend())
+ {
+ item->setIcon(QIcon(showReady ? (item->data(Qt::UserRole).toBool() ? ":/res/chat_friend_on.png" : ":/res/chat_friend_off.png") : ":/res/chat_friend.png"));
+ item->setForeground(Qt::green);
+ }
+ else
+ {
+ item->setIcon(QIcon(showReady ? (item->data(Qt::UserRole).toBool() ? ":/res/chat_default_on.png" : ":/res/chat_default_off.png") : ":/res/chat_default.png"));
+ item->setForeground(QBrush(QColor(0xff, 0xcc, 0x00)));
+ }
+}
+
+void HWChatWidget::updateNickItems()
+{
+ for(int i = 0; i < chatNicks->count(); i++)
+ updateNickItem(chatNicks->item(i));
+
+ chatNicks->sortItems();
+}
+
+void HWChatWidget::loadLists(const QString & nick)
+{
+ loadList(ignoreList, nick.toLower() + "_ignore.txt");
+ loadList(friendsList, nick.toLower() + "_friends.txt");
+ updateNickItems();
+}
+
+void HWChatWidget::saveLists(const QString & nick)
+{
+ saveList(ignoreList, nick.toLower() + "_ignore.txt");
+ saveList(friendsList, nick.toLower() + "_friends.txt");
+}
+
+void HWChatWidget::returnPressed()
+{
+ QStringList lines = chatEditLine->text().split('\n');
+ chatEditLine->rememberCurrentText();
+ foreach (const QString &line, lines)
+ {
+ if (!parseCommand(line))
+ emit chatLine(line);
+ }
+ chatEditLine->clear();
+}
+
+// "link" nick, but before that encode it in base64 to make sure it can't
+// intefere with html/url syntax the nick is put as querystring as putting
+// it as host would convert it to it's lower case variant
+QString HWChatWidget::linkedNick(const QString & nickName)
+{
+ if (nickName != m_userNick)
+ return QString("<a href=\"hwnick://?%1\" class=\"nick\">%2</a>").arg(
+ QString(nickName.toUtf8().toBase64())).arg(nickName);
+ else
+ return QString("<span class=\"nick\">%1</span>").arg(nickName);
+}
+
+
+void HWChatWidget::onChatString(const QString& str)
+{
+ onChatString("", str);
+}
+
+const QRegExp HWChatWidget::URLREGEXP = QRegExp("(http://)?(www\\.)?(hedgewars\\.org(/[^ ]*)?)");
+
+void HWChatWidget::onChatString(const QString& nick, const QString& str)
+{
+ bool isFriend = false;
+
+ if (!nick.isEmpty()) {
+ // don't show chat lines that are from ignored nicks
+ if (ignoreList.contains(nick, Qt::CaseInsensitive))
+ return;
+ // friends will get special treatment, of course
+ isFriend = friendsList.contains(nick, Qt::CaseInsensitive);
+ }
+
+ QString formattedStr = Qt::escape(str.mid(1));
+ // make hedgewars.org urls actual links
+ formattedStr = formattedStr.replace(URLREGEXP, "<a href=\"http://\\3\">\\3</a>");
+
+ // link the nick
+ if(!nick.isEmpty())
+ formattedStr.replace("|nick|", linkedNick(nick));
+
+ QString cssClass("msg_UserChat");
+
+ // check first character for color code and set color properly
+ char c = str[0].toAscii();
+ switch (c)
+ {
+ case 3:
+ cssClass = (isFriend ? "msg_FriendJoin" : "msg_UserJoin");
+ break;
+ case 2:
+ cssClass = (isFriend ? "msg_FriendAction" : "msg_UserAction");
+ break;
+ default:
+ if (isFriend)
+ cssClass = "msg_FriendChat";
+ }
+
+ bool isHL = false;
+
+ if ((!nick.isEmpty()) && (nick != m_userNick))
+ {
+ QString lcStr = str.toLower();
+
+ foreach (const QRegExp & hl, m_highlights)
+ {
+ if (lcStr.contains(hl))
+ {
+ isHL = true;
+ break;
+ }
+ }
+ }
+
+ addLine(cssClass, formattedStr, isHL);
+}
+
+void HWChatWidget::addLine(const QString & cssClass, QString line, bool isHighlight)
+{
+ if (s_displayNone->contains(cssClass))
+ return; // the css forbids us to display this line
+
+ if (chatStrings.size() > 250)
+ chatStrings.removeFirst();
+
+ if (s_isTimeStamped)
+ {
+ QString tsMarkUp = "<span class=\"timestamp\">[%1]</span> ";
+ QTime now = QDateTime::currentDateTime().time();
+ line = tsMarkUp.arg(now.toString(":mm:ss")) + line;
+ }
+
+ line = QString("<span class=\"%1\">%2</span>").arg(cssClass).arg(line);
+
+ if (isHighlight)
+ {
+ line = QString("<span class=\"highlight\">%1</span>").arg(line);
+ SDLInteraction::instance().playSoundFile(m_hilightSound);
+ }
+
+ chatStrings.append(line);
+
+ chatText->setHtml("<html><body>"+chatStrings.join("<br>")+"</body></html>");
+
+ chatText->moveCursor(QTextCursor::End);
+}
+
+void HWChatWidget::onServerMessage(const QString& str)
+{
+ if (chatStrings.size() > 250)
+ chatStrings.removeFirst();
+
+ chatStrings.append("<hr>" + str + "<hr>");
+
+ chatText->setHtml("<html><body>"+chatStrings.join("<br>")+"</body></html>");
+
+ chatText->moveCursor(QTextCursor::End);
+}
+
+void HWChatWidget::nickAdded(const QString & nick, bool notifyNick)
+{
+ bool isIgnored = ignoreList.contains(nick, Qt::CaseInsensitive);
+ QListWidgetItem * item = new ListWidgetNickItem(nick, friendsList.contains(nick, Qt::CaseInsensitive), isIgnored);
+ updateNickItem(item);
+ chatNicks->addItem(item);
+
+ if ((!isIgnored) && (nick != m_userNick)) // don't auto-complete own name
+ chatEditLine->addNickname(nick);
+
+ emit nickCountUpdate(chatNicks->count());
+
+ if(notifyNick && notify && gameSettings->value("frontend/sound", true).toBool()) {
+ SDLInteraction::instance().playSoundFile(m_helloSound);
+ }
+}
+
+void HWChatWidget::nickRemoved(const QString& nick)
+{
+ chatEditLine->removeNickname(nick);
+
+ foreach(QListWidgetItem * item, chatNicks->findItems(nick, Qt::MatchExactly))
+ chatNicks->takeItem(chatNicks->row(item));
+
+ emit nickCountUpdate(chatNicks->count());
+}
+
+void HWChatWidget::clear()
+{
+ chatEditLine->reset();
+
+ // add default commands
+ QStringList cmds;
+ cmds << "/me" << "/discardStyleSheet" << "/saveStyleSheet";
+ chatEditLine->addCommands(cmds);
+
+ chatText->clear();
+ chatStrings.clear();
+ chatNicks->clear();
+ m_userNick = gameSettings->value("net/nick","").toString();
+
+ // clear and re compile regexp for highlighting
+ m_highlights.clear();
+
+ QString hlRegExp("^(.* )?%1[^-a-z0-9_]*( .*)?$");
+ QRegExp whitespace("\\s");
+
+ m_highlights.append(QRegExp(hlRegExp.arg(m_userNick)));
+
+ QFile file(cfgdir->absolutePath() + "/" + m_userNick + "_highlight.txt");
+
+ if (file.exists() && (file.open(QIODevice::ReadOnly | QIODevice::Text)))
+ {
+ QTextStream in(&file);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ QStringList list = line.split(whitespace);
+ foreach (QString word, list)
+ {
+ m_highlights.append(QRegExp(
+ hlRegExp.arg(QRegExp::escape(word.toLower()))));
+ }
+ }
+
+ if (file.isOpen())
+ file.close();
+ }
+
+ QFile file2(cfgdir->absolutePath() + "/" + m_userNick + "_hlregexp.txt");
+
+ if (file2.exists() && (file2.open(QIODevice::ReadOnly | QIODevice::Text)))
+ {
+ QTextStream in(&file2);
+ while (!in.atEnd())
+ {
+ m_highlights.append(QRegExp(in.readLine().toLower()));
+ }
+
+ if (file2.isOpen())
+ file2.close();
+ }
+}
+
+void HWChatWidget::onKick()
+{
+ QListWidgetItem * curritem = chatNicks->currentItem();
+ if (curritem)
+ emit kick(curritem->text());
+}
+
+void HWChatWidget::onBan()
+{
+ QListWidgetItem * curritem = chatNicks->currentItem();
+ if (curritem)
+ emit ban(curritem->text());
+}
+
+void HWChatWidget::onInfo()
+{
+ QListWidgetItem * curritem = chatNicks->currentItem();
+ if (curritem)
+ emit info(curritem->text());
+}
+
+void HWChatWidget::onFollow()
+{
+ QListWidgetItem * curritem = chatNicks->currentItem();
+ if (curritem)
+ emit follow(curritem->text());
+}
+
+void HWChatWidget::onIgnore()
+{
+ QListWidgetItem * curritem = chatNicks->currentItem();
+ QString nick = "";
+ if(curritem != NULL)
+ nick = curritem->text();
+ else
+ nick = m_clickedNick;
+
+ if(ignoreList.contains(nick, Qt::CaseInsensitive)) // already on list - remove him
+ {
+ ignoreList.removeAll(nick.toLower());
+ chatEditLine->addNickname(nick);
+ displayNotice(tr("%1 has been removed from your ignore list").arg(linkedNick(nick)));
+ }
+ else // not on list - add
+ {
+ // don't consider ignored people friends
+ if(friendsList.contains(nick, Qt::CaseInsensitive))
+ emit onFriend();
+
+ // scroll down on first ignore added so that people see where that nick went to
+ if (ignoreList.isEmpty())
+ chatNicks->scrollToBottom();
+
+ ignoreList << nick.toLower();
+ chatEditLine->removeNickname(nick);
+ displayNotice(tr("%1 has been added to your ignore list").arg(linkedNick(nick)));
+ }
+
+ if(curritem != NULL)
+ {
+ updateNickItem(curritem); // update icon/sort order/etc
+ chatNicks->sortItems();
+ chatNickSelected(0); // update context menu
+ }
+}
+
+void HWChatWidget::onFriend()
+{
+ QListWidgetItem * curritem = chatNicks->currentItem();
+ QString nick = "";
+ if(curritem != NULL)
+ nick = curritem->text();
+ else
+ nick = m_clickedNick;
+
+ if(friendsList.contains(nick, Qt::CaseInsensitive)) // already on list - remove him
+ {
+ friendsList.removeAll(nick.toLower());
+ displayNotice(tr("%1 has been removed from your friends list").arg(linkedNick(nick)));
+ }
+ else // not on list - add
+ {
+ // don't ignore the new friend
+ if(ignoreList.contains(nick, Qt::CaseInsensitive))
+ emit onIgnore();
+
+ // scroll up on first friend added so that people see where that nick went to
+ if (friendsList.isEmpty())
+ chatNicks->scrollToTop();
+
+ friendsList << nick.toLower();
+ displayNotice(tr("%1 has been added to your friends list").arg(linkedNick(nick)));
+ }
+
+ if(curritem != NULL)
+ {
+ updateNickItem(curritem); // update icon/sort order/etc
+ chatNicks->sortItems();
+ chatNickSelected(0); // update context menu
+ }
+}
+
+void HWChatWidget::chatNickDoubleClicked(QListWidgetItem * item)
+{
+ if (item != NULL)
+ m_clickedNick = item->text();
+ else
+ m_clickedNick = "";
+ QList<QAction *> actions = chatNicks->actions();
+ actions.first()->activate(QAction::Trigger);
+}
+
+void HWChatWidget::chatNickSelected(int index)
+{
+ Q_UNUSED(index);
+
+ QListWidgetItem* item = chatNicks->currentItem();
+ QString nick = "";
+ if (item != NULL)
+ nick = item->text();
+ else
+ nick = m_clickedNick;
+
+ // update context menu labels according to possible action
+ if(ignoreList.contains(nick, Qt::CaseInsensitive))
+ {
+ acIgnore->setText(QAction::tr("Unignore"));
+ acIgnore->setIcon(QIcon(":/res/unignore.png"));
+ }
+ else
+ {
+ acIgnore->setText(QAction::tr("Ignore"));
+ acIgnore->setIcon(QIcon(":/res/ignore.png"));
+ }
+
+ if(friendsList.contains(nick, Qt::CaseInsensitive))
+ {
+ acFriend->setText(QAction::tr("Remove friend"));
+ acFriend->setIcon(QIcon(":/res/remfriend.png"));
+ }
+ else
+ {
+ acFriend->setText(QAction::tr("Add friend"));
+ acFriend->setIcon(QIcon(":/res/addfriend.png"));
+ }
+}
+
+void HWChatWidget::setShowReady(bool s)
+{
+ showReady = s;
+}
+
+void HWChatWidget::setReadyStatus(const QString & nick, bool isReady)
+{
+ QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly);
+ if (items.size() != 1)
+ {
+ qWarning("Bug: cannot find user in chat");
+ return;
+ }
+
+ items[0]->setData(Qt::UserRole, isReady); // bulb status
+ updateNickItem(items[0]);
+
+ // ensure we're still showing the status bulbs
+ showReady = true;
+}
+
+void HWChatWidget::adminAccess(bool b)
+{
+ chatNicks->removeAction(acKick);
+ chatNicks->removeAction(acBan);
+
+ if(b)
+ {
+ chatNicks->insertAction(0, acKick);
+// chatNicks->insertAction(0, acBan);
+ }
+}
+
+void HWChatWidget::dragEnterEvent(QDragEnterEvent * event)
+{
+ if (event->mimeData()->hasUrls())
+ {
+ QList<QUrl> urls = event->mimeData()->urls();
+ if (urls.count() == 1)
+ {
+ QUrl url = urls[0];
+
+ static QRegExp localFileRegExp("file://.*\\.css$");
+ localFileRegExp.setCaseSensitivity(Qt::CaseInsensitive);
+
+ if (url.toString().contains(localFileRegExp))
+ event->acceptProposedAction();
+ }
+ }
+}
+
+void HWChatWidget::dropEvent(QDropEvent * event)
+{
+ const QString path(event->mimeData()->urls()[0].toString());
+
+ QFile file(event->mimeData()->urls()[0].toLocalFile());
+
+ if (file.exists() && (file.open(QIODevice::ReadOnly | QIODevice::Text)))
+ {
+ QString style;
+ QTextStream in(&file);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ style.append(line + "\n");
+ }
+
+ setStyleSheet(style);
+ chatText->document()->setDefaultStyleSheet(*s_styleSheet);
+ displayNotice(tr("Stylesheet imported from %1").arg(path));
+ displayNotice(tr("Enter %1 if you want to use the current styleSheet in future, enter %2 to reset!").arg("/saveStyleSheet").arg("/discardStyleSheet"));
+
+ if (file.isOpen())
+ file.close();
+
+ event->acceptProposedAction();
+ }
+ else
+ displayError(tr("Couldn't read %1").arg(event->mimeData()->urls()[0].toString()));
+}
+
+
+void HWChatWidget::discardStyleSheet()
+{
+ setStyleSheet();
+ chatText->document()->setDefaultStyleSheet(*s_styleSheet);
+ displayNotice(tr("StyleSheet discarded"));
+}
+
+
+void HWChatWidget::saveStyleSheet()
+{
+ QString dest =
+ HWDataManager::instance().findFileForWrite("css/chat.css");
+
+ QFile file(dest);
+ if (file.open(QIODevice::WriteOnly | QIODevice::Text))
+ {
+ QTextStream out(&file);
+ QStringList lines = s_styleSheet->split("\n", QString::KeepEmptyParts);
+
+ // strip trailing empty lines
+ while (lines.last().isEmpty())
+ lines.takeLast();
+
+ foreach (const QString & line, lines)
+ {
+ out << line << endl;
+ }
+ out << endl;
+ file.close();
+ displayNotice(tr("StyleSheet saved to %1").arg(dest));
+ }
+ else
+ displayError(tr("Failed to save StyleSheet to %1").arg(dest));
+}
+
+
+bool HWChatWidget::parseCommand(const QString & line)
+{
+ if (line[0] == '/')
+ {
+ QString tline = line.trimmed();
+ if (tline.startsWith("/me"))
+ return false; // not a real command
+
+ else if (tline == "/discardStyleSheet")
+ discardStyleSheet();
+ else if (tline == "/saveStyleSheet")
+ saveStyleSheet();
+ else
+ {
+ static QRegExp post("\\s.*$");
+ tline.remove(post);
+ displayWarning(tr("%1 is not a valid command!").arg(tline));
+ }
+
+ return true;
+ }
+
+ return false;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/chatwidget.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,156 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _CHAT_WIDGET_INCLUDED
+#define _CHAT_WIDGET_INCLUDED
+
+#include <QWidget>
+#include <QListWidget>
+#include <QString>
+#include <QGridLayout>
+#include <QList>
+#include <QRegExp>
+
+#include "SDLInteraction.h"
+
+#include "SmartLineEdit.h"
+
+class ListWidgetNickItem;
+class QTextBrowser;
+class QLineEdit;
+class QListWidget;
+class QSettings;
+
+/// Class for custom nickname sorting
+class ListWidgetNickItem : public QListWidgetItem
+{
+public:
+ ListWidgetNickItem(const QString& nick, bool isFriend, bool isIgnored);
+ bool operator<(const QListWidgetItem & other) const;
+ void setFriend(bool isFriend);
+ void setIgnored(bool isIgnored);
+ bool isFriend();
+ bool ignored();
+
+private:
+ bool aFriend;
+ bool isIgnored;
+};
+
+
+/**
+ * @brief Chat widget.
+ *
+ * By default uses :res/css/chat.css as style sheet for chat.
+ * See \repo{res/css/chat.css} for a more detailed description.
+ *
+ * @see http://doc.qt.nokia.com/4.5/richtext-html-subset.html#css-properties
+ */
+
+class HWChatWidget : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ HWChatWidget(QWidget* parent, QSettings * gameSettings, bool notify);
+ void loadLists(const QString & nick);
+ void saveLists(const QString & nick);
+ void setShowReady(bool s);
+ void setShowFollow(bool enabled);
+ QStringList ignoreList, friendsList;
+ static const QString & styleSheet();
+ void displayError(const QString & message);
+ void displayNotice(const QString & message);
+ void displayWarning(const QString & message);
+
+protected:
+ virtual void dragEnterEvent(QDragEnterEvent * event);
+ virtual void dropEvent(QDropEvent * event);
+
+private:
+ static QString * s_styleSheet;
+ static QStringList * s_displayNone;
+ static bool s_isTimeStamped;
+ static const QRegExp URLREGEXP;
+
+ static void setStyleSheet(const QString & styleSheet = "");
+
+ void loadList(QStringList & list, const QString & file);
+ void saveList(QStringList & list, const QString & file);
+ void updateNickItem(QListWidgetItem *item);
+ void updateNickItems();
+ void addLine(const QString & cssClass, QString line, bool isHighlight = false);
+ bool parseCommand(const QString & line);
+ void discardStyleSheet();
+ void saveStyleSheet();
+ QString linkedNick(const QString & nickName);
+
+ public slots:
+ void onChatString(const QString& str);
+ void onChatString(const QString& nick, const QString& str);
+ void onServerMessage(const QString& str);
+ void nickAdded(const QString& nick, bool notifyNick);
+ void nickRemoved(const QString& nick);
+ void clear();
+ void setReadyStatus(const QString & nick, bool isReady);
+ void adminAccess(bool);
+
+ signals:
+ void chatLine(const QString& str);
+ void kick(const QString & str);
+ void ban(const QString & str);
+ void info(const QString & str);
+ void follow(const QString &);
+ void nickCountUpdate(int cnt);
+
+ private:
+ QGridLayout mainLayout;
+ QTextBrowser* chatText;
+ QStringList chatStrings;
+ QListWidget* chatNicks;
+ SmartLineEdit* chatEditLine;
+ QAction * acInfo;
+ QAction * acKick;
+ QAction * acBan;
+ QAction * acFollow;
+ QAction * acIgnore;
+ QAction * acFriend;
+ QSettings * gameSettings;
+ QString m_helloSound;
+ QString m_hilightSound;
+ QString m_userNick;
+ QString m_clickedNick;
+ QList<QRegExp> m_highlights; ///< regular expressions used for highlighting
+ bool notify;
+ bool showReady;
+
+ private slots:
+ void returnPressed();
+ void onBan();
+ void onKick();
+ void onInfo();
+ void onFollow();
+ void onIgnore();
+ void onFriend();
+ void chatNickDoubleClicked(QListWidgetItem * item);
+ void chatNickSelected(int index);
+ void linkClicked(const QUrl & link);
+};
+
+#endif // _CHAT_WIDGET_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/databrowser.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,57 @@
+#include <QNetworkAccessManager>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+#include <QDebug>
+#include <QUrl>
+
+#include "databrowser.h"
+
+const QNetworkRequest::Attribute typeAttribute = (QNetworkRequest::Attribute)(QNetworkRequest::User + 1);
+const QNetworkRequest::Attribute urlAttribute = (QNetworkRequest::Attribute)(QNetworkRequest::User + 2);
+
+DataBrowser::DataBrowser(QWidget *parent) :
+ QTextBrowser(parent)
+{
+
+ manager = new QNetworkAccessManager(this);
+}
+
+QVariant DataBrowser::loadResource(int type, const QUrl & name)
+{
+ if(type == QTextDocument::ImageResource || type == QTextDocument::StyleSheetResource)
+ {
+ if(resources.contains(name.toString()))
+ {
+ return resources.take(name.toString());
+ }
+ else
+ if(!requestedResources.contains(name.toString()))
+ {
+ qDebug() << "Requesting resource" << name.toString();
+ requestedResources.insert(name.toString());
+
+ QNetworkRequest newRequest(QUrl("http://www.hedgewars.org" + name.toString()));
+ newRequest.setAttribute(typeAttribute, type);
+ newRequest.setAttribute(urlAttribute, name);
+
+ QNetworkReply *reply = manager->get(newRequest);
+ connect(reply, SIGNAL(finished()), this, SLOT(resourceDownloaded()));
+ }
+ }
+
+ return QVariant();
+}
+
+void DataBrowser::resourceDownloaded()
+{
+ QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
+
+ if(reply)
+ {
+ int type = reply->request().attribute(typeAttribute).toInt();
+ QUrl url = reply->request().attribute(urlAttribute).toUrl();
+ resources.insert(url.toString(), reply->readAll());
+ document()->addResource(type, reply->request().url(), QVariant());
+ update();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/databrowser.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,33 @@
+#ifndef DATABROWSER_H
+#define DATABROWSER_H
+
+#include <QTextBrowser>
+#include <QSet>
+
+class QNetworkAccessManager;
+
+class DataBrowser : public QTextBrowser
+{
+ Q_OBJECT
+public:
+ explicit DataBrowser(QWidget *parent = 0);
+
+signals:
+
+public slots:
+
+private:
+ QNetworkAccessManager *manager;
+
+ // hash and set of QString instead of QUrl to support Qt versions
+ // older than 4.7 (those have no support for qHash(const QUrl &))
+ QHash<QString, QByteArray> resources;
+ QSet<QString> requestedResources;
+
+ QVariant loadResource(int type, const QUrl & name);
+
+private slots:
+ void resourceDownloaded();
+};
+
+#endif // DATABROWSER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/drawmapwidget.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,106 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QFile>
+#include <QMessageBox>
+#include <QEvent>
+
+#include "drawmapwidget.h"
+
+DrawMapWidget::DrawMapWidget(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::DrawMapWidget)
+{
+ ui->setupUi(this);
+
+ m_scene = 0;
+}
+
+DrawMapWidget::~DrawMapWidget()
+{
+ delete ui;
+}
+
+void DrawMapWidget::changeEvent(QEvent *e)
+{
+ QWidget::changeEvent(e);
+ switch (e->type()) {
+ case QEvent::LanguageChange:
+ ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
+
+void DrawMapWidget::setScene(DrawMapScene * scene)
+{
+ ui->graphicsView->setScene(scene);
+ m_scene = scene;
+}
+
+void DrawMapWidget::resizeEvent(QResizeEvent * event)
+{
+ Q_UNUSED(event);
+
+ if(ui->graphicsView && ui->graphicsView->scene())
+ ui->graphicsView->fitInView(ui->graphicsView->scene()->sceneRect(), Qt::KeepAspectRatio);
+}
+
+void DrawMapWidget::showEvent(QShowEvent * event)
+{
+ Q_UNUSED(event);
+
+ resizeEvent(0);
+}
+
+void DrawMapWidget::undo()
+{
+ if(m_scene) m_scene->undo();
+}
+
+void DrawMapWidget::clear()
+{
+ if(m_scene) m_scene->clearMap();
+}
+
+void DrawMapWidget::save(const QString & fileName)
+{
+ if(m_scene)
+ {
+ QFile file(fileName);
+
+ if(!file.open(QIODevice::WriteOnly))
+ QMessageBox::warning(this, tr("File error"), tr("Cannot open file '%1' for writing").arg(fileName));
+ else
+ file.write(qCompress(m_scene->encode()).toBase64());
+ }
+}
+
+void DrawMapWidget::load(const QString & fileName)
+{
+ if(m_scene)
+ {
+ QFile f(fileName);
+
+ if(!f.open(QIODevice::ReadOnly))
+ QMessageBox::warning(this, tr("File error"), tr("Cannot read file '%1'").arg(fileName));
+ else
+ m_scene->decode(qUncompress(QByteArray::fromBase64(f.readAll())));
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/drawmapwidget.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,86 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef DRAWMAPWIDGET_H
+#define DRAWMAPWIDGET_H
+
+#include <QWidget>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QGraphicsView>
+
+#include "qaspectratiolayout.h"
+#include "drawmapscene.h"
+
+namespace Ui {
+ class Ui_DrawMapWidget
+ {
+ public:
+ QGraphicsView *graphicsView;
+
+ void setupUi(QWidget *drawMapWidget)
+ {
+ QAspectRatioLayout * arLayout = new QAspectRatioLayout(drawMapWidget);
+ arLayout->setMargin(0);
+
+ graphicsView = new QGraphicsView(drawMapWidget);
+ arLayout->addWidget(graphicsView);
+
+ retranslateUi(drawMapWidget);
+
+ QMetaObject::connectSlotsByName(drawMapWidget);
+ } // setupUi
+
+ void retranslateUi(QWidget *drawMapWidget)
+ {
+ Q_UNUSED(drawMapWidget);
+ } // retranslateUi
+
+ };
+
+ class DrawMapWidget: public Ui_DrawMapWidget {};
+}
+
+class DrawMapWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit DrawMapWidget(QWidget *parent = 0);
+ ~DrawMapWidget();
+
+ void setScene(DrawMapScene * scene);
+
+public slots:
+ void undo();
+ void clear();
+ void save(const QString & fileName);
+ void load(const QString & fileName);
+
+protected:
+ void changeEvent(QEvent *e);
+ virtual void resizeEvent(QResizeEvent * event);
+ virtual void showEvent(QShowEvent * event);
+
+private:
+ Ui::DrawMapWidget *ui;
+
+ DrawMapScene * m_scene;
+};
+
+#endif // DRAWMAPWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/fpsedit.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,31 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "fpsedit.h"
+
+FPSEdit::FPSEdit(QWidget * parent) :
+ QSpinBox(parent)
+{
+ setRange(1, 34);
+ setValue(27);
+}
+
+QString FPSEdit::textFromValue(int value) const
+{
+ return QString::number(1000 / (35 - value));
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/fpsedit.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,35 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _FPSEDIT_H
+#define _FPSEDIT_H
+
+#include <QSpinBox>
+
+class FPSEdit : public QSpinBox
+{
+ Q_OBJECT
+
+public:
+ FPSEdit(QWidget * parent = 0);
+
+protected:
+ QString textFromValue (int value) const;
+};
+
+#endif // _FPSEDIT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/frameTeam.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,128 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QResizeEvent>
+#include <QCoreApplication>
+#include <QPalette>
+
+#include "frameTeam.h"
+#include "teamselhelper.h"
+#include "hwconsts.h"
+
+FrameTeams::FrameTeams(QWidget* parent) :
+ QFrame(parent), maxHedgehogsPerGame(48), overallHedgehogs(0), mainLayout(this), nonInteractive(false)
+{
+ QPalette newPalette = palette();
+ newPalette.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
+ setPalette(newPalette);
+ setAutoFillBackground(true);
+
+ mainLayout.setSpacing(1);
+ mainLayout.setContentsMargins(4, 4, 4, 4);
+
+ int i = 0;
+ while(colors[i] != 0)
+ availableColors.push_back(QColor(colors[i++]));
+
+ resetColors();
+}
+
+void FrameTeams::setInteractivity(bool interactive)
+{
+ nonInteractive = !interactive;
+ for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ++it) {
+ TeamShowWidget* pts = dynamic_cast<TeamShowWidget*>(it.value());
+ if(!pts) throw;
+ pts->setInteractivity(interactive);
+ }
+}
+
+void FrameTeams::resetColors()
+{
+ currentColor=availableColors.end() - 1; // ensure next color is the first one
+}
+
+QColor FrameTeams::getNextColor() const
+{
+ QList<QColor>::ConstIterator nextColor=currentColor;
+ ++nextColor;
+ if (nextColor==availableColors.end()) nextColor=availableColors.begin();
+ return *nextColor;
+}
+
+void FrameTeams::addTeam(HWTeam team, bool willPlay)
+{
+ TeamShowWidget* pTeamShowWidget = new TeamShowWidget(team, willPlay, this);
+ if(nonInteractive) pTeamShowWidget->setInteractivity(false);
+// int hght=teamToWidget.empty() ? 0 : teamToWidget.begin()->second->size().height();
+ mainLayout.addWidget(pTeamShowWidget);
+ teamToWidget.insert(team, pTeamShowWidget);
+ QResizeEvent* pevent=new QResizeEvent(parentWidget()->size(), parentWidget()->size());
+ QCoreApplication::postEvent(parentWidget(), pevent);
+}
+
+void FrameTeams::removeTeam(HWTeam team)
+{
+ tmapTeamToWidget::iterator it=teamToWidget.find(team);
+ if(it==teamToWidget.end()) return;
+ mainLayout.removeWidget(it.value());
+ it.value()->deleteLater();
+ teamToWidget.erase(it);
+}
+
+void FrameTeams::resetTeams()
+{
+ for(tmapTeamToWidget::iterator it=teamToWidget.begin(); it!=teamToWidget.end(); ) {
+ mainLayout.removeWidget(it.value());
+ it.value()->deleteLater();
+ teamToWidget.erase(it++);
+ }
+}
+
+void FrameTeams::setHHNum(const HWTeam& team)
+{
+ TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team));
+ if(!pTeamShowWidget) return;
+ pTeamShowWidget->setHHNum(team.numHedgehogs());
+}
+
+void FrameTeams::setTeamColor(const HWTeam& team)
+{
+ TeamShowWidget* pTeamShowWidget = dynamic_cast<TeamShowWidget*>(getTeamWidget(team));
+ if(!pTeamShowWidget) return;
+ pTeamShowWidget->changeTeamColor(team.color());
+}
+
+QWidget* FrameTeams::getTeamWidget(HWTeam team)
+{
+//qDebug() << "FrameTeams::getTeamWidget getNetID() = " << team.getNetID();
+ tmapTeamToWidget::iterator it=teamToWidget.find(team);
+ QWidget* ret = it!=teamToWidget.end() ? it.value() : 0;
+ return ret;
+}
+
+bool FrameTeams::isFullTeams() const
+{
+ return overallHedgehogs==maxHedgehogsPerGame;
+}
+
+void FrameTeams::emitTeamColorChanged(const HWTeam& team)
+{
+ emit teamColorChanged(team);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/frameTeam.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,68 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _FRAME_TEAM_INCLUDED
+#define _FRAME_TEAM_INCLUDED
+
+#include <QFrame>
+#include <QList>
+#include <QColor>
+
+#include "teamselect.h"
+
+class FrameTeams : public QFrame
+{
+ Q_OBJECT
+
+ friend class CHedgehogerWidget;
+ friend class TeamShowWidget;
+
+ public:
+ FrameTeams(QWidget* parent=0);
+ QWidget* getTeamWidget(HWTeam team);
+ bool isFullTeams() const;
+ void resetColors();
+ void resetTeams();
+ void setHHNum(const HWTeam& team);
+ void setTeamColor(const HWTeam& team);
+ void setInteractivity(bool interactive);
+ QColor getNextColor() const;
+
+ signals:
+ void teamColorChanged(const HWTeam&);
+
+ public slots:
+ void addTeam(HWTeam team, bool willPlay);
+ void removeTeam(HWTeam team);
+
+ private:
+ const int maxHedgehogsPerGame;
+ int overallHedgehogs;
+ QList<QColor> availableColors;
+ QList<QColor>::Iterator currentColor;
+
+ void emitTeamColorChanged(const HWTeam& team);
+
+ QVBoxLayout mainLayout;
+ typedef QMap<HWTeam, QWidget*> tmapTeamToWidget;
+ tmapTeamToWidget teamToWidget;
+ bool nonInteractive;
+};
+
+#endif // _FRAME_TAM_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/gamecfgwidget.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,575 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QResizeEvent>
+#include <QGroupBox>
+#include <QCheckBox>
+#include <QGridLayout>
+#include <QSpinBox>
+#include <QLabel>
+#include <QMessageBox>
+#include <QTableView>
+#include <QPushButton>
+
+#include "gamecfgwidget.h"
+#include "igbox.h"
+#include "HWDataManager.h"
+#include "hwconsts.h"
+#include "ammoSchemeModel.h"
+#include "proto.h"
+
+GameCFGWidget::GameCFGWidget(QWidget* parent) :
+ QGroupBox(parent)
+ , mainLayout(this)
+ , seedRegexp("\\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\}")
+{
+ mainLayout.setMargin(0);
+// mainLayout.setSizeConstraint(QLayout::SetMinimumSize);
+
+ pMapContainer = new HWMapContainer(this);
+ mainLayout.addWidget(pMapContainer, 0, 0);
+
+ IconedGroupBox *GBoxOptions = new IconedGroupBox(this);
+ GBoxOptions->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+ mainLayout.addWidget(GBoxOptions, 1, 0);
+
+ QGridLayout *GBoxOptionsLayout = new QGridLayout(GBoxOptions);
+
+ GBoxOptions->setTitle(tr("Game Options"));
+ GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Style"), GBoxOptions), 1, 0);
+
+ Scripts = new QComboBox(GBoxOptions);
+ GBoxOptionsLayout->addWidget(Scripts, 1, 1);
+
+ Scripts->addItem("Normal");
+ Scripts->insertSeparator(1);
+
+ for (int i = 0; i < scriptList->size(); ++i) {
+ QString script = (*scriptList)[i].remove(".lua", Qt::CaseInsensitive);
+ QList<QVariant> scriptInfo;
+ scriptInfo.push_back(script);
+ QFile scriptCfgFile(HWDataManager::instance().findFileForRead(
+ QString("Scripts/Multiplayer/%2.cfg").arg(script)));
+ if (scriptCfgFile.exists() && scriptCfgFile.open(QFile::ReadOnly)) {
+ QString scheme;
+ QString weapons;
+ QTextStream input(&scriptCfgFile);
+ input >> scheme;
+ input >> weapons;
+ if (scheme.isEmpty())
+ scheme = "locked";
+ scheme.replace("_", " ");
+ if (weapons.isEmpty())
+ weapons = "locked";
+ weapons.replace("_", " ");
+ scriptInfo.push_back(scheme);
+ scriptInfo.push_back(weapons);
+ scriptCfgFile.close();
+ }
+ else
+ {
+ scriptInfo.push_back("locked");
+ scriptInfo.push_back("locked");
+ }
+ Scripts->addItem(script.replace("_", " "), scriptInfo);
+ }
+
+ connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int)));
+
+ QWidget *SchemeWidget = new QWidget(GBoxOptions);
+ GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2);
+
+ QGridLayout *SchemeWidgetLayout = new QGridLayout(SchemeWidget);
+ SchemeWidgetLayout->setMargin(0);
+
+ GameSchemes = new QComboBox(SchemeWidget);
+ SchemeWidgetLayout->addWidget(GameSchemes, 0, 2);
+ connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int)));
+
+ SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Scheme"), SchemeWidget), 0, 0);
+
+ QPixmap pmEdit(":/res/edit.png");
+
+ QPushButton * goToSchemePage = new QPushButton(SchemeWidget);
+ goToSchemePage->setToolTip(tr("Edit schemes"));
+ goToSchemePage->setIconSize(pmEdit.size());
+ goToSchemePage->setIcon(pmEdit);
+ goToSchemePage->setMaximumWidth(pmEdit.width() + 6);
+ SchemeWidgetLayout->addWidget(goToSchemePage, 0, 3);
+ connect(goToSchemePage, SIGNAL(clicked()), this, SLOT(jumpToSchemes()));
+
+ SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Weapons"), SchemeWidget), 1, 0);
+
+ WeaponsName = new QComboBox(SchemeWidget);
+ SchemeWidgetLayout->addWidget(WeaponsName, 1, 2);
+
+ connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int)));
+
+ QPushButton * goToWeaponPage = new QPushButton(SchemeWidget);
+ goToWeaponPage->setToolTip(tr("Edit weapons"));
+ goToWeaponPage->setIconSize(pmEdit.size());
+ goToWeaponPage->setIcon(pmEdit);
+ goToWeaponPage->setMaximumWidth(pmEdit.width() + 6);
+ SchemeWidgetLayout->addWidget(goToWeaponPage, 1, 3);
+ connect(goToWeaponPage, SIGNAL(clicked()), this, SLOT(jumpToWeapons()));
+
+ bindEntries = new QCheckBox(SchemeWidget);
+ bindEntries->setToolTip(tr("When this option is enabled selecting a game scheme will auto-select a weapon"));
+ bindEntries->setChecked(true);
+ bindEntries->setMaximumWidth(42);
+ bindEntries->setStyleSheet( "QCheckBox::indicator:checked { image: url(\":/res/lock.png\"); }"
+ "QCheckBox::indicator:unchecked { image: url(\":/res/unlock.png\"); }" );
+ SchemeWidgetLayout->addWidget(bindEntries, 0, 1, 0, 1, Qt::AlignVCenter);
+
+ connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SLOT(seedChanged(const QString &)));
+ connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SLOT(mapChanged(const QString &)));
+ connect(pMapContainer, SIGNAL(mapgenChanged(MapGenerator)), this, SLOT(mapgenChanged(MapGenerator)));
+ connect(pMapContainer, SIGNAL(mazeSizeChanged(int)), this, SLOT(maze_sizeChanged(int)));
+ connect(pMapContainer, SIGNAL(themeChanged(const QString &)), this, SLOT(themeChanged(const QString &)));
+ connect(pMapContainer, SIGNAL(newTemplateFilter(int)), this, SLOT(templateFilterChanged(int)));
+ connect(pMapContainer, SIGNAL(drawMapRequested()), this, SIGNAL(goToDrawMap()));
+ connect(pMapContainer, SIGNAL(drawnMapChanged(const QByteArray &)), this, SLOT(onDrawnMapChanged(const QByteArray &)));
+}
+
+void GameCFGWidget::jumpToSchemes()
+{
+ emit goToSchemes(GameSchemes->currentIndex());
+}
+
+void GameCFGWidget::jumpToWeapons()
+{
+ emit goToWeapons(WeaponsName->currentIndex());
+}
+
+QVariant GameCFGWidget::schemeData(int column) const
+{
+ return GameSchemes->model()->data(GameSchemes->model()->index(GameSchemes->currentIndex(), column));
+}
+
+quint32 GameCFGWidget::getGameFlags() const
+{
+ quint32 result = 0;
+
+ if (schemeData(1).toBool())
+ result |= 0x00001000; // fort
+ if (schemeData(2).toBool())
+ result |= 0x00000010; // divide teams
+ if (schemeData(3).toBool())
+ result |= 0x00000004; // solid land
+ if (schemeData(4).toBool())
+ result |= 0x00000008; // border
+ if (schemeData(5).toBool())
+ result |= 0x00000020; // low gravity
+ if (schemeData(6).toBool())
+ result |= 0x00000040; // laser sight
+ if (schemeData(7).toBool())
+ result |= 0x00000080; // invulnerable
+ if (schemeData(8).toBool())
+ result |= 0x00000100; // mines
+ if (schemeData(9).toBool())
+ result |= 0x00000200; // vampirism
+ if (schemeData(10).toBool())
+ result |= 0x00000400; // karma
+ if (schemeData(11).toBool())
+ result |= 0x00000800; // artillery
+ if (schemeData(12).toBool())
+ result |= 0x00002000; // random
+ if (schemeData(13).toBool())
+ result |= 0x00004000; // king
+ if (schemeData(14).toBool())
+ result |= 0x00008000; // place hogs
+ if (schemeData(15).toBool())
+ result |= 0x00010000; // shared ammo
+ if (schemeData(16).toBool())
+ result |= 0x00020000; // disable girders
+ if (schemeData(17).toBool())
+ result |= 0x00040000; // disable land obj
+ if (schemeData(18).toBool())
+ result |= 0x00080000; // ai survival
+ if (schemeData(19).toBool())
+ result |= 0x00100000; // infinite attacks
+ if (schemeData(20).toBool())
+ result |= 0x00200000; // reset weaps
+ if (schemeData(21).toBool())
+ result |= 0x00400000; // per hog ammo
+ if (schemeData(22).toBool())
+ result |= 0x00800000; // no wind
+ if (schemeData(23).toBool())
+ result |= 0x01000000; // more wind
+ if (schemeData(24).toBool())
+ result |= 0x02000000; // tag team
+ if (schemeData(25).toBool())
+ result |= 0x04000000; // bottom border
+
+ return result;
+}
+
+quint32 GameCFGWidget::getInitHealth() const
+{
+ return schemeData(28).toInt();
+}
+
+QByteArray GameCFGWidget::getFullConfig() const
+{
+ QList<QByteArray> bcfg;
+ int mapgen = pMapContainer->get_mapgen();
+
+ QString currentMap = pMapContainer->getCurrentMap();
+ if (currentMap.size() > 0)
+ {
+ bcfg << QString("emap " + currentMap).toUtf8();
+
+// engine should figure it out on its own
+// if(pMapContainer->getCurrentIsMission())
+// bcfg << QString("escript Maps/%1/map.lua").arg(currentMap).toUtf8();
+ }
+ bcfg << QString("etheme " + pMapContainer->getCurrentTheme()).toUtf8();
+
+ if (Scripts->currentIndex() > 0)
+ {
+ bcfg << QString("escript Scripts/Multiplayer/%1.lua").arg(Scripts->itemData(Scripts->currentIndex()).toList()[0].toString()).toUtf8();
+ }
+
+ bcfg << QString("eseed " + pMapContainer->getCurrentSeed()).toUtf8();
+ bcfg << QString("e$gmflags %1").arg(getGameFlags()).toUtf8();
+ bcfg << QString("e$damagepct %1").arg(schemeData(26).toInt()).toUtf8();
+ bcfg << QString("e$turntime %1").arg(schemeData(27).toInt() * 1000).toUtf8();
+ bcfg << QString("e$sd_turns %1").arg(schemeData(29).toInt()).toUtf8();
+ bcfg << QString("e$casefreq %1").arg(schemeData(30).toInt()).toUtf8();
+ bcfg << QString("e$minestime %1").arg(schemeData(31).toInt() * 1000).toUtf8();
+ bcfg << QString("e$minesnum %1").arg(schemeData(32).toInt()).toUtf8();
+ bcfg << QString("e$minedudpct %1").arg(schemeData(33).toInt()).toUtf8();
+ bcfg << QString("e$explosives %1").arg(schemeData(34).toInt()).toUtf8();
+ bcfg << QString("e$healthprob %1").arg(schemeData(35).toInt()).toUtf8();
+ bcfg << QString("e$hcaseamount %1").arg(schemeData(36).toInt()).toUtf8();
+ bcfg << QString("e$waterrise %1").arg(schemeData(37).toInt()).toUtf8();
+ bcfg << QString("e$healthdec %1").arg(schemeData(38).toInt()).toUtf8();
+ bcfg << QString("e$ropepct %1").arg(schemeData(39).toInt()).toUtf8();
+ bcfg << QString("e$getawaytime %1").arg(schemeData(40).toInt()).toUtf8();
+ bcfg << QString("e$template_filter %1").arg(pMapContainer->getTemplateFilter()).toUtf8();
+ bcfg << QString("e$mapgen %1").arg(mapgen).toUtf8();
+
+ switch (mapgen)
+ {
+ case MAPGEN_MAZE:
+ bcfg << QString("e$maze_size %1").arg(pMapContainer->getMazeSize()).toUtf8();
+ break;
+
+ case MAPGEN_DRAWN:
+ {
+ QByteArray data = pMapContainer->getDrawnMapData();
+ while(data.size() > 0)
+ {
+ QByteArray tmp = data;
+ tmp.truncate(200);
+ tmp.prepend("edraw ");
+ bcfg << tmp;
+ data.remove(0, 200);
+ }
+ break;
+ }
+ default: ;
+ }
+
+ QByteArray result;
+
+ foreach(QByteArray ba, bcfg)
+ HWProto::addByteArrayToBuffer(result, ba);
+
+ return result;
+}
+
+void GameCFGWidget::setNetAmmo(const QString& name, const QString& ammo)
+{
+ bool illegal = ammo.size() != cDefaultAmmoStore->size();
+ if (illegal)
+ QMessageBox::critical(this, tr("Error"), tr("Illegal ammo scheme"));
+
+ int pos = WeaponsName->findText(name);
+ if ((pos == -1) || illegal) { // prevent from overriding schemes with bad ones
+ WeaponsName->addItem(name, ammo);
+ WeaponsName->setCurrentIndex(WeaponsName->count() - 1);
+ } else {
+ WeaponsName->setItemData(pos, ammo);
+ WeaponsName->setCurrentIndex(pos);
+ }
+}
+
+void GameCFGWidget::fullNetConfig()
+{
+ ammoChanged(WeaponsName->currentIndex());
+
+ seedChanged(pMapContainer->getCurrentSeed());
+ templateFilterChanged(pMapContainer->getTemplateFilter());
+ themeChanged(pMapContainer->getCurrentTheme());
+
+ schemeChanged(GameSchemes->currentIndex());
+ scriptChanged(Scripts->currentIndex());
+
+ mapgenChanged(pMapContainer->get_mapgen());
+ maze_sizeChanged(pMapContainer->getMazeSize());
+
+ // map must be the last
+ QString map = pMapContainer->getCurrentMap();
+ if (map.size())
+ mapChanged(map);
+}
+
+void GameCFGWidget::setParam(const QString & param, const QStringList & slValue)
+{
+ if (slValue.size() == 1)
+ {
+ QString value = slValue[0];
+ if (param == "MAP") {
+ pMapContainer->setMap(value);
+ return;
+ }
+ if (param == "SEED") {
+ pMapContainer->setSeed(value);
+ if (!seedRegexp.exactMatch(value)) {
+ pMapContainer->seedEdit->setVisible(true);
+ }
+ return;
+ }
+ if (param == "THEME") {
+ pMapContainer->setTheme(value);
+ return;
+ }
+ if (param == "TEMPLATE") {
+ pMapContainer->setTemplateFilter(value.toUInt());
+ return;
+ }
+ if (param == "MAPGEN") {
+ pMapContainer->setMapgen((MapGenerator)value.toUInt());
+ return;
+ }
+ if (param == "MAZE_SIZE") {
+ pMapContainer->setMazeSize(value.toUInt());
+ return;
+ }
+ if (param == "SCRIPT") {
+ Scripts->setCurrentIndex(Scripts->findText(value));
+ return;
+ }
+ if (param == "DRAWNMAP") {
+ pMapContainer->setDrawnMapData(qUncompress(QByteArray::fromBase64(slValue[0].toLatin1())));
+ return;
+ }
+ }
+
+ if (slValue.size() == 2)
+ {
+ if (param == "AMMO") {
+ setNetAmmo(slValue[0], slValue[1]);
+ return;
+ }
+ }
+
+ if (slValue.size() == 5)
+ {
+ if (param == "FULLMAPCONFIG")
+ {
+ QString seed = slValue[3];
+ if (!seedRegexp.exactMatch(seed))
+ pMapContainer->seedEdit->setVisible(true);
+
+ pMapContainer->setAllMapParameters(
+ slValue[0],
+ (MapGenerator)slValue[1].toUInt(),
+ slValue[2].toUInt(),
+ seed,
+ slValue[4].toUInt()
+ );
+ return;
+ }
+ }
+
+ qWarning("Got bad config param from net");
+}
+
+void GameCFGWidget::ammoChanged(int index)
+{
+ if (index >= 0) {
+ emit paramChanged(
+ "AMMO",
+ QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString()
+ );
+ }
+}
+
+void GameCFGWidget::mapChanged(const QString & value)
+{
+ if(isEnabled() && pMapContainer->getCurrentIsMission())
+ {
+ Scripts->setEnabled(false);
+ Scripts->setCurrentIndex(0);
+
+ if (pMapContainer->getCurrentScheme() == "locked")
+ {
+ GameSchemes->setEnabled(false);
+ GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
+ }
+ else
+ {
+ GameSchemes->setEnabled(true);
+ int num = GameSchemes->findText(pMapContainer->getCurrentScheme());
+ if (num != -1)
+ GameSchemes->setCurrentIndex(num);
+ else
+ GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
+ }
+
+ if (pMapContainer->getCurrentWeapons() == "locked")
+ {
+ WeaponsName->setEnabled(false);
+ WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
+ }
+ else
+ {
+ WeaponsName->setEnabled(true);
+ int num = WeaponsName->findText(pMapContainer->getCurrentWeapons());
+ if (num != -1)
+ WeaponsName->setCurrentIndex(num);
+ else
+ WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
+ }
+
+ if (pMapContainer->getCurrentScheme() != "locked" && pMapContainer->getCurrentWeapons() != "locked")
+ bindEntries->setEnabled(true);
+ else
+ bindEntries->setEnabled(false);
+ }
+ else
+ {
+ Scripts->setEnabled(true);
+ GameSchemes->setEnabled(true);
+ WeaponsName->setEnabled(true);
+ bindEntries->setEnabled(true);
+ }
+ emit paramChanged("MAP", QStringList(value));
+}
+
+void GameCFGWidget::templateFilterChanged(int value)
+{
+ emit paramChanged("TEMPLATE", QStringList(QString::number(value)));
+}
+
+void GameCFGWidget::seedChanged(const QString & value)
+{
+ emit paramChanged("SEED", QStringList(value));
+}
+
+void GameCFGWidget::themeChanged(const QString & value)
+{
+ emit paramChanged("THEME", QStringList(value));
+}
+
+void GameCFGWidget::schemeChanged(int index)
+{
+ QStringList sl;
+
+ int size = GameSchemes->model()->columnCount();
+ for(int i = 0; i < size; ++i)
+ sl << schemeData(i).toString();
+
+ emit paramChanged("SCHEME", sl);
+
+ if (isEnabled() && bindEntries->isEnabled() && bindEntries->isChecked()) {
+ QString schemeName = GameSchemes->itemText(index);
+ for (int i = 0; i < WeaponsName->count(); i++) {
+ QString weapName = WeaponsName->itemText(i);
+ int res = QString::compare(weapName, schemeName, Qt::CaseSensitive);
+ if (0 == res) {
+ WeaponsName->setCurrentIndex(i);
+ emit ammoChanged(i);
+ break;
+ }
+ }
+ }
+}
+
+void GameCFGWidget::scriptChanged(int index)
+{
+ if(isEnabled() && index > 0)
+ {
+ QString scheme = Scripts->itemData(Scripts->currentIndex()).toList()[1].toString();
+ QString weapons = Scripts->itemData(Scripts->currentIndex()).toList()[2].toString();
+
+ if (scheme == "locked")
+ {
+ GameSchemes->setEnabled(false);
+ GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
+ }
+ else
+ {
+ GameSchemes->setEnabled(true);
+ int num = GameSchemes->findText(scheme);
+ if (num != -1)
+ GameSchemes->setCurrentIndex(num);
+ else
+ GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
+ }
+
+ if (weapons == "locked")
+ {
+ WeaponsName->setEnabled(false);
+ WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
+ }
+ else
+ {
+ WeaponsName->setEnabled(true);
+ int num = WeaponsName->findText(weapons);
+ if (num != -1)
+ WeaponsName->setCurrentIndex(num);
+ else
+ WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
+ }
+
+ if (scheme != "locked" && weapons != "locked")
+ bindEntries->setEnabled(true);
+ else
+ bindEntries->setEnabled(false);
+ }
+ else
+ {
+ GameSchemes->setEnabled(true);
+ WeaponsName->setEnabled(true);
+ bindEntries->setEnabled(true);
+ }
+ emit paramChanged("SCRIPT", QStringList(Scripts->itemText(index)));
+}
+
+void GameCFGWidget::mapgenChanged(MapGenerator m)
+{
+ emit paramChanged("MAPGEN", QStringList(QString::number(m)));
+}
+
+void GameCFGWidget::maze_sizeChanged(int s)
+{
+ emit paramChanged("MAZE_SIZE", QStringList(QString::number(s)));
+}
+
+void GameCFGWidget::resendSchemeData()
+{
+ schemeChanged(GameSchemes->currentIndex());
+}
+
+void GameCFGWidget::onDrawnMapChanged(const QByteArray & data)
+{
+ emit paramChanged("DRAWNMAP", QStringList(qCompress(data, 9).toBase64()));
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/gamecfgwidget.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,87 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef GAMECONFIGWIDGET_H
+#define GAMECONFIGWIDGET_H
+
+#include <QWidget>
+#include <QStringList>
+#include <QGroupBox>
+#include <QSpinBox>
+#include <QRegExp>
+
+#include "mapContainer.h"
+
+class QCheckBox;
+class QVBoxLayout;
+class QLabel;
+class QTableView;
+
+class GameCFGWidget : public QGroupBox
+{
+ Q_OBJECT
+
+public:
+ GameCFGWidget(QWidget* parent);
+ quint32 getGameFlags() const;
+ quint32 getInitHealth() const;
+ QByteArray getFullConfig() const;
+ QComboBox * Scripts;
+ QComboBox * GameSchemes;
+ QComboBox * WeaponsName;
+ HWMapContainer* pMapContainer;
+ QTableView * tv;
+ QVariant schemeData(int column) const;
+
+public slots:
+ void setParam(const QString & param, const QStringList & value);
+ void fullNetConfig();
+ void resendSchemeData();
+
+signals:
+ void paramChanged(const QString & param, const QStringList & value);
+ void goToSchemes(int);
+ void goToWeapons(int);
+ void goToDrawMap();
+
+private slots:
+ void ammoChanged(int index);
+ void mapChanged(const QString &);
+ void templateFilterChanged(int);
+ void seedChanged(const QString &);
+ void themeChanged(const QString &);
+ void schemeChanged(int);
+ void scriptChanged(int);
+ void jumpToSchemes();
+ void jumpToWeapons();
+ void mapgenChanged(MapGenerator m);
+ void maze_sizeChanged(int s);
+ void onDrawnMapChanged(const QByteArray & data);
+
+private:
+ QGridLayout mainLayout;
+ QCheckBox * bindEntries;
+ QString curNetAmmoName;
+ QString curNetAmmo;
+ QRegExp seedRegexp;
+
+ void setNetAmmo(const QString& name, const QString& ammo);
+
+};
+
+#endif // GAMECONFIGWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/hedgehogerWidget.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,76 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Ulyanov Igor <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "hedgehogerWidget.h"
+
+#include "frameTeam.h"
+
+CHedgehogerWidget::CHedgehogerWidget(const QImage& im, const QImage& img, QWidget * parent) :
+ ItemNum(im, img, parent, 1)
+{
+ // TODO: maxHedgehogsPerGame doesn't reset properly and won't match map limits for now
+ /*if(parent) {
+ pOurFrameTeams = dynamic_cast<FrameTeams*>(parent->parentWidget());
+ }
+ if(pOurFrameTeams->overallHedgehogs + 4 > pOurFrameTeams->maxHedgehogsPerGame) {
+ numItems = pOurFrameTeams->maxHedgehogsPerGame - pOurFrameTeams->overallHedgehogs;
+ } else numItems = 4;
+ pOurFrameTeams->overallHedgehogs += numItems;*/
+}
+
+void CHedgehogerWidget::incItems()
+{
+ //if (pOurFrameTeams->overallHedgehogs < pOurFrameTeams->maxHedgehogsPerGame) {
+ numItems++;
+ //pOurFrameTeams->overallHedgehogs++;
+ emit hedgehogsNumChanged();
+ //}
+}
+
+void CHedgehogerWidget::decItems()
+{
+ numItems--;
+ //pOurFrameTeams->overallHedgehogs--;
+ emit hedgehogsNumChanged();
+}
+
+CHedgehogerWidget::~CHedgehogerWidget()
+{
+ // TODO: not called?
+ //pOurFrameTeams->overallHedgehogs-=numItems;
+}
+
+void CHedgehogerWidget::setNonInteractive()
+{
+ nonInteractive=true;
+}
+
+void CHedgehogerWidget::setHHNum(unsigned int num)
+{
+ /*unsigned int diff = num - numItems;
+ numItems += diff;
+ pOurFrameTeams->overallHedgehogs += diff;*/
+ numItems = num;
+ repaint();
+}
+
+unsigned char CHedgehogerWidget::getHedgehogsNum() const
+{
+ return numItems;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/hedgehogerWidget.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,50 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Ulyanov Igor <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _HEDGEHOGER_WIDGET
+#define _HEDGEHOGER_WIDGET
+
+#include "itemNum.h"
+
+class FrameTeams;
+
+class CHedgehogerWidget : public ItemNum
+{
+ Q_OBJECT
+
+ public:
+ CHedgehogerWidget(const QImage& im, const QImage& img, QWidget * parent);
+ virtual ~CHedgehogerWidget();
+ unsigned char getHedgehogsNum() const;
+ void setHHNum (unsigned int num);
+ void setNonInteractive();
+
+ signals:
+ void hedgehogsNumChanged();
+
+ protected:
+ virtual void incItems();
+ virtual void decItems();
+
+ private:
+ CHedgehogerWidget();
+ FrameTeams* pOurFrameTeams;
+};
+
+#endif // _HEDGEHOGER_WIDGET
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/igbox.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,79 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QPainter>
+#include <QPoint>
+#include <QStylePainter>
+#include <QStyleOptionGroupBox>
+
+#include "igbox.h"
+
+IconedGroupBox::IconedGroupBox(QWidget * parent)
+ : QGroupBox(parent)
+{
+// Has issues with border-radius on children
+// setAttribute(Qt::WA_PaintOnScreen, true);
+ titleLeftPadding = 49;
+ contentTopPadding = 15;
+}
+
+void IconedGroupBox::setIcon(const QIcon & icon)
+{
+ if (this->icon.isNull())
+ setStyleSheet(QString(
+ "IconedGroupBox{"
+ "margin-top: 46px;"
+ "margin-left: 12px;"
+ "padding: %1px 2px 5px 2px;"
+ "}"
+ "IconedGroupBox::title{"
+ "subcontrol-origin: margin;"
+ "subcontrol-position: top left;"
+ "padding-left: %2px;"
+ "padding-top: %1px;"
+ "text-align: left;"
+ "}"
+ ).arg(contentTopPadding).arg(titleLeftPadding)
+ );
+
+ this->icon = icon;
+ repaint();
+}
+
+void IconedGroupBox::paintEvent(QPaintEvent * event)
+{
+ Q_UNUSED(event);
+
+ QStylePainter painter(this);
+
+ QStyleOptionGroupBox option;
+ initStyleOption(&option);
+ painter.drawComplexControl(QStyle::CC_GroupBox, option);
+
+ icon.paint(&painter, QRect(QPoint(0, 0), icon.actualSize(size())));
+}
+
+void IconedGroupBox::setTitleTextPadding(int px)
+{
+ titleLeftPadding = px;
+}
+
+void IconedGroupBox::setContentTopPadding(int px)
+{
+ contentTopPadding = px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/igbox.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,44 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _IGBOX_H
+#define _IGBOX_H
+
+#include <QGroupBox>
+#include <QIcon>
+
+class IconedGroupBox : public QGroupBox
+{
+ Q_OBJECT
+
+public:
+ IconedGroupBox(QWidget * parent = 0);
+
+ void setIcon(const QIcon & icon);
+ void setTitleTextPadding(int px);
+ void setContentTopPadding(int px);
+protected:
+ virtual void paintEvent(QPaintEvent * event);
+
+private:
+ QIcon icon;
+ int titleLeftPadding;
+ int contentTopPadding;
+};
+
+#endif // _IGBOX_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/itemNum.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,142 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Igor Ulyanov <iulyanov@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "itemNum.h"
+#include "hwform.h"
+
+#include <QMouseEvent>
+#include <QPainter>
+
+ItemNum::ItemNum(const QImage& im, const QImage& img, QWidget * parent, unsigned char min, unsigned char max) :
+ QFrame(parent), m_im(im), m_img(img), infinityState(false), nonInteractive(false), minItems(min), maxItems(max),
+ numItems(min+2 >= max ? min : min+2)
+{
+ enabled = true;
+ if(frontendEffects) setAttribute(Qt::WA_PaintOnScreen, true);
+}
+
+ItemNum::~ItemNum()
+{
+}
+
+void ItemNum::mousePressEvent ( QMouseEvent * event )
+{
+ if(nonInteractive) return;
+ if(event->button()==Qt::LeftButton && enabled) {
+ event->accept();
+ if((infinityState && numItems <= maxItems) || (!infinityState && numItems < maxItems)) {
+ incItems();
+ } else {
+ numItems = minItems+1;
+ // appears there's an emit in there
+ decItems();
+ }
+ } else if (event->button()==Qt::RightButton && enabled) {
+ event->accept();
+ if(numItems > minItems) {
+ decItems();
+ } else {
+ numItems = maxItems+(infinityState?0:-1);
+ incItems();
+ }
+ } else {
+ event->ignore();
+ return;
+ }
+ repaint();
+}
+void ItemNum::wheelEvent ( QWheelEvent * event )
+{
+ if (nonInteractive) return;
+ if (!enabled)
+ {
+ event->ignore();
+ return;
+ }
+ event->accept();
+
+ bool up = (event->delta() > 0); // positive delta is up, negative is down
+
+ // negative delta on horizontal wheel is not left, but right
+ if (event->orientation() == Qt::Horizontal)
+ up = !up;
+
+ if(up)
+ {
+ if((infinityState && numItems <= maxItems) || (!infinityState && numItems < maxItems))
+ incItems();
+ }
+ else
+ {
+ if(numItems > minItems)
+ decItems();
+ }
+ repaint();
+}
+
+QSize ItemNum::sizeHint () const
+{
+ return QSize((maxItems+1)*12, 32);
+}
+
+void ItemNum::paintEvent(QPaintEvent* event)
+{
+ Q_UNUSED(event);
+
+ QPainter painter(this);
+
+ if (numItems==maxItems+1) {
+ QRect target(0, 0, 100, 32);
+ if (enabled) {
+ painter.drawImage(target, QImage(":/res/infinity.png"));
+ } else {
+ painter.drawImage(target, QImage(":/res/infinitygrey.png"));
+ }
+ } else {
+ for(int i=0; i<numItems; i++) {
+ QRect target(11 * i, i % 2, 25, 35);
+ if (enabled) {
+ painter.drawImage(target, m_im);
+ } else {
+ painter.drawImage(target, m_img);
+ }
+ }
+ }
+}
+
+unsigned char ItemNum::getItemsNum() const
+{
+ return numItems;
+}
+
+void ItemNum::setItemsNum(const unsigned char num)
+{
+ numItems=num;
+ repaint();
+}
+
+void ItemNum::setInfinityState(bool value)
+{
+ infinityState=value;
+}
+
+void ItemNum::setEnabled(bool value)
+{
+ enabled=value;
+ repaint();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/itemNum.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,61 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Igor Ulyanov <iulyanov@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QFrame>
+#include <QImage>
+
+#ifndef _ITEM_NUM_INCLUDED
+#define _ITEM_NUM_INCLUDED
+
+class ItemNum : public QFrame
+{
+ Q_OBJECT
+
+ public:
+ void setInfinityState(bool value);
+ void setEnabled(bool value);
+ unsigned char getItemsNum() const;
+ void setItemsNum(const unsigned char num);
+
+ private:
+ QImage m_im;
+ QImage m_img;
+ bool infinityState;
+ bool enabled;
+
+ protected:
+ ItemNum(const QImage& im, const QImage& img, QWidget * parent, unsigned char min=2, unsigned char max=8);
+ virtual QSize sizeHint () const;
+ virtual ~ItemNum()=0;
+
+ bool nonInteractive;
+ unsigned char minItems;
+ unsigned char maxItems;
+ unsigned char numItems;
+
+ // from QWidget
+ virtual void mousePressEvent ( QMouseEvent * event );
+ virtual void wheelEvent ( QWheelEvent * event );
+ virtual void paintEvent(QPaintEvent* event);
+
+ // to be implemented in child
+ virtual void incItems()=0;
+ virtual void decItems()=0;
+};
+
+#endif // _ITEM_NUM_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/mapContainer.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,677 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2011 Igor Ulyanov <iulyanov@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QPushButton>
+#include <QBuffer>
+#include <QUuid>
+#include <QBitmap>
+#include <QPainter>
+#include <QLinearGradient>
+#include <QColor>
+#include <QTextStream>
+#include <QLabel>
+#include <QListView>
+#include <QVBoxLayout>
+#include <QIcon>
+#include <QLineEdit>
+#include <QMessageBox>
+#include <QStringListModel>
+
+#include "hwconsts.h"
+#include "mapContainer.h"
+#include "igbox.h"
+#include "HWApplication.h"
+
+HWMapContainer::HWMapContainer(QWidget * parent) :
+ QWidget(parent),
+ mainLayout(this),
+ pMap(0),
+ mapgen(MAPGEN_REGULAR)
+{
+ hhSmall.load(":/res/hh_small.png");
+ hhLimit = 18;
+ templateFilter = 0;
+
+ mainLayout.setContentsMargins(HWApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
+ 1,
+ HWApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin),
+ HWApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
+
+ QWidget* mapWidget = new QWidget(this);
+ mainLayout.addWidget(mapWidget, 0, 0, Qt::AlignHCenter);
+
+ QGridLayout* mapLayout = new QGridLayout(mapWidget);
+ mapLayout->setMargin(0);
+
+ imageButt = new QPushButton(mapWidget);
+ imageButt->setObjectName("imageButt");
+ imageButt->setFixedSize(256 + 6, 128 + 6);
+ imageButt->setFlat(true);
+ imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
+ mapLayout->addWidget(imageButt, 0, 0, 1, 2);
+ connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomMap()));
+
+ chooseMap = new QComboBox(mapWidget);
+ chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ chooseMap->addItem(
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapRandom.png"),
+QComboBox::tr("generated map..."));
+ chooseMap->addItem(
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapMaze.png"),
+QComboBox::tr("generated maze..."));
+
+ chooseMap->addItem(QComboBox::tr("hand drawn map..."));
+ chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
+
+ chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
+
+ int missionindex = chooseMap->count();
+ numMissions = 0;
+ QFile mapLuaFile;
+ QFile mapCfgFile;
+ for (int i = 0; i < mapList->size(); ++i) {
+ QString map = (*mapList)[i];
+ mapCfgFile.setFileName(
+ QString("%1/Data/Maps/%2/map.cfg")
+ .arg(cfgdir->absolutePath())
+ .arg(map));
+ if (mapCfgFile.exists()) {
+ mapLuaFile.setFileName(
+ QString("%1/Data/Maps/%2/map.lua")
+ .arg(cfgdir->absolutePath())
+ .arg(map));
+ } else {
+ mapCfgFile.setFileName(
+ QString("%1/Maps/%2/map.cfg")
+ .arg(datadir->absolutePath())
+ .arg(map));
+ mapLuaFile.setFileName(
+ QString("%1/Maps/%2/map.lua")
+ .arg(datadir->absolutePath())
+ .arg(map));
+ }
+
+ if (mapCfgFile.open(QFile::ReadOnly)) {
+ QString theme;
+ quint32 limit = 0;
+ QString scheme;
+ QString weapons;
+ QList<QVariant> mapInfo;
+ bool isMission = mapLuaFile.exists();
+
+ QTextStream input(&mapCfgFile);
+ input >> theme;
+ input >> limit;
+ input >> scheme;
+ input >> weapons;
+ mapInfo.push_back(map);
+ mapInfo.push_back(theme);
+ if (limit)
+ mapInfo.push_back(limit);
+ else
+ mapInfo.push_back(18);
+
+
+ mapInfo.push_back(isMission);
+
+ if (scheme.isEmpty())
+ scheme = "locked";
+ scheme.replace("_", " ");
+
+ if (weapons.isEmpty())
+ weapons = "locked";
+ weapons.replace("_", " ");
+
+ mapInfo.push_back(scheme);
+ mapInfo.push_back(weapons);
+
+ if(isMission)
+ {
+ chooseMap->insertItem(missionindex++,
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapMission.png"),
+QComboBox::tr("Mission") + ": " + map, mapInfo);
+ numMissions++;
+ }
+ else
+ chooseMap->addItem(
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapCustom.png"),
+map, mapInfo);
+ mapCfgFile.close();
+ }
+ }
+ chooseMap->insertSeparator(missionindex); // separator between missions and maps
+
+ connect(chooseMap, SIGNAL(activated(int)), this, SLOT(mapChanged(int)));
+ mapLayout->addWidget(chooseMap, 1, 1);
+
+ QLabel * lblMap = new QLabel(tr("Map"), mapWidget);
+ mapLayout->addWidget(lblMap, 1, 0);
+
+ lblFilter = new QLabel(tr("Filter"), mapWidget);
+ mapLayout->addWidget(lblFilter, 2, 0);
+
+ cbTemplateFilter = new QComboBox(mapWidget);
+ cbTemplateFilter->addItem(tr("All"), 0);
+ cbTemplateFilter->addItem(tr("Small"), 1);
+ cbTemplateFilter->addItem(tr("Medium"), 2);
+ cbTemplateFilter->addItem(tr("Large"), 3);
+ cbTemplateFilter->addItem(tr("Cavern"), 4);
+ cbTemplateFilter->addItem(tr("Wacky"), 5);
+ mapLayout->addWidget(cbTemplateFilter, 2, 1);
+
+ connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int)));
+
+ maze_size_label = new QLabel(tr("Type"), mapWidget);
+ mapLayout->addWidget(maze_size_label, 2, 0);
+ maze_size_label->hide();
+ cbMazeSize = new QComboBox(mapWidget);
+ cbMazeSize->addItem(tr("Small tunnels"), 0);
+ cbMazeSize->addItem(tr("Medium tunnels"), 1);
+ cbMazeSize->addItem(tr("Large tunnels"), 2);
+ cbMazeSize->addItem(tr("Small floating islands"), 3);
+ cbMazeSize->addItem(tr("Medium floating islands"), 4);
+ cbMazeSize->addItem(tr("Large floating islands"), 5);
+ cbMazeSize->setCurrentIndex(1);
+
+ mapLayout->addWidget(cbMazeSize, 2, 1);
+ cbMazeSize->hide();
+ connect(cbMazeSize, SIGNAL(activated(int)), this, SLOT(setMazeSize(int)));
+
+ gbThemes = new IconedGroupBox(mapWidget);
+ gbThemes->setTitleTextPadding(80);
+ gbThemes->setContentTopPadding(15);
+ gbThemes->setTitle(tr("Themes"));
+
+ //gbThemes->setStyleSheet("padding: 0px"); // doesn't work - stylesheet is set with icon
+ mapLayout->addWidget(gbThemes, 0, 2, 3, 1);
+
+ QVBoxLayout * gbTLayout = new QVBoxLayout(gbThemes);
+ gbTLayout->setContentsMargins(0, 0, 0 ,0);
+ gbTLayout->setSpacing(0);
+ lvThemes = new QListView(mapWidget);
+ lvThemes->setMinimumHeight(30);
+ lvThemes->setFixedWidth(140);
+ lvThemes->setModel(themesModel);
+ lvThemes->setIconSize(QSize(16, 16));
+ lvThemes->setEditTriggers(QListView::NoEditTriggers);
+
+ connect(lvThemes->selectionModel(), SIGNAL(currentRowChanged( const QModelIndex &, const QModelIndex &)), this, SLOT(themeSelected( const QModelIndex &, const QModelIndex &)));
+
+ // override default style to tighten up theme scroller
+ lvThemes->setStyleSheet(QString(
+ "QListView{"
+ "border: solid;"
+ "border-width: 0px;"
+ "border-radius: 0px;"
+ "border-color: transparent;"
+ "background-color: #0d0544;"
+ "color: #ffcc00;"
+ "font: bold 13px;"
+ "}"
+ )
+ );
+
+ gbTLayout->addWidget(lvThemes);
+ lvThemes->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum);
+
+ mapLayout->setSizeConstraint(QLayout::SetFixedSize);
+
+ QWidget* seedWidget = new QWidget(this);
+ mainLayout.addWidget(seedWidget, 1, 0);
+
+ QGridLayout* seedLayout = new QGridLayout(seedWidget);
+ seedLayout->setMargin(0);
+
+ seedLabel = new QLabel(tr("Seed"), seedWidget);
+ seedLayout->addWidget(seedLabel, 3, 0);
+ seedEdit = new QLineEdit(seedWidget);
+ seedEdit->setMaxLength(54);
+ connect(seedEdit, SIGNAL(returnPressed()), this, SLOT(seedEdited()));
+ seedLayout->addWidget(seedEdit, 3, 1);
+ seedLayout->setColumnStretch(1, 5);
+ seedSet = new QPushButton(seedWidget);
+ seedSet->setText(QPushButton::tr("more"));
+ connect(seedSet, SIGNAL(clicked()), this, SLOT(seedEdited()));
+ seedLayout->setColumnStretch(2, 1);
+ seedLayout->addWidget(seedSet, 3, 2);
+
+ seedLabel->setVisible(false);
+ seedEdit->setVisible(false);
+
+ setRandomSeed();
+ setRandomTheme();
+}
+
+void HWMapContainer::setImage(const QImage newImage)
+{
+ QPixmap px(256, 128);
+ QPixmap pxres(256, 128);
+ QPainter p(&pxres);
+
+ px.fill(Qt::yellow);
+ QBitmap bm = QBitmap::fromImage(newImage);
+ px.setMask(bm);
+
+ QLinearGradient linearGrad(QPoint(128, 0), QPoint(128, 128));
+ linearGrad.setColorAt(1, QColor(0, 0, 192));
+ linearGrad.setColorAt(0, QColor(66, 115, 225));
+ p.fillRect(QRect(0, 0, 256, 128), linearGrad);
+ p.drawPixmap(QPoint(0, 0), px);
+
+ addInfoToPreview(pxres);
+ //chooseMap->setCurrentIndex(mapgen);
+ pMap = 0;
+}
+
+void HWMapContainer::setHHLimit(int newHHLimit)
+{
+ hhLimit = newHHLimit;
+}
+
+void HWMapContainer::mapChanged(int index)
+{
+ switch(index) {
+ case MAPGEN_REGULAR:
+ mapgen = MAPGEN_REGULAR;
+ updatePreview();
+ gbThemes->show();
+ lblFilter->show();
+ cbTemplateFilter->show();
+ maze_size_label->hide();
+ cbMazeSize->hide();
+ emit mapChanged("+rnd+");
+ emit themeChanged(chooseMap->itemData(index).toList()[1].toString());
+ break;
+ case MAPGEN_MAZE:
+ mapgen = MAPGEN_MAZE;
+ updatePreview();
+ gbThemes->show();
+ lblFilter->hide();
+ cbTemplateFilter->hide();
+ maze_size_label->show();
+ cbMazeSize->show();
+ emit mapChanged("+maze+");
+ emit themeChanged(chooseMap->itemData(index).toList()[1].toString());
+ break;
+ case MAPGEN_DRAWN:
+ mapgen = MAPGEN_DRAWN;
+ updatePreview();
+ gbThemes->show();
+ lblFilter->hide();
+ cbTemplateFilter->hide();
+ maze_size_label->hide();
+ cbMazeSize->hide();
+ emit mapChanged("+drawn+");
+ emit themeChanged(chooseMap->itemData(index).toList()[1].toString());
+ break;
+ default:
+ mapgen = MAPGEN_MAP;
+ updatePreview();
+ gbThemes->hide();
+ lblFilter->hide();
+ cbTemplateFilter->hide();
+ maze_size_label->hide();
+ cbMazeSize->hide();
+ emit mapChanged(chooseMap->itemData(index).toList()[0].toString());
+ }
+
+ emit mapgenChanged(mapgen);
+}
+
+// Should this add text to identify map size?
+void HWMapContainer::addInfoToPreview(QPixmap image)
+{
+ QPixmap finalImage = QPixmap(image.size());
+ finalImage.fill(QColor(0, 0, 0, 0));
+
+ QPainter p(&finalImage);
+ p.drawPixmap(image.rect(), image);
+ //p.setPen(QColor(0xf4,0x9e,0xe9));
+ p.setPen(QColor(0xff,0xcc,0x00));
+ p.setBrush(QColor(0, 0, 0));
+ p.drawRect(image.rect().width() - hhSmall.rect().width() - 28, 3, 40, 20);
+ p.setFont(QFont("MS Shell Dlg", 10));
+ p.drawText(image.rect().width() - hhSmall.rect().width() - 14 - (hhLimit > 9 ? 10 : 0), 18, QString::number(hhLimit));
+ p.drawPixmap(image.rect().width() - hhSmall.rect().width() - 5, 5, hhSmall.rect().width(), hhSmall.rect().height(), hhSmall);
+
+ imageButt->setIcon(finalImage);
+ imageButt->setIconSize(image.size());
+}
+
+void HWMapContainer::askForGeneratedPreview()
+{
+ if (pMap)
+ {
+ disconnect(pMap, 0, this, SLOT(setImage(const QImage)));
+ disconnect(pMap, 0, this, SLOT(setHHLimit(int)));
+ pMap = 0;
+ }
+
+ pMap = new HWMap();
+ connect(pMap, SIGNAL(ImageReceived(const QImage)), this, SLOT(setImage(const QImage)));
+ connect(pMap, SIGNAL(HHLimitReceived(int)), this, SLOT(setHHLimit(int)));
+ pMap->getImage(m_seed,
+ getTemplateFilter(),
+ get_mapgen(),
+ getMazeSize(),
+ getDrawnMapData()
+ );
+}
+
+void HWMapContainer::themeSelected(const QModelIndex & current, const QModelIndex &)
+{
+ QString theme = current.data().toString();
+ QList<QVariant> mapInfo;
+ mapInfo.push_back(QString("+rnd+"));
+ mapInfo.push_back(theme);
+ mapInfo.push_back(18);
+ mapInfo.push_back(false);
+ chooseMap->setItemData(0, mapInfo);
+ mapInfo[0] = QString("+maze+");
+ chooseMap->setItemData(1, mapInfo);
+ mapInfo[0] = QString("+drawn+");
+ chooseMap->setItemData(2, mapInfo);
+
+ gbThemes->setIcon(qVariantValue<QIcon>(current.data(Qt::UserRole)));
+ emit themeChanged(theme);
+}
+
+QString HWMapContainer::getCurrentSeed() const
+{
+ return m_seed;
+}
+
+QString HWMapContainer::getCurrentMap() const
+{
+ if(chooseMap->currentIndex() < MAPGEN_MAP) return QString();
+ return chooseMap->itemData(chooseMap->currentIndex()).toList()[0].toString();
+}
+
+QString HWMapContainer::getCurrentTheme() const
+{
+ return chooseMap->itemData(chooseMap->currentIndex()).toList()[1].toString();
+}
+
+bool HWMapContainer::getCurrentIsMission() const
+{
+ if(!chooseMap->currentIndex()) return false;
+ return chooseMap->itemData(chooseMap->currentIndex()).toList()[3].toBool();
+}
+
+int HWMapContainer::getCurrentHHLimit() const
+{
+ return hhLimit;
+}
+
+QString HWMapContainer::getCurrentScheme() const
+{
+ return chooseMap->itemData(chooseMap->currentIndex()).toList()[4].toString();
+}
+
+QString HWMapContainer::getCurrentWeapons() const
+{
+ return chooseMap->itemData(chooseMap->currentIndex()).toList()[5].toString();
+}
+
+quint32 HWMapContainer::getTemplateFilter() const
+{
+ return cbTemplateFilter->itemData(cbTemplateFilter->currentIndex()).toInt();
+}
+
+void HWMapContainer::resizeEvent ( QResizeEvent * event )
+{
+ Q_UNUSED(event);
+ //imageButt->setIconSize(imageButt->size());
+}
+
+void HWMapContainer::intSetSeed(const QString & seed)
+{
+ m_seed = seed;
+ if (seed != seedEdit->text())
+ seedEdit->setText(seed);
+}
+
+void HWMapContainer::setSeed(const QString & seed)
+{
+ intSetSeed(seed);
+ if (chooseMap->currentIndex() < MAPGEN_DRAWN)
+ updatePreview();
+}
+
+void HWMapContainer::intSetMap(const QString & map)
+{
+ int id = 0;
+ for(int i = 0; i < chooseMap->count(); i++)
+ if(!chooseMap->itemData(i).isNull() && chooseMap->itemData(i).toList()[0].toString() == map)
+ {
+ id = i;
+ break;
+ }
+
+ if(id > 0) {
+ if (pMap)
+ {
+ disconnect(pMap, 0, this, SLOT(setImage(const QImage)));
+ disconnect(pMap, 0, this, SLOT(setHHLimit(int)));
+ pMap = 0;
+ }
+ chooseMap->setCurrentIndex(id);
+ }
+}
+
+void HWMapContainer::setMap(const QString &map)
+{
+ intSetMap(map);
+ updatePreview();
+}
+
+void HWMapContainer::setTheme(const QString & theme)
+{
+ QModelIndexList mdl = themesModel->match(themesModel->index(0), Qt::DisplayRole, theme);
+
+ if(mdl.size())
+ lvThemes->setCurrentIndex(mdl.at(0));
+}
+
+void HWMapContainer::setRandomMap()
+{
+ setRandomSeed();
+ switch(chooseMap->currentIndex())
+ {
+ case MAPGEN_REGULAR:
+ case MAPGEN_MAZE:
+ setRandomTheme();
+ break;
+ case MAPGEN_DRAWN:
+ emit drawMapRequested();
+ break;
+ default:
+ if(chooseMap->currentIndex() <= numMissions + MAPGEN_MAP + 1)
+ setRandomMission();
+ else
+ setRandomStatic();
+ break;
+ }
+}
+
+void HWMapContainer::setRandomStatic()
+{
+ int i = MAPGEN_MAP + 3 + numMissions + rand() % (chooseMap->count() - MAPGEN_MAP - 3 - numMissions);
+ chooseMap->setCurrentIndex(i);
+ mapChanged(i);
+}
+
+void HWMapContainer::setRandomMission()
+{
+ int i = MAPGEN_MAP + 2 + rand() % numMissions;
+ chooseMap->setCurrentIndex(i);
+ mapChanged(i);
+}
+
+void HWMapContainer::setRandomSeed()
+{
+ m_seed = QUuid::createUuid().toString();
+ seedEdit->setText(m_seed);
+ emit seedChanged(m_seed);
+ if (chooseMap->currentIndex() < MAPGEN_MAP)
+ updatePreview();
+}
+
+void HWMapContainer::setRandomTheme()
+{
+ if(!themesModel->rowCount()) return;
+ quint32 themeNum = rand() % themesModel->rowCount();
+ lvThemes->setCurrentIndex(themesModel->index(themeNum));
+}
+
+void HWMapContainer::intSetTemplateFilter(int filter)
+{
+ cbTemplateFilter->setCurrentIndex(filter);
+ emit newTemplateFilter(filter);
+}
+
+void HWMapContainer::setTemplateFilter(int filter)
+{
+ intSetTemplateFilter(filter);
+ updatePreview();
+}
+
+MapGenerator HWMapContainer::get_mapgen(void) const
+{
+ return mapgen;
+}
+
+int HWMapContainer::getMazeSize(void) const
+{
+ return cbMazeSize->currentIndex();
+}
+
+void HWMapContainer::intSetMazeSize(int size)
+{
+ cbMazeSize->setCurrentIndex(size);
+ emit mazeSizeChanged(size);
+}
+
+void HWMapContainer::setMazeSize(int size)
+{
+ intSetMazeSize(size);
+ updatePreview();
+}
+
+void HWMapContainer::intSetMapgen(MapGenerator m)
+{
+ mapgen = m;
+
+ if(m != MAPGEN_MAP)
+ chooseMap->setCurrentIndex(m);
+
+ emit mapgenChanged(m);
+}
+
+void HWMapContainer::setMapgen(MapGenerator m)
+{
+ intSetMapgen(m);
+ updatePreview();
+}
+
+void HWMapContainer::setDrawnMapData(const QByteArray & ar)
+{
+ drawMapScene.decode(ar);
+ updatePreview();
+}
+
+QByteArray HWMapContainer::getDrawnMapData()
+{
+ return drawMapScene.encode();
+}
+
+void HWMapContainer::seedEdited()
+{
+ if (seedLabel->isVisible() == false )
+ {
+ seedLabel->setVisible(true);
+ seedEdit->setVisible(true);
+ seedSet->setText(tr("Set"));
+ return;
+ }
+
+ if (seedEdit->text().isEmpty())
+ seedEdit->setText(m_seed);
+ else
+ {
+ setSeed(seedEdit->text());
+ emit seedChanged(seedEdit->text());
+ }
+}
+
+DrawMapScene * HWMapContainer::getDrawMapScene()
+{
+ return &drawMapScene;
+}
+
+void HWMapContainer::mapDrawingFinished()
+{
+ emit drawnMapChanged(getDrawnMapData());
+
+ updatePreview();
+}
+
+void HWMapContainer::updatePreview()
+{
+ int curIndex = chooseMap->currentIndex();
+
+ switch(curIndex)
+ {
+ case MAPGEN_REGULAR:
+ askForGeneratedPreview();
+ break;
+ case MAPGEN_MAZE:
+ askForGeneratedPreview();
+ break;
+ case MAPGEN_DRAWN:
+ askForGeneratedPreview();
+ break;
+ default:
+ QPixmap mapImage;
+ QFile tmpfile;
+ tmpfile.setFileName(cfgdir->absolutePath() + "/Data/Maps/" + chooseMap->itemData(curIndex).toList()[0].toString() + "/preview.png");
+ if (!tmpfile.exists()) tmpfile.setFileName(datadir->absolutePath() + "/Maps/" + chooseMap->itemData(curIndex).toList()[0].toString() + "/preview.png");
+ if(!mapImage.load(QFileInfo(tmpfile).absoluteFilePath())) {
+ imageButt->setIcon(QIcon());
+ return;
+ }
+
+ hhLimit = chooseMap->itemData(curIndex).toList()[2].toInt();
+ addInfoToPreview(mapImage);
+ }
+}
+
+void HWMapContainer::setAllMapParameters(const QString &map, MapGenerator m, int mazesize, const QString &seed, int tmpl)
+{
+ intSetMap(map);
+ intSetMapgen(m);
+ intSetMazeSize(mazesize);
+ intSetSeed(seed);
+ intSetTemplateFilter(tmpl);
+
+ updatePreview();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/mapContainer.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,128 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _HWMAP_CONTAINER_INCLUDED
+#define _HWMAP_CONTAINER_INCLUDED
+
+#include <QWidget>
+#include <QGridLayout>
+#include <QComboBox>
+#include <QLabel>
+#include <QByteArray>
+#include <QLineEdit>
+
+#include "hwmap.h"
+#include "drawmapscene.h"
+
+class QPushButton;
+class IconedGroupBox;
+class QListView;
+
+class MapFileErrorException
+{
+};
+
+class HWMapContainer : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ HWMapContainer(QWidget * parent=0);
+ QString getCurrentSeed() const;
+ QString getCurrentMap() const;
+ QString getCurrentTheme() const;
+ int getCurrentHHLimit() const;
+ QString getCurrentScheme() const;
+ QString getCurrentWeapons() const;
+ quint32 getTemplateFilter() const;
+ MapGenerator get_mapgen(void) const;
+ int getMazeSize(void) const;
+ bool getCurrentIsMission() const;
+ QByteArray getDrawnMapData();
+ DrawMapScene * getDrawMapScene();
+ void mapDrawingFinished();
+ QLineEdit* seedEdit;
+
+ public slots:
+ void askForGeneratedPreview();
+ void setSeed(const QString & seed);
+ void setMap(const QString & map);
+ void setTheme(const QString & theme);
+ void setTemplateFilter(int);
+ void setMapgen(MapGenerator m);
+ void setMazeSize(int size);
+ void setDrawnMapData(const QByteArray & ar);
+ void setAllMapParameters(const QString & map, MapGenerator m, int mazesize, const QString & seed, int tmpl);
+
+ signals:
+ void seedChanged(const QString & seed);
+ void mapChanged(const QString & map);
+ void themeChanged(const QString & theme);
+ void newTemplateFilter(int filter);
+ void mapgenChanged(MapGenerator m);
+ void mazeSizeChanged(int s);
+ void drawMapRequested();
+ void drawnMapChanged(const QByteArray & data);
+
+ private slots:
+ void setImage(const QImage newImage);
+ void setHHLimit(int hhLimit);
+ void mapChanged(int index);
+ void setRandomSeed();
+ void setRandomTheme();
+ void setRandomMap();
+ void setRandomStatic();
+ void setRandomMission();
+ void themeSelected(const QModelIndex & current, const QModelIndex &);
+ void addInfoToPreview(QPixmap image);
+ void seedEdited();
+
+ protected:
+ virtual void resizeEvent ( QResizeEvent * event );
+
+ private:
+ QGridLayout mainLayout;
+ QPushButton* imageButt;
+ QComboBox* chooseMap;
+ IconedGroupBox* gbThemes;
+ QListView* lvThemes;
+ HWMap* pMap;
+ QString m_seed;
+ QPushButton* seedSet;
+ QLabel* seedLabel;
+ int hhLimit;
+ int templateFilter;
+ QPixmap hhSmall;
+ QLabel* lblFilter;
+ QComboBox* cbTemplateFilter;
+ QLabel *maze_size_label;
+ QComboBox *cbMazeSize;
+ MapGenerator mapgen;
+ int numMissions;
+ DrawMapScene drawMapScene;
+
+ void intSetSeed(const QString & seed);
+ void intSetMap(const QString & map);
+ void intSetMapgen(MapGenerator m);
+ void intSetTemplateFilter(int);
+ void intSetMazeSize(int size);
+ void updatePreview();
+};
+
+#endif // _HWMAP_CONTAINER_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/selectWeapon.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,294 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "selectWeapon.h"
+#include "weaponItem.h"
+#include "hwconsts.h"
+
+#include <QPushButton>
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QLabel>
+#include <QBitmap>
+#include <QLineEdit>
+#include <QSettings>
+#include <QMessageBox>
+#include <QTabWidget>
+#include <math.h>
+
+QImage getAmmoImage(int num)
+{
+ static QImage ammo(":Ammos.png");
+ int x = num/(ammo.height()/32);
+ int y = (num-((ammo.height()/32)*x))*32;
+ x*=32;
+ return ammo.copy(x, y, 32, 32);
+}
+
+SelWeaponItem::SelWeaponItem(bool allowInfinite, int iconNum, int wNum, QImage image, QImage imagegrey, QWidget* parent) :
+ QWidget(parent)
+{
+ QHBoxLayout* hbLayout = new QHBoxLayout(this);
+ hbLayout->setSpacing(1);
+ hbLayout->setMargin(1);
+
+ QLabel* lbl = new QLabel(this);
+ lbl->setPixmap(QPixmap::fromImage(getAmmoImage(iconNum)));
+ lbl->setMaximumWidth(30);
+ lbl->setGeometry(0, 0, 30, 30);
+ hbLayout->addWidget(lbl);
+
+ item = new WeaponItem(image, imagegrey, this);
+ item->setItemsNum(wNum);
+ item->setInfinityState(allowInfinite);
+ hbLayout->addWidget(item);
+
+ hbLayout->setStretchFactor(lbl, 1);
+ hbLayout->setStretchFactor(item, 99);
+ hbLayout->setAlignment(lbl, Qt::AlignLeft | Qt::AlignVCenter);
+ hbLayout->setAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
+}
+
+void SelWeaponItem::setItemsNum(const unsigned char num)
+{
+ item->setItemsNum(num);
+}
+
+unsigned char SelWeaponItem::getItemsNum() const
+{
+ return item->getItemsNum();
+}
+
+void SelWeaponItem::setEnabled(bool value)
+{
+ item->setEnabled(value);
+}
+
+SelWeaponWidget::SelWeaponWidget(int numItems, QWidget* parent) :
+ QFrame(parent),
+ m_numItems(numItems)
+{
+ wconf = new QSettings(cfgdir->absolutePath() + "/weapons.ini", QSettings::IniFormat, this);
+
+ for(int i = 0; i < cDefaultAmmos.size(); ++i)
+ wconf->setValue(cDefaultAmmos[i].first, cDefaultAmmos[i].second);
+
+ QStringList keys = wconf->allKeys();
+ for(int i = 0; i < keys.size(); i++)
+ {
+ if (wconf->value(keys[i]).toString().size() != cDefaultAmmoStore->size())
+ wconf->remove(keys[i]);
+ }
+
+ QString currentState = *cDefaultAmmoStore;
+
+ QTabWidget * tbw = new QTabWidget(this);
+ QWidget * page1 = new QWidget(this);
+ p1Layout = new QGridLayout(page1);
+ p1Layout->setSpacing(1);
+ p1Layout->setMargin(1);
+ QWidget * page2 = new QWidget(this);
+ p2Layout = new QGridLayout(page2);
+ p2Layout->setSpacing(1);
+ p2Layout->setMargin(1);
+ QWidget * page3 = new QWidget(this);
+ p3Layout = new QGridLayout(page3);
+ p3Layout->setSpacing(1);
+ p3Layout->setMargin(1);
+ QWidget * page4 = new QWidget(this);
+ p4Layout = new QGridLayout(page4);
+ p4Layout->setSpacing(1);
+ p4Layout->setMargin(1);
+
+ tbw->addTab(page1, tr("Weapon set"));
+ tbw->addTab(page2, tr("Probabilities"));
+ tbw->addTab(page4, tr("Ammo in boxes"));
+ tbw->addTab(page3, tr("Delays"));
+
+ QGridLayout * pageLayout = new QGridLayout(this);
+ pageLayout->addWidget(tbw);
+
+
+ int j = -1;
+ int i = 0, k = 0;
+ for(; i < m_numItems; ++i) {
+ if (i == 6) continue;
+ if (i == 52) continue; // Disable structures for now
+ if (k % 4 == 0) ++j;
+ SelWeaponItem * swi = new SelWeaponItem(true, i, currentState[i].digitValue(), QImage(":/res/ammopic.png"), QImage(":/res/ammopicgrey.png"), this);
+ weaponItems[i].append(swi);
+ p1Layout->addWidget(swi, j, k % 4);
+
+ SelWeaponItem * pwi = new SelWeaponItem(false, i, currentState[numItems + i].digitValue(), QImage(":/res/ammopicbox.png"), QImage(":/res/ammopicboxgrey.png"), this);
+ weaponItems[i].append(pwi);
+ p2Layout->addWidget(pwi, j, k % 4);
+
+ SelWeaponItem * dwi = new SelWeaponItem(false, i, currentState[numItems*2 + i].digitValue(), QImage(":/res/ammopicdelay.png"), QImage(":/res/ammopicdelaygrey.png"), this);
+ weaponItems[i].append(dwi);
+ p3Layout->addWidget(dwi, j, k % 4);
+
+ SelWeaponItem * awi = new SelWeaponItem(false, i, currentState[numItems*3 + i].digitValue(), QImage(":/res/ammopic.png"), QImage(":/res/ammopicgrey.png"), this);
+ weaponItems[i].append(awi);
+ p4Layout->addWidget(awi, j, k % 4);
+
+ ++k;
+ }
+
+ //pLayout->setRowStretch(5, 100);
+ m_name = new QLineEdit(this);
+ pageLayout->addWidget(m_name, i, 0, 1, 5);
+}
+
+void SelWeaponWidget::setWeapons(const QString& ammo)
+{
+ bool enable = true;
+ for(int i = 0; i < cDefaultAmmos.size(); i++)
+ if (!cDefaultAmmos[i].first.compare(m_name->text())) {
+ enable = false;
+ }
+ for(int i = 0; i < m_numItems; ++i) {
+ twi::iterator it = weaponItems.find(i);
+ if (it == weaponItems.end()) continue;
+ it.value()[0]->setItemsNum(ammo[i].digitValue());
+ it.value()[1]->setItemsNum(ammo[m_numItems + i].digitValue());
+ it.value()[2]->setItemsNum(ammo[m_numItems*2 + i].digitValue());
+ it.value()[3]->setItemsNum(ammo[m_numItems*3 + i].digitValue());
+ it.value()[0]->setEnabled(enable);
+ it.value()[1]->setEnabled(enable);
+ it.value()[2]->setEnabled(enable);
+ it.value()[3]->setEnabled(enable);
+ }
+ m_name->setEnabled(enable);
+}
+
+void SelWeaponWidget::setDefault()
+{
+ for(int i = 0; i < cDefaultAmmos.size(); i++)
+ if (!cDefaultAmmos[i].first.compare(m_name->text())) {
+ return;
+ }
+ setWeapons(*cDefaultAmmoStore);
+}
+
+void SelWeaponWidget::save()
+{
+ for(int i = 0; i < cDefaultAmmos.size(); i++)
+ if (!cDefaultAmmos[i].first.compare(m_name->text())) {
+ QMessageBox::warning(0, QMessageBox::tr("Weapons"), QMessageBox::tr("Can not overwrite default weapon set '%1'!").arg(cDefaultAmmos[i].first));
+ return;
+ }
+
+ if (m_name->text() == "") return;
+
+ QString state1;
+ QString state2;
+ QString state3;
+ QString state4;
+
+ for(int i = 0; i < m_numItems; ++i) {
+ twi::const_iterator it = weaponItems.find(i);
+ int num = it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum(); // 9 is for 'skip turn'
+ state1.append(QString::number(num));
+ int prob = it == weaponItems.end() ? 0 : it.value()[1]->getItemsNum();
+ state2.append(QString::number(prob));
+ int del = it == weaponItems.end() ? 0 : it.value()[2]->getItemsNum();
+ state3.append(QString::number(del));
+ int am = it == weaponItems.end() ? 0 : it.value()[3]->getItemsNum();
+ state4.append(QString::number(am));
+ }
+ if (curWeaponsName != "") {
+ // remove old entry
+ wconf->remove(curWeaponsName);
+ }
+ wconf->setValue(m_name->text(), state1 + state2 + state3 + state4);
+ emit weaponsChanged();
+}
+
+int SelWeaponWidget::operator [] (unsigned int weaponIndex) const
+{
+ twi::const_iterator it = weaponItems.find(weaponIndex);
+ return it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum();
+}
+
+QString SelWeaponWidget::getWeaponsString(const QString& name) const
+{
+ return wconf->value(name).toString();
+}
+
+void SelWeaponWidget::deleteWeaponsName()
+{
+ if (curWeaponsName == "") return;
+
+ for(int i = 0; i < cDefaultAmmos.size(); i++)
+ if (!cDefaultAmmos[i].first.compare(m_name->text())) {
+ QMessageBox::warning(0, QMessageBox::tr("Weapons"), QMessageBox::tr("Can not delete default weapon set '%1'!").arg(cDefaultAmmos[i].first));
+ return;
+ }
+
+ QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Weapons"), QMessageBox::tr("Really delete this weapon set?"), QMessageBox::Ok | QMessageBox::Cancel);
+
+ if (reallyDelete.exec() == QMessageBox::Ok) {
+ wconf->remove(curWeaponsName);
+ emit weaponsDeleted();
+ }
+}
+
+void SelWeaponWidget::newWeaponsName()
+{
+ QString newName = tr("new");
+ if(wconf->contains(newName)) {
+ //name already used -> look for an appropriate name:
+ int i=2;
+ while(wconf->contains(newName = tr("new")+QString::number(i++)));
+ }
+ setWeaponsName(newName);
+}
+
+void SelWeaponWidget::setWeaponsName(const QString& name)
+{
+ m_name->setText(name);
+
+ curWeaponsName = name;
+
+ if(name != "" && wconf->contains(name)) {
+ setWeapons(wconf->value(name).toString());
+ } else {
+ setWeapons(*cDefaultAmmoStore);
+ }
+}
+
+QStringList SelWeaponWidget::getWeaponNames() const
+{
+ return wconf->allKeys();
+}
+
+void SelWeaponWidget::copy()
+{
+ if(wconf->contains(curWeaponsName)) {
+ QString ammo = getWeaponsString(curWeaponsName);
+ QString newName = tr("copy of") + " " + curWeaponsName;
+ if(wconf->contains(newName)) {
+ //name already used -> look for an appropriate name:
+ int i=2;
+ while(wconf->contains(newName = tr("copy of") + " " + curWeaponsName+QString::number(i++)));
+ }
+ setWeaponsName(newName);
+ setWeapons(ammo);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/selectWeapon.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,92 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _SELECT_WEAPON_INCLUDED
+#define _SELECT_WEAPON_INCLUDED
+
+#include <QFrame>
+#include <QMap>
+#include <QList>
+
+class QGridLayout;
+class WeaponItem;
+class QLineEdit;
+class QSettings;
+
+class SelWeaponItem : public QWidget
+{
+ Q_OBJECT
+
+public:
+ SelWeaponItem(bool allowInfinite, int iconNum, int wNum, QImage image, QImage imagegrey, QWidget* parent=0);
+
+ unsigned char getItemsNum() const;
+ void setItemsNum(const unsigned char num);
+ void setEnabled(bool value);
+
+ private:
+ WeaponItem* item;
+};
+
+class SelWeaponWidget : public QFrame
+{
+ Q_OBJECT
+
+ public:
+ SelWeaponWidget(int numItems, QWidget* parent=0);
+ QString getWeaponsString(const QString& name) const;
+ QStringList getWeaponNames() const;
+
+ public slots:
+ void setDefault();
+ void setWeapons(const QString& ammo);
+ //sets the name of the current set
+ void setWeaponsName(const QString& name);
+ void deleteWeaponsName();
+ void newWeaponsName();
+ void save();
+ void copy();
+
+ signals:
+ void weaponsChanged();
+ void weaponsDeleted();
+
+ private:
+ //the name of the current weapon set
+ QString curWeaponsName;
+
+ QLineEdit* m_name;
+
+ //storage for all the weapons sets
+ QSettings* wconf;
+
+ const int m_numItems;
+ int operator [] (unsigned int weaponIndex) const;
+
+ typedef QList<SelWeaponItem*> ItemsList;
+ typedef QMap<int, ItemsList> twi;
+ twi weaponItems;
+ //layout element for each tab:
+ QGridLayout* p1Layout;
+ QGridLayout* p2Layout;
+ QGridLayout* p3Layout;
+ QGridLayout* p4Layout;
+};
+
+#endif // _SELECT_WEAPON_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/teamselect.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,281 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <algorithm>
+
+#include <QLabel>
+#include <QPixmap>
+#include <QPushButton>
+#include <QFrame>
+#include <QDebug>
+
+#include "vertScrollArea.h"
+#include "teamselect.h"
+#include "teamselhelper.h"
+#include "frameTeam.h"
+
+void TeamSelWidget::addTeam(HWTeam team)
+{
+ if(team.isNetTeam()) {
+ framePlaying->addTeam(team, true);
+ curPlayingTeams.push_back(team);
+ connect(framePlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
+ this, SLOT(netTeamStatusChanged(const HWTeam&)));
+ connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)),
+ this, SLOT(hhNumChanged(const HWTeam&)));
+ dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged();
+ connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)),
+ this, SLOT(proxyTeamColorChanged(const HWTeam&)));
+ } else {
+ frameDontPlaying->addTeam(team, false);
+ m_curNotPlayingTeams.push_back(team);
+ if(m_acceptOuter) {
+ connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
+ this, SLOT(pre_changeTeamStatus(HWTeam)));
+ } else {
+ connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
+ this, SLOT(changeTeamStatus(HWTeam)));
+ }
+ }
+ emit setEnabledGameStart(curPlayingTeams.size()>1);
+}
+
+void TeamSelWidget::setInteractivity(bool interactive)
+{
+ framePlaying->setInteractivity(interactive);
+}
+
+void TeamSelWidget::hhNumChanged(const HWTeam& team)
+{
+ QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
+ if(itPlay==curPlayingTeams.end())
+ {
+ qWarning() << QString("hhNumChanged: team '%1' not found").arg(team.name());
+ return;
+ }
+ itPlay->setNumHedgehogs(team.numHedgehogs());
+ emit hhogsNumChanged(team);
+}
+
+void TeamSelWidget::proxyTeamColorChanged(const HWTeam& team)
+{
+ QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
+ if(itPlay==curPlayingTeams.end())
+ {
+ qWarning() << QString("proxyTeamColorChanged: team '%1' not found").arg(team.name());
+ return;
+ }
+ itPlay->setColor(team.color());
+ emit teamColorChanged(team);
+}
+
+void TeamSelWidget::changeHHNum(const HWTeam& team)
+{
+ QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
+ if(itPlay==curPlayingTeams.end())
+ {
+ qWarning() << QString("changeHHNum: team '%1' not found").arg(team.name());
+ return;
+ }
+ itPlay->setNumHedgehogs(team.numHedgehogs());
+
+ framePlaying->setHHNum(team);
+}
+
+void TeamSelWidget::changeTeamColor(const HWTeam& team)
+{
+ QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
+ if(itPlay==curPlayingTeams.end())
+ {
+ qWarning() << QString("changeTeamColor: team '%1' not found").arg(team.name());
+ return;
+ }
+ itPlay->setColor(team.color());
+
+ framePlaying->setTeamColor(team);
+}
+
+void TeamSelWidget::removeNetTeam(const HWTeam& team)
+{
+ //qDebug() << QString("removeNetTeam: removing team '%1'").arg(team.TeamName);
+ for(;;) {
+ QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
+ if(itPlay==curPlayingTeams.end())
+ {
+ qWarning() << QString("removeNetTeam: team '%1' not found").arg(team.name());
+ break;
+ }
+ if(itPlay->isNetTeam()) {
+ QObject::disconnect(framePlaying->getTeamWidget(*itPlay), SIGNAL(teamStatusChanged(HWTeam)));
+ framePlaying->removeTeam(team);
+ curPlayingTeams.erase(itPlay);
+ break;
+ }
+ }
+ emit setEnabledGameStart(curPlayingTeams.size()>1);
+}
+
+void TeamSelWidget::netTeamStatusChanged(const HWTeam& team)
+{
+ QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
+
+}
+
+//void TeamSelWidget::removeTeam(__attribute__ ((unused)) HWTeam team)
+//{
+ //curDontPlayingTeams.erase(std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team));
+//}
+
+void TeamSelWidget::changeTeamStatus(HWTeam team)
+{
+ QList<HWTeam>::iterator itDontPlay=std::find(m_curNotPlayingTeams.begin(), m_curNotPlayingTeams.end(), team);
+ QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
+
+ bool willBePlaying=itDontPlay!=m_curNotPlayingTeams.end();
+
+ if(!willBePlaying) {
+ // playing team => dont playing
+ m_curNotPlayingTeams.push_back(*itPlay);
+ emit teamNotPlaying(*itPlay);
+ curPlayingTeams.erase(itPlay);
+ } else {
+ // return if max playing teams reached
+ if(framePlaying->isFullTeams()) return;
+ // dont playing team => playing
+ team=*itDontPlay; // for net team info saving in framePlaying (we have only name with netID from network)
+ itDontPlay->setColor(framePlaying->getNextColor());
+ curPlayingTeams.push_back(*itDontPlay);
+ if(!m_acceptOuter) emit teamWillPlay(*itDontPlay);
+ m_curNotPlayingTeams.erase(itDontPlay);
+ }
+
+ FrameTeams* pRemoveTeams;
+ FrameTeams* pAddTeams;
+ if(!willBePlaying) {
+ pRemoveTeams=framePlaying;
+ pAddTeams=frameDontPlaying;
+ } else {
+ pRemoveTeams=frameDontPlaying;
+ pAddTeams=framePlaying;
+ }
+
+ pAddTeams->addTeam(team, willBePlaying);
+ pRemoveTeams->removeTeam(team);
+ if(!team.isNetTeam() && m_acceptOuter && !willBePlaying) {
+ connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
+ this, SLOT(pre_changeTeamStatus(HWTeam)));
+ } else {
+ connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
+ this, SLOT(changeTeamStatus(HWTeam)));
+ }
+ if(willBePlaying) {
+ connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)),
+ this, SLOT(hhNumChanged(const HWTeam&)));
+ dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged();
+ connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)),
+ this, SLOT(proxyTeamColorChanged(const HWTeam&)));
+ emit teamColorChanged(((TeamShowWidget*)framePlaying->getTeamWidget(team))->getTeam());
+ }
+
+ QSize szh=pAddTeams->sizeHint();
+ QSize szh1=pRemoveTeams->sizeHint();
+ if(szh.isValid() && szh1.isValid()) {
+ pAddTeams->resize(pAddTeams->size().width(), szh.height());
+ pRemoveTeams->resize(pRemoveTeams->size().width(), szh1.height());
+ }
+
+ emit setEnabledGameStart(curPlayingTeams.size()>1);
+}
+
+void TeamSelWidget::addScrArea(FrameTeams* pfteams, QColor color, int fixedHeight)
+{
+ VertScrArea* area = new VertScrArea(color);
+ area->setWidget(pfteams);
+ mainLayout.addWidget(area, 30);
+ if (fixedHeight > 0)
+ {
+ area->setMinimumHeight(fixedHeight);
+ area->setMaximumHeight(fixedHeight);
+ area->setStyleSheet(
+ "FrameTeams{"
+ "border: solid;"
+ "border-width: 1px;"
+ "border-radius: 16px;"
+ "border-color: #ffcc00;"
+ "}"
+ );
+ }
+}
+
+TeamSelWidget::TeamSelWidget(QWidget* parent) :
+ QGroupBox(parent), mainLayout(this), m_acceptOuter(false)
+{
+ setTitle(QGroupBox::tr("Playing teams"));
+ framePlaying = new FrameTeams();
+ frameDontPlaying = new FrameTeams();
+
+ QPalette p;
+ p.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
+ addScrArea(framePlaying, p.color(QPalette::Window).light(105), 250);
+ addScrArea(frameDontPlaying, p.color(QPalette::Window).dark(105), 0);
+}
+
+void TeamSelWidget::setAcceptOuter(bool acceptOuter)
+{
+ m_acceptOuter=acceptOuter;
+}
+
+void TeamSelWidget::resetPlayingTeams(const QList<HWTeam>& teamslist)
+{
+ //for(it=curPlayingTeams.begin(); it!=curPlayingTeams.end(); it++) {
+ //framePlaying->removeTeam(*it);
+ //}
+ framePlaying->resetTeams();
+ framePlaying->resetColors();
+ curPlayingTeams.clear();
+ //for(it=curDontPlayingTeams.begin(); it!=curDontPlayingTeams.end(); it++) {
+ //frameDontPlaying->removeTeam(*it);
+ //}
+ frameDontPlaying->resetTeams();
+ m_curNotPlayingTeams.clear();
+
+ foreach(HWTeam team, teamslist)
+ addTeam(team);
+}
+
+bool TeamSelWidget::isPlaying(HWTeam team) const
+{
+ return std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team)!=curPlayingTeams.end();
+}
+
+QList<HWTeam> TeamSelWidget::getPlayingTeams() const
+{
+ return curPlayingTeams;
+}
+
+QList<HWTeam> TeamSelWidget::getNotPlayingTeams() const
+{
+ return m_curNotPlayingTeams;
+}
+
+void TeamSelWidget::pre_changeTeamStatus(HWTeam team)
+{
+ team.setColor(framePlaying->getNextColor());
+ emit acceptRequested(team);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/teamselect.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,83 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _TEAM_SELECT_INCLUDED
+#define _TEAM_SELECT_INCLUDED
+
+#include <QGroupBox>
+#include <QVBoxLayout>
+#include <QColor>
+#include <QMultiMap>
+
+#include "team.h"
+
+class TeamSelWidget;
+class FrameTeams;
+class QFrame;
+class QPushButton;
+
+using namespace std;
+
+class TeamSelWidget : public QGroupBox
+{
+ Q_OBJECT
+
+ public:
+ TeamSelWidget(QWidget* parent);
+ void setAcceptOuter(bool acceptOuter);
+ void removeNetTeam(const HWTeam& team);
+ void resetPlayingTeams(const QList<HWTeam>& teamslist);
+ bool isPlaying(HWTeam team) const;
+ QList<HWTeam> getPlayingTeams() const;
+ QList<HWTeam> getNotPlayingTeams() const;
+ void setInteractivity(bool interactive);
+
+ public slots:
+ void addTeam(HWTeam team);
+ void netTeamStatusChanged(const HWTeam& team);
+ void changeHHNum(const HWTeam&);
+ void changeTeamColor(const HWTeam&);
+ void changeTeamStatus(HWTeam team);
+
+ signals:
+ void setEnabledGameStart(bool);
+ void teamWillPlay(HWTeam team);
+ void teamNotPlaying(const HWTeam& team);
+ void hhogsNumChanged(const HWTeam&);
+ void teamColorChanged(const HWTeam&);
+ void acceptRequested(HWTeam team);
+
+ private slots:
+ void pre_changeTeamStatus(HWTeam);
+ void hhNumChanged(const HWTeam& team);
+ void proxyTeamColorChanged(const HWTeam& team);
+
+ private:
+ void addScrArea(FrameTeams* pfteams, QColor color, int maxHeight);
+ FrameTeams* frameDontPlaying;
+ FrameTeams* framePlaying;
+
+ QVBoxLayout mainLayout;
+ bool m_acceptOuter;
+
+ QList<HWTeam> curPlayingTeams;
+ QList<HWTeam> m_curNotPlayingTeams;
+};
+
+#endif // _TEAM_SELECT_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/teamselhelper.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,154 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QPixmap>
+#include <QPainter>
+#include <QStyleFactory>
+
+#include <algorithm>
+
+#include "teamselhelper.h"
+#include "hwconsts.h"
+#include "frameTeam.h"
+
+void TeamLabel::teamButtonClicked()
+{
+ emit teamActivated(text());
+}
+
+TeamShowWidget::TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent) :
+ QWidget(parent), mainLayout(this), m_team(team), m_isPlaying(isPlaying), phhoger(0),
+ colorButt(0)
+{
+ QPalette newPalette = palette();
+ newPalette.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
+ setPalette(newPalette);
+ setAutoFillBackground(true);
+
+ mainLayout.setSpacing(3);
+ mainLayout.setMargin(0);
+ this->setMaximumHeight(38);
+ this->setMinimumHeight(38);
+ QIcon difficultyIcon=team.isNetTeam() ?
+ QIcon(QString(":/res/botlevels/net%1.png").arg(m_team.difficulty()))
+ : QIcon(QString(":/res/botlevels/%1.png").arg(m_team.difficulty()));
+
+ butt = new QPushButton(difficultyIcon, team.name().replace("&","&&"), this);
+ butt->setFlat(true);
+ butt->setToolTip(team.owner());
+ mainLayout.addWidget(butt);
+ butt->setStyleSheet("QPushButton{"
+ "icon-size: 48px;"
+ "text-align: left;"
+ "background-color: #0d0544;"
+ "color: orange;"
+ "font: bold;"
+ "border-width: 2px;"
+ "margin: 6px 0px 6px 0px;"
+ "}");
+
+ if(m_isPlaying) {
+ // team color
+ colorButt = new QPushButton(this);
+ colorButt->setMaximumWidth(26);
+ colorButt->setMinimumHeight(26);
+ colorButt->setGeometry(0, 0, 26, 26);
+
+ changeTeamColor();
+ connect(colorButt, SIGNAL(clicked()), this, SLOT(changeTeamColor()));
+ mainLayout.addWidget(colorButt);
+
+ phhoger = new CHedgehogerWidget(QImage(":/res/hh25x25.png"), QImage(":/res/hh25x25grey.png"), this);
+ connect(phhoger, SIGNAL(hedgehogsNumChanged()), this, SLOT(hhNumChanged()));
+ phhoger->setHHNum(team.numHedgehogs());
+ mainLayout.addWidget(phhoger);
+ } else {
+ }
+
+ QObject::connect(butt, SIGNAL(clicked()), this, SLOT(activateTeam()));
+ //QObject::connect(bText, SIGNAL(clicked()), this, SLOT(activateTeam()));
+}
+
+void TeamShowWidget::setInteractivity(bool interactive)
+{
+ if(m_team.isNetTeam()) {
+ butt->setEnabled(interactive);
+ }
+
+ colorButt->setEnabled(interactive);
+ phhoger->setEnabled(interactive);
+}
+
+void TeamShowWidget::setHHNum(unsigned int num)
+{
+ phhoger->setHHNum(num);
+}
+
+void TeamShowWidget::hhNumChanged()
+{
+ m_team.setNumHedgehogs(phhoger->getHedgehogsNum());
+ emit hhNmChanged(m_team);
+}
+
+void TeamShowWidget::activateTeam()
+{
+ emit teamStatusChanged(m_team);
+}
+
+/*HWTeamTempParams TeamShowWidget::getTeamParams() const
+{
+ if(!phhoger) throw;
+ HWTeamTempParams params;
+ params.numHedgehogs=phhoger->getHedgehogsNum();
+ params.teamColor=colorButt->palette().color(QPalette::Button);
+ return params;
+}*/
+
+void TeamShowWidget::changeTeamColor(QColor color)
+{
+ FrameTeams* pOurFrameTeams=dynamic_cast<FrameTeams*>(parentWidget());
+ if(!color.isValid()) {
+ if(++pOurFrameTeams->currentColor==pOurFrameTeams->availableColors.end()) {
+ pOurFrameTeams->currentColor=pOurFrameTeams->availableColors.begin();
+ }
+ color=*pOurFrameTeams->currentColor;
+ } else {
+ // set according color iterator
+ pOurFrameTeams->currentColor=std::find(pOurFrameTeams->availableColors.begin(),
+ pOurFrameTeams->availableColors.end(), color);
+ if(pOurFrameTeams->currentColor==pOurFrameTeams->availableColors.end()) {
+ // error condition
+ pOurFrameTeams->currentColor=pOurFrameTeams->availableColors.begin();
+ }
+ }
+
+ colorButt->setStyleSheet(QString("QPushButton{"
+ "background-color: %1;"
+ "border-width: 1px;"
+ "border-radius: 2px;"
+ "}").arg(pOurFrameTeams->currentColor->name()));
+
+ m_team.setColor(color);
+ emit teamColorChanged(m_team);
+}
+
+HWTeam TeamShowWidget::getTeam() const
+{
+ return m_team;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/teamselhelper.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,80 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _TEAMSEL_HELPER_INCLUDED
+#define _TEAMSEL_HELPER_INCLUDED
+
+#include <QLabel>
+#include <QWidget>
+#include <QString>
+#include <QPushButton>
+
+#include "teamselect.h"
+#include "hedgehogerWidget.h"
+
+class TeamLabel : public QLabel
+{
+ Q_OBJECT
+
+ public:
+ TeamLabel(const QString& inp_str) : QLabel(inp_str) {};
+
+ signals:
+ void teamActivated(QString team_name);
+
+ public slots:
+ void teamButtonClicked();
+
+};
+
+class TeamShowWidget : public QWidget
+{
+ Q_OBJECT
+
+ public slots:
+ void changeTeamColor(QColor color=QColor());
+ void hhNumChanged();
+
+ private slots:
+ void activateTeam();
+
+ public:
+ TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent);
+ void setPlaying(bool isPlaying);
+ void setHHNum(unsigned int num);
+ void setInteractivity(bool interactive);
+ HWTeam getTeam() const;
+
+ private:
+ TeamShowWidget();
+ QHBoxLayout mainLayout;
+ HWTeam m_team;
+ bool m_isPlaying;
+ CHedgehogerWidget* phhoger;
+ QPushButton* colorButt;
+ QPushButton* butt;
+// QPushButton* bText;
+
+ signals:
+ void teamStatusChanged(HWTeam team);
+ void hhNmChanged(const HWTeam&);
+ void teamColorChanged(const HWTeam&);
+};
+
+#endif // _TEAMSEL_HELPER_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/togglebutton.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,52 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
+ * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "togglebutton.h"
+
+ToggleButtonWidget::ToggleButtonWidget(QWidget * parent, QString img)
+ : QPushButton(parent)
+{
+ setCheckable(true);
+
+ QPixmap pm(":/res/btnDisabled.png");
+ QPainter * painter = new QPainter();
+
+ pmChecked.load(img);
+ pmDisabled.load(img);
+
+ setMaximumWidth(pmChecked.width() + 6);
+
+ painter->begin(&pmDisabled);
+ painter->drawPixmap(pmDisabled.rect(), pm);
+ painter->end();
+
+ setIconSize(pmDisabled.size());
+ setIcon(pmDisabled);
+
+ connect(this, SIGNAL(toggled(bool)), this, SLOT(eventToggled(bool)));
+}
+
+ToggleButtonWidget::~ToggleButtonWidget()
+{
+}
+
+void ToggleButtonWidget::eventToggled(bool checked)
+{
+ setIcon(checked ? pmChecked : pmDisabled);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/togglebutton.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,42 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
+ * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef TOGGLEBUTTONWIDGET_H
+#define TOGGLEBUTTONWIDGET_H
+
+#include <QWidget>
+#include <QPainter>
+#include <QPushButton>
+#include <QVBoxLayout>
+#include <QLabel>
+
+class ToggleButtonWidget : public QPushButton
+{
+ Q_OBJECT
+public:
+ ToggleButtonWidget(QWidget * parent, QString img);
+ ~ToggleButtonWidget();
+private:
+ QPixmap pmChecked;
+ QPixmap pmDisabled;
+private slots:
+ void eventToggled(bool checked);
+};
+
+#endif // TOGGLEBUTTONWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/vertScrollArea.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,35 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "vertScrollArea.h"
+
+#include <QResizeEvent>
+
+VertScrArea::VertScrArea(QColor frameColor, QWidget * parent) :
+ QScrollArea(parent)
+{
+ QPalette newPalette = palette();
+ newPalette.setColor(QPalette::Background, frameColor);
+ setPalette(newPalette);
+}
+
+void VertScrArea::resizeEvent(QResizeEvent * event)
+{
+ widget()->resize(event->size().width(), widget()->sizeHint().height());
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/vertScrollArea.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,36 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _VERT_SCROLL_AREA_INCLUDED
+#define _VERT_SCROLL_AREA_INCLUDED
+
+#include <QScrollArea>
+
+class VertScrArea : public QScrollArea
+{
+ Q_OBJECT
+
+public:
+ VertScrArea(QColor frameColor, QWidget * parent = 0);
+
+protected:
+ virtual void resizeEvent(QResizeEvent * event);
+};
+
+#endif // _VERT_SCROLL_AREA_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/weaponItem.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,40 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "weaponItem.h"
+
+WeaponItem::WeaponItem(const QImage& im, const QImage& img, QWidget * parent) :
+ ItemNum(im, img, parent, 0)
+{
+}
+
+WeaponItem::~WeaponItem()
+{
+}
+
+void WeaponItem::incItems()
+{
+ ++numItems;
+}
+
+void WeaponItem::decItems()
+{
+ --numItems;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/weaponItem.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,44 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _WEAPON_ITEM
+#define _WEAPON_ITEM
+
+#include "itemNum.h"
+
+class WeaponItem : public ItemNum
+{
+ Q_OBJECT
+
+ public:
+ WeaponItem(const QImage& im, const QImage& img, QWidget * parent);
+ virtual ~WeaponItem();
+
+ signals:
+ void hedgehogsNumChanged();
+
+ protected:
+ virtual void incItems();
+ virtual void decItems();
+
+ private:
+ WeaponItem();
+};
+
+#endif // _WEAPON_ITEM
--- a/QTfrontend/ui_hwform.cpp Fri Oct 28 17:41:39 2011 +0200
+++ b/QTfrontend/ui_hwform.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -76,7 +76,7 @@
{
Pages = new QStackedLayout(Parent);
- pageEditTeam = new PageEditTeam(Parent, &HWForm->sdli);
+ pageEditTeam = new PageEditTeam(Parent);
Pages->addWidget(pageEditTeam);
pageOptions = new PageOptions();
@@ -91,7 +91,7 @@
pageNet = new PageNet();
Pages->addWidget(pageNet);
- pageNetGame = new PageNetGame(Parent, HWForm->gameSettings, &HWForm->sdli);
+ pageNetGame = new PageNetGame(Parent, HWForm->gameSettings);
Pages->addWidget(pageNetGame);
pageInfo = new PageInfo();
@@ -118,7 +118,7 @@
pageInGame = new PageInGame();
Pages->addWidget(pageInGame);
- pageRoomsList = new PageRoomsList(Parent, HWForm->gameSettings, &HWForm->sdli);
+ pageRoomsList = new PageRoomsList(Parent, HWForm->gameSettings);
Pages->addWidget(pageRoomsList);
pageConnecting = new PageConnecting();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/HWDataManager.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,117 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief HWDataManager class implementation
+ */
+
+#include <QMap>
+#include <QStringList>
+
+#include <QFileInfo>
+
+#include "hwconsts.h"
+
+#include "HWDataManager.h"
+
+
+HWDataManager::HWDataManager()
+{
+ userData = new QDir(cfgdir->absolutePath());
+ if (!userData->cd("Data"))
+ userData = NULL;
+
+ defaultData = new QDir(datadir->absolutePath());
+}
+
+
+HWDataManager & HWDataManager::instance()
+{
+ static HWDataManager instance;
+ return instance;
+}
+
+
+QStringList HWDataManager::entryList(
+ const QString & subDirectory,
+ QDir::Filters filters,
+ const QStringList & nameFilters
+ ) const
+{
+ QStringList result;
+
+ if (userData != NULL)
+ {
+ QDir tmpDir(*userData);
+ if (tmpDir.cd(subDirectory))
+ result.append(tmpDir.entryList(nameFilters, filters));
+ }
+
+ QDir tmpDir(*defaultData);
+ if (tmpDir.cd(subDirectory))
+ result.append(tmpDir.entryList(nameFilters, filters));
+
+ result.removeDuplicates();
+
+ // sort case-insensitive
+ QMap<QString, QString> sortedFileNames;
+ foreach ( QString fn, result)
+ {
+ sortedFileNames.insert(fn.toLower(), fn);
+ }
+ result = sortedFileNames.values();
+
+ return result;
+}
+
+
+QString HWDataManager::findFileForRead(
+ const QString & relativeDataFilePath) const
+{
+ QString path;
+
+ if (userData != NULL)
+ path = userData->absolutePath()+"/"+relativeDataFilePath;
+
+ if ((!path.isEmpty()) && (!QFile::exists(path)))
+ path = defaultData->absolutePath()+"/"+relativeDataFilePath;
+
+ return path;
+}
+
+
+QString HWDataManager::findFileForWrite(
+ const QString & relativeDataFilePath) const
+{
+ if (userData != NULL)
+ {
+ QString path = userData->absolutePath()+"/"+relativeDataFilePath;
+
+ // create folders if needed
+ QDir tmp;
+ tmp.mkpath(QFileInfo(path).absolutePath());
+
+ return path;
+ }
+
+
+ return "";
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/HWDataManager.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,107 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief HWDataManager class definition
+ */
+
+#ifndef HEDGEWARS_HWDATAMANAGER_H
+#define HEDGEWARS_HWDATAMANAGER_H
+
+#include <QDir>
+#include <QFile>
+
+#include <QStringList>
+
+class QDir;
+class QFile;
+class QStringList;
+
+/**
+ * @brief Offers access to the data files of hedgewars.
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton pattern</a>
+ *
+ * @author sheepluva
+ * @since 0.9.17
+ */
+class HWDataManager
+{
+public:
+ /**
+ * @brief Returns reference to the <i>singleton</i> instance of this class.
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton pattern</a>
+ *
+ * @return reference to the instance.
+ */
+ static HWDataManager & instance();
+
+ /**
+ * @brief Returns a sorted list of data directory entries.
+ *
+ * @param subDirectory sub-directory to search.
+ * @param filters filters for entry type.
+ * @param nameFilters filters by name patterns.
+ * @return a sorted list of matches in the subDirectory of data directory.
+ */
+ QStringList entryList(const QString & subDirectory,
+ QDir::Filters filters = QDir::NoFilter,
+ const QStringList & nameFilters = QStringList("*")
+ ) const;
+
+ /**
+ * @brief Returns the path for the desires data file.
+ *
+ * Use this method if you want to read an existing data file.
+ *
+ * @param relativeDataFilePath relative path of the data file.
+ * @return real path to the file.
+ */
+ QString findFileForRead(const QString & relativeDataFilePath) const;
+
+
+ /**
+ * @brief Returns the path for the data file that is to be written.
+ *
+ * Use this method if you want to create or write into a data file.
+ *
+ * @param relativeDataFilePath relative path of data file write path.
+ * @return destination of path data file.
+ */
+ QString findFileForWrite(const QString & relativeDataFilePath) const;
+
+
+private:
+ /**
+ * @brief Class constructor of the <i>singleton</i>.
+ *
+ * Not to be used from outside the class,
+ * use the static {@link HWDataManager::instance()} instead.
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton pattern</a>
+ */
+ HWDataManager();
+
+ QDir * defaultData; ///< directory of the installed data
+ QDir * userData; ///< directory of custom data in the user's directory
+};
+
+#endif // HEDGEWARS_HWDATAMANAGER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/SDLInteraction.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,248 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief SDLInteraction class implementation
+ */
+
+#include "SDL.h"
+#include "SDL_mixer.h"
+
+#include "HWApplication.h"
+
+#include "SDLInteraction.h"
+
+extern char sdlkeys[1024][2][128];
+extern char xb360buttons[][128];
+extern char xb360dpad[128];
+extern char xbox360axes[][128];
+
+
+SDLInteraction & SDLInteraction::instance()
+{
+ static SDLInteraction instance;
+ return instance;
+}
+
+
+SDLInteraction::SDLInteraction()
+{
+
+ SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
+
+ m_audioInitialized = false;
+ m_music = NULL;
+ m_musicTrack = "";
+ m_isPlayingMusic = false;
+ if(SDL_NumJoysticks())
+ addGameControllerKeys();
+ SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
+
+ m_soundMap = new QMap<QString,Mix_Chunk*>();
+}
+
+
+SDLInteraction::~SDLInteraction()
+{
+ stopMusic();
+ if (m_audioInitialized)
+ {
+ if (m_music != NULL)
+ Mix_FreeMusic(m_music);
+ Mix_CloseAudio();
+ }
+ SDL_Quit();
+
+ delete m_soundMap;
+}
+
+
+QStringList SDLInteraction::getResolutions() const
+{
+ QStringList result;
+
+ SDL_Rect **modes;
+
+ modes = SDL_ListModes(NULL, SDL_FULLSCREEN);
+
+ if((modes == (SDL_Rect **)0) || (modes == (SDL_Rect **)-1))
+ {
+ result << "640x480";
+ } else
+ {
+ for(int i = 0; modes[i]; ++i)
+ if ((modes[i]->w >= 640) && (modes[i]->h >= 480))
+ result << QString("%1x%2").arg(modes[i]->w).arg(modes[i]->h);
+ }
+
+ return result;
+}
+
+
+void SDLInteraction::addGameControllerKeys() const
+{
+ QStringList result;
+
+ int i = 0;
+ while(i < 1024 && sdlkeys[i][1][0] != '\0')
+ i++;
+
+ // Iterate through all game controllers
+ for(int jid = 0; jid < SDL_NumJoysticks(); jid++)
+ {
+ SDL_Joystick* joy = SDL_JoystickOpen(jid);
+
+ // Retrieve the game controller's name and strip "Controller (...)" that's added by some drivers (English only)
+ QString joyname = QString(SDL_JoystickName(jid)).replace(QRegExp("^Controller \\((.*)\\)$"), "\\1");
+
+ // Connected Xbox 360 controller? Use specific button names then
+ // Might be interesting to add 'named' buttons for the most often used gamepads
+ bool isxb = joyname.contains("Xbox 360");
+
+ // This part of the string won't change for multiple keys/hats, so keep it
+ QString prefix = QString("%1 (%2): ").arg(joyname).arg(jid + 1);
+
+ // Register entries for missing axes not assigned to sticks of this joystick/gamepad
+ for(int aid = 0; aid < SDL_JoystickNumAxes(joy) && i < 1021; aid++)
+ {
+ // Again store the part of the string not changing for multiple uses
+ QString axis = prefix + HWApplication::translate("binds (keys)", "Axis") + QString(" %1 ").arg(aid + 1);
+
+ // Entry for "Axis Up"
+ sprintf(sdlkeys[i][0], "j%da%du", jid, aid);
+ sprintf(sdlkeys[i++][1], "%s", ((isxb && aid < 5) ? (prefix + HWApplication::translate("binds (keys)", xbox360axes[aid * 2])) : axis + HWApplication::translate("binds (keys)", "(Up)")).toUtf8().constData());
+
+ // Entry for "Axis Down"
+ sprintf(sdlkeys[i][0], "j%da%dd", jid, aid);
+ sprintf(sdlkeys[i++][1], "%s", ((isxb && aid < 5) ? (prefix + HWApplication::translate("binds (keys)", xbox360axes[aid * 2 + 1])) : axis + HWApplication::translate("binds (keys)", "(Down)")).toUtf8().constData());
+ }
+
+ // Register entries for all coolie hats of this joystick/gamepad
+ for(int hid = 0; hid < SDL_JoystickNumHats(joy) && i < 1019; hid++)
+ {
+ // Again store the part of the string not changing for multiple uses
+ QString hat = prefix + (isxb ? (HWApplication::translate("binds (keys)", xb360dpad) + QString(" ")) : HWApplication::translate("binds (keys)", "Hat") + QString(" %1 ").arg(hid + 1));
+
+ // Entry for "Hat Up"
+ sprintf(sdlkeys[i][0], "j%dh%du", jid, hid);
+ sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Up)")).toUtf8().constData());
+
+ // Entry for "Hat Down"
+ sprintf(sdlkeys[i][0], "j%dh%dd", jid, hid);
+ sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Down)")).toUtf8().constData());
+
+ // Entry for "Hat Left"
+ sprintf(sdlkeys[i][0], "j%dh%dl", jid, hid);
+ sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Left)")).toUtf8().constData());
+
+ // Entry for "Hat Right"
+ sprintf(sdlkeys[i][0], "j%dh%dr", jid, hid);
+ sprintf(sdlkeys[i++][1], "%s", (hat + HWApplication::translate("binds (keys)", "(Right)")).toUtf8().constData());
+ }
+
+ // Register entries for all buttons of this joystick/gamepad
+ for(int bid = 0; bid < SDL_JoystickNumButtons(joy) && i < 1022; bid++)
+ {
+ // Buttons
+ sprintf(sdlkeys[i][0], "j%db%d", jid, bid);
+ sprintf(sdlkeys[i++][1], "%s", (prefix + ((isxb && bid < 10) ? (HWApplication::translate("binds (keys)", xb360buttons[bid]) + QString(" ")) : HWApplication::translate("binds (keys)", "Button") + QString(" %1").arg(bid + 1))).toUtf8().constData());
+ }
+ // Close the game controller as we no longer need it
+ SDL_JoystickClose(joy);
+ }
+
+ // Terminate the list
+ sdlkeys[i][0][0] = '\0';
+ sdlkeys[i][1][0] = '\0';
+}
+
+
+void SDLInteraction::SDLAudioInit()
+{
+ // don't init again
+ if (m_audioInitialized)
+ return;
+
+ SDL_Init(SDL_INIT_AUDIO);
+ Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024);
+ m_audioInitialized = true;
+}
+
+
+void SDLInteraction::playSoundFile(const QString & soundFile)
+{
+ SDLAudioInit();
+ if (!m_soundMap->contains(soundFile))
+ m_soundMap->insert(soundFile, Mix_LoadWAV(soundFile.toLocal8Bit().constData()));
+
+ Mix_PlayChannel(-1, m_soundMap->value(soundFile), 0);
+}
+
+
+void SDLInteraction::setMusicTrack(const QString & musicFile)
+{
+ bool wasPlayingMusic = m_isPlayingMusic;
+
+ stopMusic();
+
+ if (m_music != NULL)
+ {
+ Mix_FreeMusic(m_music);
+ m_music = NULL;
+ }
+
+ m_musicTrack = musicFile;
+
+ if (wasPlayingMusic)
+ startMusic();
+}
+
+
+void SDLInteraction::startMusic()
+{
+ if (m_isPlayingMusic)
+ return;
+
+ m_isPlayingMusic = true;
+
+ if (m_musicTrack.isEmpty())
+ return;
+
+ SDLAudioInit();
+
+ if (m_music == NULL)
+ m_music = Mix_LoadMUS(m_musicTrack.toLocal8Bit().constData());
+
+ Mix_VolumeMusic(MIX_MAX_VOLUME - 28);
+ Mix_FadeInMusic(m_music, -1, 1750);
+}
+
+
+void SDLInteraction::stopMusic()
+{
+ if (m_isPlayingMusic && (m_music != NULL)) {
+ // fade out music to finish 0,5 seconds from now
+ while(!Mix_FadeOutMusic(1000) && Mix_PlayingMusic()) {
+ SDL_Delay(100);
+ }
+ }
+
+ m_isPlayingMusic = false;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/SDLInteraction.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,108 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2007-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/**
+ * @file
+ * @brief SDLInteraction class definition
+ */
+
+#ifndef HEDGEWARS_SDLINTERACTION_H
+#define HEDGEWARS_SDLINTERACTION_H
+
+
+#include <QMap>
+#include <QStringList>
+
+#include "SDL_mixer.h"
+
+/**
+ * @brief Class for interacting with SDL (used for music and keys)
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton pattern</a>
+ */
+class SDLInteraction
+{
+
+private:
+ /**
+ * @brief Class constructor of the <i>singleton</i>.
+ *
+ * Not to be used from outside the class,
+ * use the static {@link HWDataManager::instance()} instead.
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton pattern</a>
+ */
+ SDLInteraction();
+
+ /// Initializes SDL for sound output if needed.
+ void SDLAudioInit();
+
+ bool m_audioInitialized; ///< true if audio is initialized already
+ Mix_Music * m_music; ///< pointer to the music channel of the mixer
+ QString m_musicTrack; ///< path to the music track;
+ bool m_isPlayingMusic; ///< true if music was started but not stopped again.
+
+ QMap<QString,Mix_Chunk*> * m_soundMap; ///< maps sound file paths to channels
+
+public:
+ /**
+ * @brief Returns reference to the <i>singleton</i> instance of this class.
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton pattern</a>
+ *
+ * @return reference to the instance.
+ */
+ static SDLInteraction & instance();
+
+ /// Class Destructor.
+ ~SDLInteraction();
+
+ /**
+ * @brief Returns available (screen) resolutions.
+ *
+ * @return list of resolutions in the format WIDTHxHEIGHT.
+ */
+ QStringList getResolutions() const;
+
+ /// Adds all available joystick controlls to the list of SDL keys.
+ void addGameControllerKeys() const;
+
+ /**
+ * @brief Plays a sound file.
+ *
+ * @param soundFile path of the sound file.
+ */
+ void playSoundFile(const QString & soundFile);
+
+ /**
+ * @brief Sets the music track to be played (or not).
+ *
+ * @param musicFile path of the music file.
+ */
+ void setMusicTrack(const QString & musicFile);
+
+ /// Starts the background music if not already playing.
+ void startMusic();
+
+ /// Fades out and stops the background music (if playing).
+ void stopMusic();
+};
+
+
+#endif //HEDGEWARS_SDLINTERACTION_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/namegen.cpp Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,283 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2009 Martin Minarik <ttsmj@pokec.sk>
+ * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QFile>
+#include <QTextStream>
+#include <QStringList>
+#include <QLineEdit>
+
+#include "hwform.h"
+#include "HWDataManager.h"
+
+#include "namegen.h"
+
+HWNamegen::HWNamegen() {}
+
+QList<QStringList> HWNamegen::TypesTeamnames;
+QList<QStringList> HWNamegen::TypesHatnames;
+bool HWNamegen::typesAvailable = false;
+
+
+void HWNamegen::teamRandomNames(HWTeam & team, const bool changeteamname)
+{
+ // load types if not already loaded
+ if (!typesAvailable)
+ if (!loadTypes())
+ return; // abort if loading failed
+
+ // abort if there are no hat types
+ if (TypesHatnames.size() <= 0)
+ return;
+
+ // the hat will influence which names the hogs get
+ int kind = (rand()%(TypesHatnames.size()));
+
+ // pick team name based on hat
+ if (changeteamname)
+ {
+ if (TypesTeamnames[kind].size() > 0)
+ team.setName(TypesTeamnames[kind][rand()%(TypesTeamnames[kind].size())]);
+
+ team.setGrave(getRandomGrave());
+ team.setFort(getRandomFort());
+ team.setVoicepack("Default");
+ }
+
+ QStringList dicts;
+ QStringList dict;
+
+ if ((TypesHatnames[kind].size()) <= 0)
+ {
+ dicts = dictsForHat(team.hedgehog(0).Hat);
+ dict = dictContents(dicts[rand()%(dicts.size())]);
+ }
+
+ for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
+ {
+ if ((TypesHatnames[kind].size()) > 0)
+ {
+ HWHog hh = team.hedgehog(i);
+ hh.Hat = TypesHatnames[kind][rand()%(TypesHatnames[kind].size())];
+ team.setHedgehog(i,hh);
+ }
+
+ // there is a chance that this hog has the same hat as the previous one
+ // let's reuse the hat-specific dict in this case
+ if ((i == 0) or (team.hedgehog(i).Hat != team.hedgehog(i-1).Hat))
+ {
+ dicts = dictsForHat(team.hedgehog(i).Hat);
+ dict = dictContents(dicts[rand()%(dicts.size())]);
+ }
+
+ // give each hedgehog a random name
+ HWNamegen::teamRandomName(team,i,dict);
+ }
+
+}
+
+void HWNamegen::teamRandomName(HWTeam & team, const int HedgehogNumber)
+{
+ QStringList dicts = dictsForHat(team.hedgehog(HedgehogNumber).Hat);
+
+ QStringList dict = dictContents(dicts[rand()%(dicts.size())]);
+
+ teamRandomName(team, HedgehogNumber, dict);
+}
+
+void HWNamegen::teamRandomName(HWTeam & team, const int HedgehogNumber, const QStringList & dict)
+{
+ QStringList namesDict = dict;
+
+ for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
+ {
+ namesDict.removeOne(team.hedgehog(i).Name);
+ }
+
+ // if our dict doesn't have any new names we'll have to use duplicates
+ if (namesDict.size() < 1)
+ namesDict = dict;
+
+ HWHog hh = team.hedgehog(HedgehogNumber);
+
+ hh.Name = namesDict[rand()%(namesDict.size())];
+
+ team.setHedgehog(HedgehogNumber, hh);
+}
+
+QStringList HWNamegen::dictContents(const QString filename)
+{
+ QStringList list;
+
+ // find .txt to load the names from
+ QFile * file = new QFile(HWDataManager::instance().findFileForRead(QString(
+ "Names/%1.txt").arg(filename)));
+
+ if (file->exists() && file->open(QIODevice::ReadOnly | QIODevice::Text))
+ {
+ QTextStream in(file);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ if(!line.isEmpty())
+ list.append(line);
+ }
+ }
+
+ // this QFile isn't needed any further
+ delete file;
+
+ if (list.size() == 0)
+ list.append(filename);
+
+ return list;
+}
+
+
+QStringList HWNamegen::dictsForHat(const QString hatname)
+{
+ QStringList list;
+
+ // find .cfg to load the dicts from
+ QFile * file = new QFile(HWDataManager::instance().findFileForRead(QString(
+ "Names/%1.cfg").arg(hatname)));
+
+ if (file->exists() && file->open(QIODevice::ReadOnly | QIODevice::Text))
+ {
+ QTextStream in(file);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ if(!line.isEmpty())
+ list.append(line);
+ }
+ }
+
+ // this QFile isn't needed any further
+ delete file;
+
+ if (list.size() == 0)
+ list.append(QString("generic"));
+
+ return list;
+}
+
+// loades types from ini files. returns true on success.
+bool HWNamegen::loadTypes()
+{
+ typesAvailable = false;
+
+ // find .ini to load the names from
+ QFile * file = new QFile(
+ HWDataManager::instance().findFileForRead(QString("Names/types.ini")));
+
+
+ if (file->exists() && file->open(QIODevice::ReadOnly | QIODevice::Text))
+ {
+
+ int counter = 0; //counter starts with 0 (teamnames mode)
+ TypesTeamnames.append(QStringList());
+ TypesHatnames.append(QStringList());
+
+ QTextStream in(file);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ if (line == QString("#####"))
+ {
+ counter++; //toggle mode (teamnames || hats)
+ if ((counter%2) == 0)
+ {
+ TypesTeamnames.append(QStringList());
+ TypesHatnames.append(QStringList());
+ }
+ }
+ else if ((line == QString("*****")) || (line == QString("*END*")))
+ {
+ typesAvailable = true;
+ return true; // bye bye
+ }
+ else
+ {
+ if ((counter%2) == 0)
+ {
+ // even => teamnames mode
+ TypesTeamnames[(counter/2)].append(line);
+ }
+ else
+ {
+ // odd => hats mode
+ TypesHatnames[((counter-1)/2)].append(line);
+ }
+ }
+ }
+
+ typesAvailable = true;
+ }
+
+ // this QFile isn't needed any further
+ delete file;
+
+ return typesAvailable;
+}
+
+
+
+QString HWNamegen::getRandomGrave()
+{
+ QStringList Graves;
+
+ //list all available Graves
+ Graves.append(HWDataManager::instance().entryList(
+ "Graphics/Graves",
+ QDir::Files,
+ QStringList("*.png")
+ ).replaceInStrings(QRegExp("\\.png$"), "")
+ );
+
+ if(Graves.size()==0)
+ {
+ // TODO do some serious error handling
+ return "Error";
+ }
+
+ //pick a random grave
+ return Graves[rand()%(Graves.size())];
+}
+
+QString HWNamegen::getRandomFort()
+{
+ QStringList Forts;
+
+ //list all available Forts
+ Forts.append(HWDataManager::instance().entryList(
+ "Forts",
+ QDir::Files,
+ QStringList("*L.png")
+ ).replaceInStrings(QRegExp("L\\.png$"), "")
+ );
+
+ if(Forts.size()==0)
+ {
+ // TODO do some serious error handling
+ return "Error";
+ }
+
+ //pick a random fort
+ return Forts[rand()%(Forts.size())];
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/namegen.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,53 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2009 Martin Minarik <ttsmj@pokec.sk>
+ * Copyright (c) 2009-2011 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef NAMEGEN_H
+#define NAMEGEN_H
+
+#include <QString>
+
+class HWForm;
+class HWTeam;
+
+class HWNamegen
+{
+public:
+
+ static void teamRandomName(HWTeam & team, const int HedgehogNumber);
+ static void teamRandomNames(HWTeam & team, const bool changeteamname);
+
+private:
+ HWNamegen();
+
+ static QList<QStringList> TypesTeamnames;
+ static QList<QStringList> TypesHatnames;
+ static bool typesAvailable;
+
+ static bool loadTypes();
+ static QStringList dictContents(const QString filename);
+ static QStringList dictsForHat(const QString hatname);
+
+ static QString getRandomGrave();
+ static QString getRandomFort();
+ static void teamRandomName(HWTeam & team, const int HedgehogNumber, const QStringList & dict);
+};
+
+
+
+#endif
--- a/QTfrontend/vertScrollArea.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "vertScrollArea.h"
-
-#include <QResizeEvent>
-
-VertScrArea::VertScrArea(QColor frameColor, QWidget * parent) :
- QScrollArea(parent)
-{
- QPalette newPalette = palette();
- newPalette.setColor(QPalette::Background, frameColor);
- setPalette(newPalette);
-}
-
-void VertScrArea::resizeEvent(QResizeEvent * event)
-{
- widget()->resize(event->size().width(), widget()->sizeHint().height());
-}
--- a/QTfrontend/vertScrollArea.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _VERT_SCROLL_AREA_INCLUDED
-#define _VERT_SCROLL_AREA_INCLUDED
-
-#include <QScrollArea>
-
-class VertScrArea : public QScrollArea
-{
- Q_OBJECT
-
-public:
- VertScrArea(QColor frameColor, QWidget * parent = 0);
-
-protected:
- virtual void resizeEvent(QResizeEvent * event);
-};
-
-#endif // _VERT_SCROLL_AREA_INCLUDED
--- a/QTfrontend/weaponItem.cpp Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "weaponItem.h"
-
-WeaponItem::WeaponItem(const QImage& im, const QImage& img, QWidget * parent) :
- ItemNum(im, img, parent, 0)
-{
-}
-
-WeaponItem::~WeaponItem()
-{
-}
-
-void WeaponItem::incItems()
-{
- ++numItems;
-}
-
-void WeaponItem::decItems()
-{
- --numItems;
-}
-
--- a/QTfrontend/weaponItem.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef _WEAPON_ITEM
-#define _WEAPON_ITEM
-
-#include "itemNum.h"
-
-class WeaponItem : public ItemNum
-{
- Q_OBJECT
-
- public:
- WeaponItem(const QImage& im, const QImage& img, QWidget * parent);
- virtual ~WeaponItem();
-
- signals:
- void hedgehogsNumChanged();
-
- protected:
- virtual void incItems();
- virtual void decItems();
-
- private:
- WeaponItem();
-};
-
-#endif // _WEAPON_ITEM
--- a/gameServer/Actions.hs Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/Actions.hs Fri Oct 28 18:26:17 2011 +0200
@@ -27,6 +27,7 @@
import ServerState
import Consts
import ConfigFile
+import EngineInteraction
data Action =
AnswerClients ![ClientChan] ![B.ByteString]
@@ -339,7 +340,7 @@
h <- client's host
p <- client's clientProto
uid <- client's clUID
- haveSameNick <- liftM (not . null . tail . filter (\c -> nick c == n)) allClientsS
+ haveSameNick <- liftM (not . null . tail . filter (\c -> caseInsensitiveCompare (nick c) n)) allClientsS
if haveSameNick then
if p < 38 then
mapM_ processAction [ByeClient "Nickname is already in use", removeNick]
--- a/gameServer/CoreTypes.hs Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/CoreTypes.hs Fri Oct 28 18:26:17 2011 +0200
@@ -69,10 +69,12 @@
roundMsgs :: Seq B.ByteString,
leftTeams :: [B.ByteString],
teamsAtStart :: [TeamInfo],
- allPlayersHaveRegisteredAccounts :: Bool
- }
+ allPlayersHaveRegisteredAccounts :: Bool,
+ giMapParams :: Map.Map B.ByteString B.ByteString,
+ giParams :: Map.Map B.ByteString [B.ByteString]
+ } deriving (Show, Read)
-newGameInfo :: Bool -> GameInfo
+--newGameInfo :: -> GameInfo
newGameInfo =
GameInfo
Data.Sequence.empty
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gameServer/EngineInteraction.hs Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,38 @@
+module EngineInteraction where
+
+import qualified Data.Set as Set
+import qualified Data.List as List
+import Control.Monad
+import qualified Codec.Binary.Base64 as Base64
+import qualified Data.ByteString.Char8 as B
+import qualified Data.ByteString as BW
+-------------
+import CoreTypes
+
+
+toEngineMsg :: B.ByteString -> B.ByteString
+toEngineMsg msg = B.pack $ Base64.encode (fromIntegral (BW.length msg) : BW.unpack msg)
+
+
+fromEngineMsg :: B.ByteString -> Maybe B.ByteString
+fromEngineMsg msg = liftM BW.pack (Base64.decode (B.unpack msg) >>= removeLength)
+ where
+ removeLength (x:xs) = if length xs == fromIntegral x then Just xs else Nothing
+ removeLength _ = Nothing
+
+
+checkNetCmd :: B.ByteString -> (Bool, Bool)
+checkNetCmd msg = check decoded
+ where
+ decoded = fromEngineMsg msg
+ check Nothing = (False, False)
+ check (Just ms) | B.length ms > 0 = let m = B.head ms in (m `Set.member` legalMessages, m == '+')
+ | otherwise = (False, False)
+ legalMessages = Set.fromList $ "M#+LlRrUuDdZzAaSjJ,sNpPwtghbc12345" ++ slotMessages
+ slotMessages = "\128\129\130\131\132\133\134\135\136\137\138"
+
+gameInfo2Replay :: GameInfo -> B.ByteString
+gameInfo2Replay GameInfo{roundMsgs = rm,
+ teamsAtStart = teams,
+ giMapParams = params1,
+ giParams = params2} = undefined
--- a/gameServer/HWProtoInRoomState.hs Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/HWProtoInRoomState.hs Fri Oct 28 18:26:17 2011 +0200
@@ -14,6 +14,7 @@
import Utils
import HandlerUtils
import RoomsAndClients
+import EngineInteraction
handleCmd_inRoom :: CmdHandler
@@ -178,7 +179,7 @@
return [
ModifyRoom
(\r -> r{
- gameInfo = Just $ newGameInfo allPlayersRegistered
+ gameInfo = Just $ newGameInfo allPlayersRegistered (mapParams rm) (params rm)
}
),
AnswerClients chans ["RUN_GAME"]
--- a/gameServer/HWProtoLobbyState.hs Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/HWProtoLobbyState.hs Fri Oct 28 18:26:17 2011 +0200
@@ -12,6 +12,7 @@
import Utils
import HandlerUtils
import RoomsAndClients
+import EngineInteraction
answerAllTeams :: ClientInfo -> [TeamInfo] -> [Action]
@@ -81,7 +82,7 @@
let chans = map sendChan (cl : jRoomClients)
return $
if isNothing maybeRI || not sameProto then
- [Warning "No such rooms"]
+ [Warning "No such room"]
else if isRestrictedJoins jRoom then
[Warning "Joining restricted"]
else if roomPassword /= password jRoom then
--- a/gameServer/OfficialServer/GameReplayStore.hs Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/OfficialServer/GameReplayStore.hs Fri Oct 28 18:26:17 2011 +0200
@@ -1,18 +1,23 @@
{-# LANGUAGE ScopedTypeVariables #-}
module OfficialServer.GameReplayStore where
-import CoreTypes
import Data.Time
import Control.Exception as E
import qualified Data.Map as Map
import Data.Sequence()
import System.Log.Logger
import Data.Maybe
+import Data.Unique
+import Control.Monad
+---------------
+import CoreTypes
+
saveReplay :: RoomInfo -> IO ()
saveReplay r = do
time <- getCurrentTime
- let fileName = "replays/" ++ show time
+ u <- liftM hashUnique newUnique
+ let fileName = "replays/" ++ show time ++ "-" ++ show u
let gi = fromJust $ gameInfo r
let replayInfo = (teamsAtStart gi, Map.toList $ mapParams r, Map.toList $ params r, roundMsgs gi)
E.catch
--- a/gameServer/OfficialServer/extdbinterface.hs Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/OfficialServer/extdbinterface.hs Fri Oct 28 18:26:17 2011 +0200
@@ -17,7 +17,7 @@
"SELECT users.pass, users_roles.rid FROM users LEFT JOIN users_roles ON users.uid = users_roles.uid WHERE users.name = ?"
dbQueryStats =
- "UPDATE gameserver_stats SET players = ?, rooms = ?, last_update = UNIX_TIMESTAMP()"
+ "INSERT INTO gameserver_stats (players, rooms, last_update) VALUES (?, ?, UNIX_TIMESTAMP())"
dbInteractionLoop dbConn = forever $ do
q <- liftM read getLine
--- a/gameServer/Utils.hs Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/Utils.hs Fri Oct 28 18:26:17 2011 +0200
@@ -5,6 +5,7 @@
import Data.Word
import qualified Data.Map as Map
import qualified Data.Set as Set
+import qualified Data.Char as Char
import Numeric
import Network.Socket
import System.IO
@@ -14,6 +15,7 @@
import qualified Data.ByteString.Lazy as BL
import qualified Text.Show.ByteString as BS
import qualified Data.ByteString.Char8 as B
+import qualified Data.ByteString.UTF8 as UTF8
import qualified Data.ByteString as BW
-------------------------------------------------
import CoreTypes
@@ -26,25 +28,6 @@
$ List.intersperse (':':)
$ concatMap (\n -> (\(a0, a1) -> [showHex a0, showHex a1]) $ divMod n 65536) [a, b, c, d]) []
-toEngineMsg :: B.ByteString -> B.ByteString
-toEngineMsg msg = B.pack $ Base64.encode (fromIntegral (BW.length msg) : BW.unpack msg)
-
-fromEngineMsg :: B.ByteString -> Maybe B.ByteString
-fromEngineMsg msg = liftM BW.pack (Base64.decode (B.unpack msg) >>= removeLength)
- where
- removeLength (x:xs) = if length xs == fromIntegral x then Just xs else Nothing
- removeLength _ = Nothing
-
-checkNetCmd :: B.ByteString -> (Bool, Bool)
-checkNetCmd msg = check decoded
- where
- decoded = fromEngineMsg msg
- check Nothing = (False, False)
- check (Just ms) | B.length ms > 0 = let m = B.head ms in (m `Set.member` legalMessages, m == '+')
- | otherwise = (False, False)
- legalMessages = Set.fromList $ "M#+LlRrUuDdZzAaSjJ,sFNpPwtghbc12345" ++ slotMessages
- slotMessages = "\128\129\130\131\132\133\134\135\136\137\138"
-
maybeRead :: Read a => String -> Maybe a
maybeRead s = case reads s of
[(x, rest)] | all isSpace rest -> Just x
@@ -131,3 +114,8 @@
cutHost :: B.ByteString -> B.ByteString
cutHost = B.intercalate "." . flip (++) ["*","*"] . List.take 2 . B.split '.'
+
+caseInsensitiveCompare :: B.ByteString -> B.ByteString -> Bool
+caseInsensitiveCompare a b = f a == f b
+ where
+ f = map Char.toUpper . UTF8.toString
--- a/gameServer/hedgewars-server.cabal Fri Oct 28 17:41:39 2011 +0200
+++ b/gameServer/hedgewars-server.cabal Fri Oct 28 18:26:17 2011 +0200
@@ -27,6 +27,7 @@
dataenc,
hslogger,
process,
- deepseq
+ deepseq,
+ utf8-string
ghc-options: -O2
--- a/hedgewars/GSHandlers.inc Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/GSHandlers.inc Fri Oct 28 18:26:17 2011 +0200
@@ -174,7 +174,7 @@
Gear^.RenderTimer := false;
if (Gear^.Kind <> gtSniperRifleShot) and (Gear^.Kind <> gtShotgunShot) and
(Gear^.Kind <> gtDEagleShot) and (Gear^.Kind <> gtSineGunShot) then
- if Gear^.Kind = gtHedgehog then
+ if Gear^.Kind = gtHedgehog then
begin
if Gear^.Hedgehog^.Effects[heResurrectable] then
ResurrectHedgehog(Gear)
@@ -219,9 +219,8 @@
procedure CheckCollision(Gear: PGear); inline;
begin
- if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) or TestCollisionYwithGear(Gear, hwSign(Gear^.dY)
- )
- then Gear^.State := Gear^.State or gstCollision
+ if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) or (TestCollisionYwithGear(Gear, hwSign(Gear^.dY)) <> 0) then
+ Gear^.State := Gear^.State or gstCollision
else Gear^.State := Gear^.State and not gstCollision
end;
@@ -303,6 +302,7 @@
//tmp: QWord;
tdX, tdY: hwFloat;
collV, collH: LongInt;
+ land: word;
begin
// clip velocity at 1.9 - over 1 per pixel, but really shouldn't cause many actual problems.
if Gear^.dX.QWordValue > 8160437862 then Gear^.dX.QWordValue:= 8160437862;
@@ -320,28 +320,37 @@
if Gear^.dY.isNegative then
begin
isFalling := true;
- if TestCollisionYwithGear(Gear, -1) then
+ land:= TestCollisionYwithGear(Gear, -1);
+ if land <> 0 then
begin
collV := -1;
- Gear^.dX := Gear^.dX * Gear^.Friction;
+ if land and lfIce <> 0 then Gear^.dX := Gear^.dX * (_1 - (_1 - Gear^.Friction) / _10)
+ else Gear^.dX := Gear^.dX * Gear^.Friction;
+
Gear^.dY := - Gear^.dY * Gear^.Elasticity;
Gear^.State := Gear^.State or gstCollision
end
- else if (Gear^.AdvBounce=1) and TestCollisionYwithGear(Gear, 1) then collV := 1;
+ else if (Gear^.AdvBounce=1) and (TestCollisionYwithGear(Gear, 1) <> 0) then collV := 1;
end
- else if TestCollisionYwithGear(Gear, 1) then
+ else
begin
- collV := 1;
- isFalling := false;
- Gear^.dX := Gear^.dX * Gear^.Friction;
- Gear^.dY := - Gear^.dY * Gear^.Elasticity;
- Gear^.State := Gear^.State or gstCollision
- end
- else
- begin
- isFalling := true;
- if (Gear^.AdvBounce=1) and not Gear^.dY.isNegative and TestCollisionYwithGear(Gear, -1) then
- collV := -1;
+ land:= TestCollisionYwithGear(Gear, 1);
+ if land <> 0 then
+ begin
+ collV := 1;
+ isFalling := false;
+ if land and lfIce <> 0 then Gear^.dX := Gear^.dX * (_1 - (_1 - Gear^.Friction) / _10)
+ else Gear^.dX := Gear^.dX * Gear^.Friction;
+
+ Gear^.dY := - Gear^.dY * Gear^.Elasticity;
+ Gear^.State := Gear^.State or gstCollision
+ end
+ else
+ begin
+ isFalling := true;
+ if (Gear^.AdvBounce=1) and not Gear^.dY.isNegative and (TestCollisionYwithGear(Gear, -1) <> 0) then
+ collV := -1
+ end
end;
@@ -352,7 +361,7 @@
Gear^.dY := Gear^.dY * Gear^.Elasticity;
Gear^.State := Gear^.State or gstCollision
end
- else if (Gear^.AdvBounce=1) and TestCollisionXwithGear(Gear, -hwSign(Gear^.dX)) then
+ else if (Gear^.AdvBounce=1) and TestCollisionXwithGear(Gear, -hwSign(Gear^.dX)) then
collH := -hwSign(Gear^.dX);
//if Gear^.AdvBounce and (collV <>0) and (collH <> 0) and (hwSqr(tdX) + hwSqr(tdY) > _0_08) then
if (Gear^.AdvBounce=1) and (collV <>0) and (collH <> 0) and ((collV=-1) or ((tdX.QWordValue +
@@ -368,7 +377,7 @@
if Gear^.AdvBounce > 1 then dec(Gear^.AdvBounce);
- if isFalling then
+ if isFalling then
begin
Gear^.dY := Gear^.dY + cGravity;
if (GameFlags and gfMoreWind) <> 0 then Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density
@@ -398,7 +407,6 @@
var
i, x, y: LongInt;
dX, dY: hwFloat;
- Fire: PGear;
vg: PVisualGear;
begin
AllInactive := false;
@@ -443,7 +451,7 @@
begin
dX := rndSign(GetRandom * _0_1) + Gear^.dX / 5;
dY := (GetRandom - _3) * _0_08;
- AddGear(x, y, gtCluster, 0, dX, dY, 25);
+ FollowGear := AddGear(x, y, gtCluster, 0, dX, dY, 25)
end
end;
gtWatermelon:
@@ -455,7 +463,8 @@
begin
dX := rndSign(GetRandom * _0_1) + Gear^.dX / 5;
dY := (GetRandom - _1_5) * _0_3;
- AddGear(x, y, gtMelonPiece, 0, dX, dY, 75)^.DirAngle := i * 60;
+ FollowGear:= AddGear(x, y, gtMelonPiece, 0, dX, dY, 75);
+ FollowGear^.DirAngle := i * 60
end
end;
gtHellishBomb:
@@ -468,10 +477,16 @@
begin
dX := AngleCos(i * 16) * _0_5 * (GetRandom + _1);
dY := AngleSin(i * 16) * _0_5 * (GetRandom + _1);
- Fire := AddGear(x, y, gtFlame, 0, dX, dY, 0);
- if i mod 2 = 0 then Fire^.State := Fire^.State or gsttmpFlag;
- Fire := AddGear(x, y, gtFlame, 0, dX, -dY, 0);
- if i mod 2 <> 0 then Fire^.State := Fire^.State or gsttmpFlag;
+ if i mod 2 = 0 then
+ begin
+ AddGear(x, y, gtFlame, gstTmpFlag, dX, dY, 0);
+ AddGear(x, y, gtFlame, 0, dX, -dY, 0)
+ end
+ else
+ begin
+ AddGear(x, y, gtFlame, 0, dX, dY, 0);
+ AddGear(x, y, gtFlame, gstTmpFlag, dX, -dY, 0)
+ end;
end
end;
gtGasBomb:
@@ -481,7 +496,7 @@
begin
x:= GetRandom(60);
y:= GetRandom(40);
- AddGear(hwRound(Gear^.X) - 30 + x, hwRound(Gear^.Y) - 20 + y, gtPoisonCloud, 0, _0, _0, 0);
+ FollowGear:= AddGear(hwRound(Gear^.X) - 30 + x, hwRound(Gear^.Y) - 20 + y, gtPoisonCloud, 0, _0, _0, 0);
end
end;
end;
@@ -512,7 +527,6 @@
s: Longword;
i, gX, gY: LongInt;
dX, dY: hwFloat;
- Fire: PGear;
smoke, glass: PVisualGear;
begin
AllInactive := false;
@@ -546,7 +560,7 @@
glass^.dY:= -1/(random(4)+5);
end;*)
glass:= AddVisualGear(gx+random(7)-3, gy+random(7)-3, vgtStraightShot);
- if glass <> nil then
+ if glass <> nil then
with glass^ do
begin
Frame:= 2;
@@ -560,18 +574,14 @@
end;
end;
for i:= 0 to 24 do
- begin
+ begin
dX := AngleCos(i * 2) * ((_0_15*(i div 5))) * (GetRandom + _1);
dY := AngleSin(i * 8) * _0_5 * (GetRandom + _1);
- Fire := AddGear(gX, gY, gtFlame, 0, dX, dY, 0);
- Fire^.State := Fire^.State or gsttmpFlag;
- Fire := AddGear(gX, gY, gtFlame, 0, dX, -dY, 0);
- Fire^.State := Fire^.State or gsttmpFlag;
- Fire := AddGear(gX, gY, gtFlame, 0, -dX, dY, 0);
- Fire^.State := Fire^.State or gsttmpFlag;
- Fire := AddGear(gX, gY, gtFlame, 0, -dX, -dY, 0);
- Fire^.State := Fire^.State or gsttmpFlag;
- end;
+ AddGear(gX, gY, gtFlame, gstTmpFlag, dX, dY, 0);
+ AddGear(gX, gY, gtFlame, gstTmpFlag, dX,-dY, 0);
+ AddGear(gX, gY, gtFlame, gstTmpFlag,-dX, dY, 0);
+ AddGear(gX, gY, gtFlame, gstTmpFlag,-dX,-dY, 0);
+ end;
DeleteGear(Gear);
exit
end;
@@ -726,7 +736,7 @@
end
end
end;
-if draw then
+if draw then
with Gear^ do
begin
// we've collided with land. draw some stuff and get back into the clouds
@@ -884,7 +894,7 @@
for i:= 0 to 31 do
begin
flower:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtStraightShot);
- if flower <> nil then
+ if flower <> nil then
with flower^ do
begin
Scale:= 0.75;
@@ -1240,7 +1250,7 @@
if (Gear^.Timer mod 47) = 0 then
begin
// ok. this was an attempt to turn off dust if not actually drilling land. I have no idea why it isn't working as expected
- if (( (y + 12) and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) and (Land[y + 12, x] > 255) then
+ if (( (y + 12) and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) and (Land[y + 12, x] > 255) then
for i:= 0 to 1 do
AddVisualGear(x - 5 + Random(10), y + 12, vgtDust);
@@ -1260,7 +1270,7 @@
end;
SetAllHHToActive;
end;
- if TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) <> 0 then
begin
Gear^.dY := _0;
SetLittle(HHGear^.dX);
@@ -1429,7 +1439,7 @@
HHGear := Gear^.Hedgehog^.Gear;
if ((HHGear^.State and gstHHDriven) = 0)
or (CheckGearDrowning(HHGear))
- or TestCollisionYwithGear(HHGear, 1) then
+ or (TestCollisionYwithGear(HHGear, 1) <> 0) then
begin
DeleteGear(Gear);
isCursorVisible := false;
@@ -1441,7 +1451,7 @@
if TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX)) then SetLittle(HHGear^.dX);
- if HHGear^.dY.isNegative and TestCollisionYwithGear(HHGear, -1) then HHGear^.dY := _0;
+ if HHGear^.dY.isNegative and (TestCollisionYwithGear(HHGear, -1) <> 0) then HHGear^.dY := _0;
HHGear^.X := HHGear^.X + HHGear^.dX;
HHGear^.Y := HHGear^.Y + HHGear^.dY;
HHGear^.dY := HHGear^.dY + cGravity;
@@ -1514,7 +1524,7 @@
ropeDx := HHGear^.X - Gear^.X;
ropeDy := HHGear^.Y - Gear^.Y;
- if not TestCollisionYwithGear(HHGear, 1) then
+ if TestCollisionYwithGear(HHGear, 1) = 0 then
begin
// depending on the rope vector we know which X-side to check for collision
@@ -1551,12 +1561,12 @@
if ((Gear^.Message and gmDown) <> 0) and (Gear^.Elasticity < Gear^.Friction) then
if not (TestCollisionXwithGear(HHGear, hwSign(ropeDx))
- or TestCollisionYwithGear(HHGear, hwSign(ropeDy))) then
+ or (TestCollisionYwithGear(HHGear, hwSign(ropeDy)) <> 0)) then
Gear^.Elasticity := Gear^.Elasticity + _0_3;
if ((Gear^.Message and gmUp) <> 0) and (Gear^.Elasticity > _30) then
if not (TestCollisionXwithGear(HHGear, -hwSign(ropeDx))
- or TestCollisionYwithGear(HHGear, -hwSign(ropeDy))) then
+ or (TestCollisionYwithGear(HHGear, -hwSign(ropeDy)) <> 0)) then
Gear^.Elasticity := Gear^.Elasticity - _0_3;
HHGear^.X := Gear^.X + mdX * Gear^.Elasticity;
@@ -1648,7 +1658,7 @@
HHGear^.dX := -_0_6 * HHGear^.dX;
haveCollision := true
end;
- if TestCollisionYwithGear(HHGear, hwSign(HHGear^.dY)) then
+ if TestCollisionYwithGear(HHGear, hwSign(HHGear^.dY)) <> 0 then
begin
HHGear^.dY := -_0_6 * HHGear^.dY;
haveCollision := true
@@ -1750,12 +1760,12 @@
if (HHGear^.State and gstMoving) <> 0 then
begin
if TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX)) then SetLittle(HHGear^.dX);
- if HHGear^.dY.isNegative and TestCollisionYwithGear(HHGear, -1) then HHGear^.dY := _0;
+ if HHGear^.dY.isNegative and (TestCollisionYwithGear(HHGear, -1) <> 0) then HHGear^.dY := _0;
HHGear^.X := HHGear^.X + HHGear^.dX;
Gear^.X := Gear^.X + HHGear^.dX;
- if TestCollisionYwithGear(HHGear, 1) then
+ if TestCollisionYwithGear(HHGear, 1) <> 0 then
begin
CheckHHDamage(HHGear);
HHGear^.dY := _0
@@ -1863,11 +1873,11 @@
doStepFallingGear(Gear);
if (Gear^.Health = 0) then
begin
- if not Gear^.dY.isNegative and (Gear^.dY > _0_2) and TestCollisionYwithGear(Gear, 1) then
+ if not Gear^.dY.isNegative and (Gear^.dY > _0_2) and (TestCollisionYwithGear(Gear, 1) <> 0) then
inc(Gear^.Damage, hwRound(Gear^.dY * _70))
else if not Gear^.dX.isNegative and (Gear^.dX > _0_2) and TestCollisionXwithGear(Gear, 1) then
inc(Gear^.Damage, hwRound(Gear^.dX * _70))
- else if Gear^.dY.isNegative and (Gear^.dY < -_0_2) and TestCollisionYwithGear(Gear, -1) then
+ else if Gear^.dY.isNegative and (Gear^.dY < -_0_2) and (TestCollisionYwithGear(Gear, -1) <> 0) then
inc(Gear^.Damage, hwRound(Gear^.dY * -_70))
else if Gear^.dX.isNegative and (Gear^.dX < -_0_2) and TestCollisionXwithGear(Gear, -1) then
inc(Gear^.Damage, hwRound(Gear^.dX * -_70));
@@ -1920,14 +1930,14 @@
dec(Gear^.Timer);
end
else // gsttmpFlag = 0
- if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack) <> 0) then Gear^.State := Gear^.State or gsttmpFlag;
+ if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack <> 0) and (GameTicks > Gear^.FlightTime)) or (Gear^.Hedgehog^.Gear = nil) then Gear^.State := Gear^.State or gsttmpFlag;
end;
////////////////////////////////////////////////////////////////////////////////
procedure doStepSMine(Gear: PGear);
begin
// TODO: do real calculation?
- if TestCollisionXwithGear(Gear, 2) or TestCollisionYwithGear(Gear, -2) or TestCollisionXwithGear(Gear, -2) or TestCollisionYwithGear(Gear, 2) then
+ if TestCollisionXwithGear(Gear, 2) or (TestCollisionYwithGear(Gear, -2) <> 0) or TestCollisionXwithGear(Gear, -2) or (TestCollisionYwithGear(Gear, 2) <> 0) then
begin
if (hwAbs(Gear^.dX) > _0) or (hwAbs(Gear^.dY) > _0) then
begin
@@ -1967,7 +1977,7 @@
end
end
else // gsttmpFlag = 0
- if TurnTimeLeft = 0 then Gear^.State := Gear^.State or gsttmpFlag;
+ if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack <> 0) and (GameTicks > Gear^.FlightTime)) or (Gear^.Hedgehog^.Gear = nil) then Gear^.State := Gear^.State or gsttmpFlag;
end;
////////////////////////////////////////////////////////////////////////////////
@@ -1999,13 +2009,13 @@
i: LongInt;
particle: PVisualGear;
begin
- if (Gear^.dY.QWordValue = 0) and (Gear^.dY.QWordValue = 0) and not TestCollisionYwithGear(Gear, 1) then SetLittle(Gear^.dY);
+ if (Gear^.dY.QWordValue = 0) and (Gear^.dY.QWordValue = 0) and (TestCollisionYwithGear(Gear, 1) = 0) then SetLittle(Gear^.dY);
Gear^.State := Gear^.State or gstAnimation;
if ((Gear^.dX.QWordValue <> 0) or (Gear^.dY.QWordValue <> 0)) then
begin
DeleteCI(Gear);
AllInactive := false;
- if not Gear^.dY.isNegative and (Gear^.dY > _0_2) and TestCollisionYwithGear(Gear, 1) then
+ if not Gear^.dY.isNegative and (Gear^.dY > _0_2) and (TestCollisionYwithGear(Gear, 1) <> 0) then
begin
Gear^.State := Gear^.State or gsttmpFlag;
inc(Gear^.Damage, hwRound(Gear^.dY * _70));
@@ -2019,7 +2029,7 @@
else if not Gear^.dX.isNegative and (Gear^.dX > _0_2) and TestCollisionXwithGear(Gear, 1)
then
inc(Gear^.Damage, hwRound(Gear^.dX * _70))
- else if Gear^.dY.isNegative and (Gear^.dY < -_0_2) and TestCollisionYwithGear(Gear, -1)
+ else if Gear^.dY.isNegative and (Gear^.dY < -_0_2) and (TestCollisionYwithGear(Gear, -1) <> 0)
then
inc(Gear^.Damage, hwRound(Gear^.dY * -_70))
else if Gear^.dX.isNegative and (Gear^.dX < -_0_2) and TestCollisionXwithGear(Gear, -1)
@@ -2052,7 +2062,7 @@
if Gear^.dX.QWordValue = 0 then AddGearCI(Gear)
end; *)
- if not Gear^.dY.isNegative and (Gear^.dY < _0_001) and TestCollisionYwithGear(Gear, 1) then Gear
+ if not Gear^.dY.isNegative and (Gear^.dY < _0_001) and (TestCollisionYwithGear(Gear, 1) <> 0) then Gear
^.dY := _0;
if hwAbs(Gear^.dX) < _0_001 then Gear^.dX := _0;
@@ -2130,20 +2140,20 @@
dX := AngleCos(i * 64) * _0_5 * (getrandom + _1);
dY := AngleSin(i * 64) * _0_5 * (getrandom + _1);
AddGear(x, y, gtFlame, 0, dX, dY, 0);
- AddGear(x, y, gtFlame, 0, -dX, -dY, 0)^.State := gsttmpFlag;
+ AddGear(x, y, gtFlame, gstTmpFlag, -dX, -dY, 0);
end
end;
exit
end;
- if (Gear^.dY.QWordValue <> 0) or (not TestCollisionYwithGear(Gear, 1)) then
+ if (Gear^.dY.QWordValue <> 0) or (TestCollisionYwithGear(Gear, 1) = 0) then
begin
AllInactive := false;
Gear^.dY := Gear^.dY + cGravity;
Gear^.Y := Gear^.Y + Gear^.dY;
if (not Gear^.dY.isNegative) and (Gear^.dY > _0_001) then SetAllHHToActive;
- if (Gear^.dY.isNegative) and TestCollisionYwithGear(Gear, -1) then Gear^.dY := _0;
- if (not Gear^.dY.isNegative) and TestCollisionYwithGear(Gear, 1) then
+ if (Gear^.dY.isNegative) and (TestCollisionYwithGear(Gear, -1) <> 0) then Gear^.dY := _0;
+ if (not Gear^.dY.isNegative) and (TestCollisionYwithGear(Gear, 1) <> 0) then
begin
if (Gear^.dY > _0_2) and (k = gtExplosives) then
inc(Gear^.Damage, hwRound(Gear^.dY * _70));
@@ -2249,7 +2259,7 @@
sticky:= (Gear^.State and gsttmpFlag) <> 0;
if not sticky then AllInactive := false;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
AllInactive := false;
@@ -2423,7 +2433,7 @@
AllInactive := false;
HHGear := Gear^.Hedgehog^.Gear;
DeleteCI(HHGear);
- HHGear^.X := int2hwFloat(hwRound(HHGear^.X)) - _0_5;
+ //HHGear^.X := int2hwFloat(hwRound(HHGear^.X)) - _0_5; WTF?
HHGear^.dX := SignAs(cLittle, Gear^.dX);
HHGear^.dY := - _0_3;
@@ -2447,7 +2457,7 @@
inc(Gear^.Timer);
- if TestCollisionYwithGear(HHGear, 1)
+ if (TestCollisionYwithGear(HHGear, 1) <> 0)
or ((HHGear^.State and gstHHDriven) = 0)
or CheckGearDrowning(HHGear)
or ((Gear^.Message and gmAttack) <> 0) then
@@ -2633,7 +2643,7 @@
HHGear^.X := HHGear^.X + HHGear^.dX;
// hedgehog falling to collect cases
HHGear^.dY := HHGear^.dY + cGravity;
- if TestCollisionYwithGear(HHGear, 1)
+ if (TestCollisionYwithGear(HHGear, 1) <> 0)
or CheckGearDrowning(HHGear) then
begin
DeleteGear(Gear);
@@ -2816,7 +2826,7 @@
if (GameTicks mod 2 = 0) and hasWishes then
begin
sparkles:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtDust, 1);
- if sparkles <> nil then
+ if sparkles <> nil then
begin
sparkles^.Tint:= ((random(210)+45) shl 24) or ((random(210)+45) shl 16) or ((random(210)+45) shl 8) or $FF;
sparkles^.Angle:= random * 360;
@@ -2857,7 +2867,7 @@
HHGear^.dX,
HHGear^.dY,
20 + cHHRadius * 2,
- cHHRadius * 2 + 6);
+ cHHRadius * 2 + 7);
upd := 0
end;
@@ -2865,21 +2875,22 @@
if Gear^.Health < Gear^.Damage then
begin
doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound);
- for i:= 0 to 31 do
- begin
- sparkles:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtStraightShot);
- if sparkles <> nil then
- with sparkles^ do
- begin
- Tint:= ((random(210)+45) shl 24) or ((random(210)+45) shl 16) or ((random(210)+45) shl 8) or $FF;
- Angle:= random * 360;
- dx:= 0.001 * (random(200));
- dy:= 0.001 * (random(200));
- if random(2) = 0 then dx := -dx;
- if random(2) = 0 then dy := -dy;
- FrameTicks:= random(400) + 250
- end;
- end;
+ if hasWishes then
+ for i:= 0 to 31 do
+ begin
+ sparkles:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtStraightShot);
+ if sparkles <> nil then
+ with sparkles^ do
+ begin
+ Tint:= ((random(210)+45) shl 24) or ((random(210)+45) shl 16) or ((random(210)+45) shl 8) or $FF;
+ Angle:= random * 360;
+ dx:= 0.001 * (random(200));
+ dy:= 0.001 * (random(200));
+ if random(2) = 0 then dx := -dx;
+ if random(2) = 0 then dy := -dy;
+ FrameTicks:= random(400) + 250
+ end
+ end;
AfterAttack;
DeleteGear(Gear);
DeleteGear(HHGear);
@@ -3006,7 +3017,7 @@
yyn := dirs[(LongInt(Gear^.Angle) + 4 + dA) mod 4].y;
if (xx = 0) then
- if TestCollisionYwithGear(Gear, yy) then
+ if TestCollisionYwithGear(Gear, yy) <> 0 then
PrevAngle
else
begin
@@ -3083,13 +3094,12 @@
AllInactive := false;
Gear^.dY := Gear^.dY + cGravity;
- if TestCollisionYwithGear(Gear, 1) then
- Gear^.doStep := @doStepCakeUp
+ if TestCollisionYwithGear(Gear, 1) <> 0 then Gear^.doStep := @doStepCakeUp
else
- begin
+ begin
Gear^.Y := Gear^.Y + Gear^.dY;
if CheckGearDrowning(Gear) then AfterAttack
- end
+ end
end;
procedure doStepCake(Gear: PGear);
@@ -3169,10 +3179,10 @@
PlaySound(sndYoohoo, Gear^.Hedgehog^.Team^.voicepack)
end;
- if (Gear^.Pos = 14) and (RealTicks and $3 = 0) then
+ if (Gear^.Pos = 14) and (RealTicks and $3 = 0) then
begin
heart:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtStraightShot);
- if heart <> nil then
+ if heart <> nil then
with heart^ do
begin
dx:= 0.001 * (random(200));
@@ -3254,11 +3264,10 @@
t := CheckGearsCollision(Gear);
//fixes drill not exploding when touching HH bug
- if (Gear^.Timer = 0)
- or (t^.Count <> 0)
- or (not TestCollisionYWithGear(Gear, hwSign(Gear^.dY))
- and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX))
- and ((Gear^.State and gsttmpFlag) = 0))
+ if (Gear^.Timer = 0) or (t^.Count <> 0) or
+ ( ((Gear^.State and gsttmpFlag) = 0) and
+ (TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) = 0)
+ and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX)))
// CheckLandValue returns true if the type isn't matched
or not CheckLandValue(hwRound(Gear^.X), hwRound(Gear^.Y), lfIndestructible) then
begin
@@ -3271,7 +3280,7 @@
DeleteGear(Gear);
exit
end
- else if not TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX)) then
+ else if (TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) = 0) and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX)) then
begin
StopSound(Gear^.SoundChannel);
Gear^.Tag := 1;
@@ -3570,7 +3579,7 @@
for i:= random(5)+5 downto 0 do
begin
bubble := AddVisualGear(hwRound(HHGear^.X)+random(8), hwRound(HHGear^.Y) - 8 + random(16), vgtBubble);
- if bubble <> nil then
+ if bubble <> nil then
begin
bubble^.dX:= (random(10)/10 + 0.02) * -1;
if (move.isNegative) then
@@ -3625,8 +3634,7 @@
or (cWaterLine + 512 < hwRound(HHGear^.Y))
or (TurnTimeLeft = 0)
// allow brief ground touches - to be fair on this, might need another counter
- or (((GameTicks and $1FF) = 0) and (not HHGear^.dY.isNegative) and TestCollisionYwithGear(
- HHGear, 1))
+ or (((GameTicks and $1FF) = 0) and (not HHGear^.dY.isNegative) and (TestCollisionYwithGear(HHGear, 1) <> 0))
or ((Gear^.Message and gmAttack) <> 0) then
begin
with HHGear^ do
@@ -3687,7 +3695,12 @@
fuel, i: LongInt;
move: hwFloat;
begin
- HHGear := CurrentHedgehog^.Gear;
+ HHGear := Gear^.Hedgehog^.Gear;
+ if HHGear = nil then
+ begin
+ DeleteGear(Gear);
+ exit
+ end;
move := _0_2;
fuel := 50;
@@ -3733,7 +3746,7 @@
end;
end;
- if HHGear^.Message and (gmUp or gmPrecise or gmLeft or gmRight) <> 0 then
+ if HHGear^.Message and (gmUp or gmPrecise or gmLeft or gmRight) <> 0 then
Gear^.State := Gear^.State and not gsttmpFlag;
HHGear^.Message := HHGear^.Message and not (gmUp or gmPrecise or gmLeft or gmRight);
HHGear^.State := HHGear^.State or gstMoving;
@@ -3750,8 +3763,7 @@
or CheckGearDrowning(HHGear)
or (TurnTimeLeft = 0)
// allow brief ground touches - to be fair on this, might need another counter
- or (((GameTicks and $1FF) = 0) and (not HHGear^.dY.isNegative) and TestCollisionYwithGear(
- HHGear, 1))
+ or (((GameTicks and $1FF) = 0) and (not HHGear^.dY.isNegative) and (TestCollisionYwithGear(HHGear, 1) <> 0))
or ((Gear^.Message and gmAttack) <> 0) then
begin
with HHGear^ do
@@ -3780,13 +3792,13 @@
begin
if Gear^.Timer > 0 then
dec(Gear^.Timer, 1)
- else if CurrentHedgehog = nil then
+ else if Gear^.Hedgehog^.Gear = nil then
begin
DeleteGear(Gear);
AfterAttack;
exit
end;
- HHGear := CurrentHedgehog^.Gear;
+ HHGear := Gear^.Hedgehog^.Gear;
HHGear^.Message := HHGear^.Message and not (gmUp or gmPrecise or gmLeft or gmRight);
if abs(hwRound(HHGear^.Y - Gear^.Y)) > 32 then
begin
@@ -4200,7 +4212,8 @@
iterator:= GearsList;
while iterator <> nil do
begin
- if iterator^.Kind <> gtPortal then
+ if (iterator^.Kind <> gtPortal) and
+ ((iterator^.Hedgehog <> CurrentHedgehog) or ((iterator^.Message and gmAllStoppable) = 0)) then
begin
iterator^.Active:= true;
if iterator^.dY.QWordValue = _0.QWordValue then iterator^.dY.isNegative:= false;
@@ -4584,7 +4597,6 @@
HHGear: PGear;
rx, ry, speed: hwFloat;
i, gX, gY: LongInt;
- Fire: PGear;
begin
AllInactive := false;
HHGear := Gear^.Hedgehog^.Gear;
@@ -4616,15 +4628,14 @@
ry := rndSign(getRandom * _0_1);
speed := _0_5 * (_10 / Gear^.Tag);
- Fire := AddGear(gx, gy, gtFlame, 0,
- SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
- AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
- Fire^.State := Fire^.State or gsttmpFlag;
+ AddGear(gx, gy, gtFlame, gstTmpFlag,
+ SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
+ AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
- if (Gear^.Health mod 30) = 0 then
- Fire := AddGear(gx, gy, gtFlame, 0,
- SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
- AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
+ if (Gear^.Health mod 30) = 0 then
+ AddGear(gx, gy, gtFlame, 0,
+ SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
+ AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
end;
Gear^.Timer:= Gear^.Tag
end;
@@ -4663,7 +4674,6 @@
HHGear: PGear;
rx, ry, speed: hwFloat;
i, gX, gY: LongInt;
- Flake: PGear;
begin
AllInactive := false;
HHGear := Gear^.Hedgehog^.Gear;
@@ -4694,10 +4704,9 @@
ry := rndSign(getRandom * _0_1);
speed := (_3 / Gear^.Tag);
- Flake := AddGear(gx, gy, gtFlake, 0, _0, _0, 0);
- Flake^.dX:= SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx;
- Flake^.dY:= AngleCos(HHGear^.Angle) * ( - speed) + ry;
- Flake^.State := Flake^.State or gsttmpFlag;
+ AddGear(gx, gy, gtFlake, gstTmpFlag,
+ SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
+ AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
Gear^.Timer:= Gear^.Tag
end;
@@ -4824,7 +4833,7 @@
Gear^.Y := Gear^.Y + _1_9;
end;
end;
- if TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) <> 0 then
begin
Gear^.dY := _0;
SetLittle(HitGear^.dX);
@@ -4890,21 +4899,21 @@
(*DrawCircle(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Radius, 1.5, 0, 0, $FF,
$FF);*)
- if ((Gear^.Message and gmUp) <> 0) then
+ if ((Gear^.Message and gmUp) <> 0) then
begin
if (GameTicks and $F) <> 0 then exit;
end
else if (GameTicks and $1FF) <> 0 then exit;
- if Gear^.Power < 45 then
+ if Gear^.Power < 45 then
begin
inc(Gear^.Power);
- if not TestCollisionYwithGear(hh^.Gear, -1) then hh^.Gear^.Y := hh^.Gear^.Y - _1;
+ if TestCollisionYwithGear(hh^.Gear, -1) = 0 then hh^.Gear^.Y := hh^.Gear^.Y - _1;
end;
graves := GearsNear(Gear^.X, Gear^.Y, gtGrave, Gear^.Radius);
- if Length(graves) = 0 then
+ if Length(graves) = 0 then
begin
StopSound(Gear^.SoundChannel);
Gear^.Timer := 250;
@@ -4912,7 +4921,7 @@
exit;
end;
- if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) and (TurnTimeLeft > 0) then
+ if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) and (TurnTimeLeft > 0) then
begin
if Length(graves) <= Gear^.Tag then Gear^.Tag:= 0;
dec(hh^.Gear^.Health);
@@ -5036,7 +5045,7 @@
if CurAmmoGear = Gear then
begin
- if (CurrentHedgehog = nil) or (CurrentHedgehog^.Gear = nil) then
+ if (CurrentHedgehog = nil) or (CurrentHedgehog^.Gear = nil) then
begin
DeleteGear(Gear);
exit
@@ -5127,7 +5136,7 @@
end
end;
-if (Gear^.Pos = 1) and (GameTicks and $1F = 0) and (Gear^.Power < 255) then
+if (Gear^.Pos = 1) and (GameTicks and $1F = 0) and (Gear^.Power < 255) then
begin
inc(Gear^.Power);
if (Gear^.Power = 172) and (HH^.Gear <> nil) and
@@ -5172,7 +5181,7 @@
Gear^.Power:= 0;
Gear^.Timer:= 0;
if HH^.GearHidden <> nil then FindPlace(HH^.GearHidden, false, 0, LAND_WIDTH,true);
- if HH^.GearHidden <> nil then
+ if HH^.GearHidden <> nil then
begin
Gear^.X:= HH^.GearHidden^.X;
Gear^.Y:= HH^.GearHidden^.Y;
@@ -5197,10 +5206,10 @@
3. Hog is a king
*)
HH:= Gear^.Hedgehog;
- if HH^.Gear <> nil then
+ if HH^.Gear <> nil then
if (HH^.Gear = nil) or (HH^.King) or (SuddenDeathDmg) then
begin
- if HH^.Gear <> nil then
+ if HH^.Gear <> nil then
begin
HH^.Gear^.Message := HH^.Gear^.Message and not gmAttack;
HH^.Gear^.State:= HH^.Gear^.State and not gstAttacking;
@@ -5218,7 +5227,7 @@
HH^.Team^.Clan^.Teams[j]^.Hedgehogs[i].Gear^.Damage) then inc(cnt);
if cnt < 2 then
begin
- if HH^.Gear <> nil then
+ if HH^.Gear <> nil then
begin
HH^.Gear^.Message := HH^.Gear^.Message and not gmAttack;
HH^.Gear^.State:= HH^.Gear^.State and not gstAttacking;
--- a/hedgewars/HHHandlers.inc Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/HHHandlers.inc Fri Oct 28 18:26:17 2011 +0200
@@ -373,6 +373,7 @@
amResurrector, amStructure,
amTardis: CurAmmoGear:= newGear;
end;
+ if (CurAmmoType = amMine) or (CurAmmoType = amSMine) and (GameFlags and gfInfAttack <> 0) then newGear^.FlightTime:= GameTicks + 1000;
if Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NeedTarget <> 0 then
begin
newGear^.Target.X:= TargetPoint.X;
@@ -638,11 +639,11 @@
begin
Gear^.Message:= Gear^.Message and not gmLJump;
DeleteCI(Gear);
- if not TestCollisionYwithGear(Gear, -1) then
+ if TestCollisionYwithGear(Gear, -1) = 0 then
if not TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - _2 else
if not TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithGear(Gear, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then
begin
Gear^.dY:= -_0_15;
if not cArtillery then Gear^.dX:= SignAs(_0_15, Gear^.dX);
@@ -685,17 +686,17 @@
if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
begin
if not (TestCollisionXwithXYShift(Gear, _0, -6, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -5, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -4, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -3, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
end;
if (not cArtillery) and ((Gear^.Message and gmPrecise) = 0) and (not TestCollisionXwithGear(Gear, hwSign(Gear^.dX))) then
@@ -703,25 +704,25 @@
SetAllHHToActive;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y - _6;
Gear^.dY:= _0;
@@ -758,7 +759,9 @@
////////////////////////////////////////////////////////////////////////////////
procedure doStepHedgehogMoving(Gear: PGear);
var isFalling, isUnderwater: boolean;
+ land: Word;
begin
+land:= 0;
isUnderwater:= cWaterLine < hwRound(Gear^.Y) + Gear^.Radius;
if Gear^.dX.QWordValue > 8160437862 then Gear^.dX.QWordValue:= 8160437862;
if Gear^.dY.QWordValue > 8160437862 then Gear^.dY.QWordValue:= 8160437862;
@@ -796,7 +799,8 @@
end
else
begin
- if ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_55.QWordValue)
+ land:= TestCollisionYwithGear(Gear, 1);
+ if ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_55.QWordValue) and ((land and lfIce) = 0)
and ((Gear^.State and gstHHJumping) <> 0) then SetLittle(Gear^.dX);
if not Gear^.dY.isNegative then
@@ -810,7 +814,11 @@
Gear^.dY:= _0;
end else Gear^.dY:= Gear^.dY + cGravity;
- if ((Gear^.State and gstMoving) <> 0) then Gear^.dX:= Gear^.dX * Gear^.Friction
+ if ((Gear^.State and gstMoving) <> 0) then
+ begin
+ if land and lfIce <> 0 then Gear^.dX:= Gear^.dX * (_1 - (_1 - Gear^.Friction) / _2)
+ else Gear^.dX:= Gear^.dX * Gear^.Friction;
+ end
end;
if (Gear^.State <> 0) then DeleteCI(Gear);
@@ -894,11 +902,13 @@
Hedgehog: PHedgehog;
begin
Hedgehog:= HHGear^.Hedgehog;
-if not isInMultiShoot then
- AllInactive:= false
-else
+if isInMultiShoot then
HHGear^.Message:= 0;
+if ((Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_Utility) <> 0) and isInMultiShoot then
+ AllInactive:= true
+else if not isInMultiShoot then AllInactive:= false;
+
if (TurnTimeLeft = 0) or (HHGear^.Damage > 0) then
begin
if TagTurnTimeLeft = 0 then TagTurnTimeLeft:= TurnTimeLeft;
@@ -1074,7 +1084,7 @@
begin
if Gear^.Timer = 0 then
begin
- Gear^.State:= Gear^.State and not (gstWait or gstLoser or gstWinner);
+ Gear^.State:= Gear^.State and not (gstWait or gstLoser or gstWinner or gstAttacked or gstNotKickable);
Gear^.Active:= false;
AddGearCI(Gear);
exit
@@ -1086,6 +1096,9 @@
////////////////////////////////////////////////////////////////////////////////
procedure doStepHedgehog(Gear: PGear);
+(*
+var x,y,tx,ty: LongInt;
+ tdX, tdY, slope: hwFloat; *)
begin
if (Gear^.Message and gmDestroy) <> 0 then
begin
@@ -1103,4 +1116,32 @@
else
doStepHedgehogDriven(Gear)
end;
+
+if ((GameTicks mod 50) = 0) and (Gear^.State and (gstMoving or gstHHJumping or gstHHHJump) = 0) and ((Gear^.Message and gmAllStoppable) = 0) and
+ (TestCollisionYwithGear(Gear, 1) and lfIce <> 0) then
+ begin
+ if CheckLandValue(hwRound(Gear^.X), hwRound(Gear^.Y)+cHHRadius, lfIce) then
+ begin
+ Gear^.dX.QWordValue:= Gear^.dX.QWordValue + cGravity.QWordValue * 75;
+ Gear^.State:= Gear^.State or gstMoving;
+ end
+(*
+ // check land slope, and impart a dX based on it
+ tdX:= Gear^.dX;
+ tdY:= Gear^.dY;
+ Gear^.dX:= _0;
+ Gear^.dY:= _1;
+ x := hwRound(Gear^.X);
+ y := hwRound(Gear^.Y);
+ tx := 0;
+ ty := 0;
+ if not CalcSlopeTangent(Gear, x, y+cHHRadius, tx, ty, 255) then
+ begin
+ slope:= _1/DistanceI(tx,ty);
+ AddFileLog(FloatToStr(tdX)+ ' == '+FloatToStr(slope));
+ tdX:= tdX + (cGravity * slope / _10) // this will need tuning
+ end;
+ Gear^.dX:= tdX;
+ Gear^.dY:= tdY *)
+ end;
end;
--- a/hedgewars/SDLh.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/SDLh.pas Fri Oct 28 18:26:17 2011 +0200
@@ -233,6 +233,8 @@
SDL_HWPALETTE = $20000000;
SDL_DOUBLEBUF = $40000000;
SDL_FULLSCREEN = $80000000;
+
+ SDL_ALLEVENTS = $FFFFFFFF;
{$ENDIF}
{$IFDEF ENDIAN_LITTLE}
@@ -284,9 +286,6 @@
IMG_INIT_TIF = $00000004;
{* SDL_EventMask type definition *}
-{$IFNDEF SDL13}
- SDL_ALLEVENTS = $FFFFFFFF;
-{$ENDIF}
/////////////////////////////////////////////////////////////////
/////////////////////// TYPE DEFINITIONS ///////////////////////
@@ -898,8 +897,8 @@
procedure TTF_SetFontStyle(font: PTTF_Font; style: LongInt); cdecl; external SDL_TTFLibName;
(* SDL_mixer *)
-function Mix_Init(flags: LongInt): LongInt; cdecl; external SDL_MixerLibName;
-procedure Mix_Quit; cdecl; external SDL_MixerLibName;
+function Mix_Init(flags: LongInt): LongInt; {$IFDEF SDL_MIXER_NEWER}cdecl; external SDL_MixerLibName;{$ENDIF}
+procedure Mix_Quit; {$IFDEF SDL_MIXER_NEWER}cdecl; external SDL_MixerLibName;{$ENDIF}
function Mix_OpenAudio(frequency: LongInt; format: Word; channels: LongInt; chunksize: LongInt): LongInt; cdecl; external SDL_MixerLibName;
procedure Mix_CloseAudio; cdecl; external SDL_MixerLibName;
@@ -930,8 +929,8 @@
function Mix_FadeOutChannel(channel: LongInt; fadems: LongInt): LongInt; cdecl; external SDL_MixerLibName;
(* SDL_image *)
-function IMG_Init(flags: LongInt): LongInt; cdecl; external SDL_ImageLibName;
-procedure IMG_Quit; cdecl; external SDL_ImageLibName;
+function IMG_Init(flags: LongInt): LongInt; {$IFDEF SDL_IMAGE_NEWER}cdecl; external SDL_ImageLibName;{$ENDIF}
+procedure IMG_Quit; {$IFDEF SDL_IMAGE_NEWER}cdecl; external SDL_ImageLibName;{$ENDIF}
function IMG_Load(const _file: PChar): PSDL_Surface; cdecl; external SDL_ImageLibName;
function IMG_Load_RW(rwop: PSDL_RWops; freesrc: LongInt): PSDL_Surface; cdecl; external SDL_ImageLibName;
@@ -990,13 +989,36 @@
function SDL_MustLock(Surface: PSDL_Surface): Boolean;
begin
+ SDL_MustLock:=
{$IFDEF SDL13}
- SDL_MustLock:= ((surface^.flags and SDL_RLEACCEL) <> 0)
+ ((surface^.flags and SDL_RLEACCEL) <> 0)
{$ELSE}
- SDL_MustLock:= ( surface^.offset <> 0 ) or (( surface^.flags and (SDL_HWSURFACE or SDL_ASYNCBLIT or SDL_RLEACCEL)) <> 0)
+ ( surface^.offset <> 0 ) or (( surface^.flags and (SDL_HWSURFACE or SDL_ASYNCBLIT or SDL_RLEACCEL)) <> 0)
{$ENDIF}
end;
+{$IFNDEF SDL_MIXER_NEWER}
+function Mix_Init(flags: LongInt): LongInt;
+begin
+ exit(flags);
+end;
+
+procedure Mix_Quit;
+begin
+end;
+{$ENDIF}
+
+{$IFNDEF SDL_IMAGE_NEWER}
+function IMG_Init(flags: LongInt): LongInt;
+begin
+ exit(flags);
+end;
+
+procedure IMG_Quit;
+begin
+end;
+{$ENDIF}
+
procedure SDLNet_Write16(value: Word; buf: pointer);
begin
PByteArray(buf)^[1]:= value;
--- a/hedgewars/VGSHandlers.inc Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/VGSHandlers.inc Fri Oct 28 18:26:17 2011 +0200
@@ -79,7 +79,7 @@
if round(X) < cLeftScreenBorder then X:= X + cScreenSpace else
if round(X) > cRightScreenBorder then X:= X - cScreenSpace;
// if round(Y) < (LAND_HEIGHT - 1024 - 75) then Y:= Y + 25.0; // For if flag is set for flakes rising upwards?
- if round(Y) - 75 > LAND_HEIGHT then Y:= Y - (1024 + 150); // TODO - configure in theme (jellies for example could use limited range)
+ if round(Y) - 225 > LAND_HEIGHT then Y:= Y - (1024 + 300); // TODO - configure in theme (jellies for example could use limited range)
Timer:= 0;
tdX:= 0;
tdY:= 0
@@ -172,7 +172,10 @@
Gear^.Angle:= round(Gear^.Angle + Steps) mod cMaxAngle;
if Gear^.FrameTicks <= Steps then
- DeleteVisualGear(Gear)
+ begin
+ DeleteVisualGear(Gear);
+ exit
+ end
else
dec(Gear^.FrameTicks, Steps);
--- a/hedgewars/hwengine.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/hwengine.pas Fri Oct 28 18:26:17 2011 +0200
@@ -164,15 +164,11 @@
while isTerminated = false do
begin
SDL_PumpEvents();
-{$IFDEF SDL13}
- while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) > 0 do
-{$ELSE}
- while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_ALLEVENTS) > 0 do
-{$ENDIF}
+ while SDL_PeepEvents(@event, 1, SDL_GETEVENT, {$IFDEF SDL13}SDL_FIRSTEVENT, SDL_LASTEVENT{$ELSE}SDL_ALLEVENTS{$ENDIF}) > 0 do
begin
case event.type_ of
+{$IFDEF SDL13}
SDL_KEYDOWN: if GameState = gsChat then
-{$IFDEF SDL13}
// sdl on iphone supports only ashii keyboards and the unicode field is deprecated in sdl 1.3
KeyPressChat(event.key.keysym.sym);
SDL_WINDOWEVENT:
@@ -192,14 +188,18 @@
end
else if event.window.event = SDL_WINDOWEVENT_RESIZED then
begin
+ // way too broken right now
+ (*
cNewScreenWidth:= max(2 * (event.window.data1 div 2), cMinScreenWidth);
cNewScreenHeight:= max(2 * (event.window.data2 div 2), cMinScreenHeight);
cScreenResizeDelay:= RealTicks+500;
+ *)
end;
SDL_FINGERMOTION: onTouchMotion(event.tfinger.x, event.tfinger.y,event.tfinger.dx, event.tfinger.dy, event.tfinger.fingerId);
SDL_FINGERDOWN: onTouchDown(event.tfinger.x, event.tfinger.y, event.tfinger.fingerId);
SDL_FINGERUP: onTouchUp(event.tfinger.x, event.tfinger.y, event.tfinger.fingerId);
{$ELSE}
+ SDL_KEYDOWN: if GameState = gsChat then
KeyPressChat(event.key.keysym.unicode);
SDL_MOUSEBUTTONDOWN: if event.button.button = SDL_BUTTON_WHEELDOWN then wheelDown:= true;
SDL_MOUSEBUTTONUP: if event.button.button = SDL_BUTTON_WHEELUP then wheelUp:= true;
@@ -228,6 +228,7 @@
SDL_QUITEV: isTerminated:= true
end; //end case event.type_ of
end; //end while SDL_PollEvent(@event) <> 0 do
+
if (cScreenResizeDelay <> 0) and (cScreenResizeDelay < RealTicks) and ((cNewScreenWidth <> cScreenWidth) or (cNewScreenHeight <> cScreenHeight)) then
begin
cScreenResizeDelay:= 0;
@@ -241,25 +242,21 @@
end;
if isTerminated = false then
- begin
+ begin
CurrTime:= SDL_GetTicks;
if PrevTime + longword(cTimerInterval) <= CurrTime then
- begin
+ begin
DoTimer(CurrTime - PrevTime);
PrevTime:= CurrTime
- end
+ end
else SDL_Delay(1);
IPCCheckSock();
- end;
+ end;
end;
end;
///////////////
-{$IFDEF HWLIBRARY}
-procedure Game(gameArgs: PPChar); cdecl; export;
-{$ELSE}
-procedure Game;
-{$ENDIF}
+procedure Game{$IFDEF HWLIBRARY}(gameArgs: PPChar); cdecl; export{$ENDIF};
var p: TPathType;
s: shortstring;
i: LongInt;
--- a/hedgewars/uAIMisc.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uAIMisc.pas Fri Oct 28 18:26:17 2011 +0200
@@ -332,18 +332,18 @@
bY:= hwRound(Gear^.Y);
case JumpType of
jmpNone: exit(bRes);
- jmpHJump: if not TestCollisionYwithGear(Gear, -1) then
+ jmpHJump: if TestCollisionYwithGear(Gear, -1) = 0 then
begin
Gear^.dY:= -_0_2;
SetLittle(Gear^.dX);
Gear^.State:= Gear^.State or gstMoving or gstHHJumping;
end else exit(bRes);
jmpLJump: begin
- if not TestCollisionYwithGear(Gear, -1) then
+ if TestCollisionYwithGear(Gear, -1) <> 0 then
if not TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - int2hwFloat(2) else
if not TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithGear(Gear, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then
begin
Gear^.dY:= -_0_15;
Gear^.dX:= SignAs(_0_15, Gear^.dX);
@@ -367,9 +367,9 @@
inc(GoInfo.Ticks);
Gear^.dY:= Gear^.dY + cGravity;
if Gear^.dY > _0_4 then exit(bRes);
- if (Gear^.dY.isNegative)and TestCollisionYwithGear(Gear, -1) then Gear^.dY:= _0;
+ if (Gear^.dY.isNegative)and (TestCollisionYwithGear(Gear, -1) <> 0) then Gear^.dY:= _0;
Gear^.Y:= Gear^.Y + Gear^.dY;
- if (not Gear^.dY.isNegative)and TestCollisionYwithGear(Gear, 1) then
+ if (not Gear^.dY.isNegative)and (TestCollisionYwithGear(Gear, 1) <> 0) then
begin
Gear^.State:= Gear^.State and not (gstMoving or gstHHJumping);
Gear^.dY:= _0;
@@ -417,7 +417,7 @@
end;
Gear^.Y:= Gear^.Y + Gear^.dY;
if hwRound(Gear^.Y) > pY then inc(GoInfo.FallPix);
- if TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) <> 0 then
begin
inc(GoInfo.Ticks, 410);
Gear^.State:= Gear^.State and not (gstMoving or gstHHJumping);
@@ -432,17 +432,17 @@
if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
begin
if not (TestCollisionXwithXYShift(Gear, _0, -6, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -5, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -4, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -3, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
end;
if not TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
@@ -450,25 +450,25 @@
Gear^.X:= Gear^.X + int2hwFloat(hwSign(Gear^.dX));
inc(GoInfo.Ticks, cHHStepTicks)
end;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y + _1;
- if not TestCollisionYwithGear(Gear, 1) then
+ if TestCollisionYwithGear(Gear, 1) = 0 then
begin
Gear^.Y:= Gear^.Y - _6;
Gear^.dY:= _0;
--- a/hedgewars/uCollisions.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uCollisions.pas Fri Oct 28 18:26:17 2011 +0200
@@ -39,7 +39,7 @@
function CheckGearsCollision(Gear: PGear): PGearArray;
function TestCollisionXwithGear(Gear: PGear; Dir: LongInt): boolean;
-function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): boolean;
+function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): Word;
function TestCollisionXKick(Gear: PGear; Dir: LongInt): boolean;
function TestCollisionYKick(Gear: PGear; Dir: LongInt): boolean;
@@ -51,6 +51,8 @@
function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean;
function TestRectancleForObstacle(x1, y1, x2, y2: LongInt; landOnly: boolean): boolean;
+
+function CalcSlopeTangentBelowGear(Gear: PGear; var outDeltaX, outDeltaY: LongInt): boolean;
function CalcSlopeTangent(Gear: PGear; collisionX, collisionY: LongInt; var outDeltaX, outDeltaY: LongInt; TestWord: LongWord): Boolean;
implementation
@@ -157,7 +159,7 @@
TestCollisionXwithGear:= false
end;
-function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): boolean;
+function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): Word;
var x, y, i: LongInt;
TestWord: LongWord;
begin
@@ -181,11 +183,11 @@
i:= x + Gear^.Radius * 2 - 2;
repeat
if (x and LAND_WIDTH_MASK) = 0 then
- if Land[y, x] > TestWord then exit(true);
+ if Land[y, x] > TestWord then exit(Land[y, x]);
inc(x)
until (x > i);
end;
-TestCollisionYwithGear:= false
+TestCollisionYwithGear:= 0
end;
function TestCollisionXKick(Gear: PGear; Dir: LongInt): boolean;
@@ -344,7 +346,7 @@
begin
Gear^.X:= Gear^.X + int2hwFloat(ShiftX);
Gear^.Y:= Gear^.Y + int2hwFloat(ShiftY);
-if withGear then TestCollisionYwithXYShift:= TestCollisionYwithGear(Gear, Dir)
+if withGear then TestCollisionYwithXYShift:= TestCollisionYwithGear(Gear, Dir) <> 0
else TestCollisionYwithXYShift:= TestCollisionY(Gear, Dir);
Gear^.X:= Gear^.X - int2hwFloat(ShiftX);
Gear^.Y:= Gear^.Y - int2hwFloat(ShiftY)
@@ -387,10 +389,11 @@
function CalcSlopeTangent(Gear: PGear; collisionX, collisionY: LongInt; var outDeltaX, outDeltaY: LongInt; TestWord: LongWord): boolean;
var ldx, ldy, rdx, rdy: LongInt;
- i, j, mx, my, li, ri, jfr, jto, tmpo : ShortInt;
+ i, j, k, mx, my, li, ri, jfr, jto, tmpo : ShortInt;
tmpx, tmpy: LongWord;
dx, dy, s: hwFloat;
offset: Array[0..7,0..1] of ShortInt;
+ isColl: Boolean;
begin
dx:= Gear^.dX;
@@ -418,21 +421,25 @@
offset[i,0]:= mx;
offset[i,1]:= my;
- tmpx:= collisionX + mx;
- tmpy:= collisionY + my;
+ // multiplicator k tries to skip small pixels/gaps when possible
+ for k:= 4 downto 1 do
+ begin
+ tmpx:= collisionX + k * mx;
+ tmpy:= collisionY + k * my;
- if (((tmpy) and LAND_HEIGHT_MASK) = 0) and (((tmpx) and LAND_WIDTH_MASK) = 0) then
- if (Land[tmpy,tmpx] > TestWord) then
- begin
- // remember the index belonging to the first and last collision (if in 1st half)
- if (i <> 0) then
+ if (((tmpy) and LAND_HEIGHT_MASK) = 0) and (((tmpx) and LAND_WIDTH_MASK) = 0) then
+ if (Land[tmpy,tmpx] > TestWord) then
begin
- if (ri = -1) then
- ri:= i
- else
- li:= i;
+ // remember the index belonging to the first and last collision (if in 1st half)
+ if (i <> 0) then
+ begin
+ if (ri = -1) then
+ ri:= i
+ else
+ li:= i;
+ end;
end;
- end;
+ end;
if i = 7 then break;
@@ -457,35 +464,48 @@
jfr:= 8+li+1;
jto:= 8+li-1;
+ isColl:= false;
for j:= jfr downto jto do
begin
tmpo:= j mod 8;
- tmpx:= ldx + offset[tmpo,0];
- tmpy:= ldy + offset[tmpo,1];
- if (((tmpy) and LAND_HEIGHT_MASK) = 0) and (((tmpx) and LAND_WIDTH_MASK) = 0)
- and (Land[tmpy,tmpx] > TestWord) then
- begin
- ldx:= tmpx;
- ldy:= tmpy;
- break;
- end;
+ // multiplicator k tries to skip small pixels/gaps when possible
+ for k:= 3 downto 1 do
+ begin
+ tmpx:= ldx + k * offset[tmpo,0];
+ tmpy:= ldy + k * offset[tmpo,1];
+ if (((tmpy) and LAND_HEIGHT_MASK) = 0) and (((tmpx) and LAND_WIDTH_MASK) = 0)
+ and (Land[tmpy,tmpx] > TestWord) then
+ begin
+ ldx:= tmpx;
+ ldy:= tmpy;
+ isColl:= true;
+ break;
+ end;
+ end;
+ if isColl then break;
end;
jfr:= 8+ri-1;
jto:= 8+ri+1;
+ isColl:= false;
for j:= jfr to jto do
begin
tmpo:= j mod 8;
- tmpx:= rdx + offset[tmpo,0];
- tmpy:= rdy + offset[tmpo,1];
- if (((tmpy) and LAND_HEIGHT_MASK) = 0) and (((tmpx) and LAND_WIDTH_MASK) = 0)
- and (Land[tmpy,tmpx] > TestWord) then
- begin
- rdx:= tmpx;
- rdy:= tmpy;
- break;
- end;
+ for k:= 3 downto 1 do
+ begin
+ tmpx:= rdx + k * offset[tmpo,0];
+ tmpy:= rdy + k * offset[tmpo,1];
+ if (((tmpy) and LAND_HEIGHT_MASK) = 0) and (((tmpx) and LAND_WIDTH_MASK) = 0)
+ and (Land[tmpy,tmpx] > TestWord) then
+ begin
+ rdx:= tmpx;
+ rdy:= tmpy;
+ isColl:= true;
+ break;
+ end;
+ end;
+ if isColl then break;
end;
end;
@@ -499,6 +519,51 @@
exit(true);
end;
+function CalcSlopeTangentBelowGear(Gear: PGear; var outDeltaX, outDeltaY: LongInt): boolean;
+var dx, dy: hwFloat;
+ collX, i, y, x, gx: LongInt;
+ isColl, succ: Boolean;
+begin
+// save original dx/dy
+dx:= Gear^.dX;
+dy:= Gear^.dY;
+
+Gear^.dX.QWordValue:= 0;
+Gear^.dY:= _1;
+
+y:= hwRound(Gear^.Y) + Gear^.Radius;
+gx:= hwRound(Gear^.X);
+collX := gx;
+isColl:= false;
+
+if (y and LAND_HEIGHT_MASK) = 0 then
+ begin
+ x:= hwRound(Gear^.X) - Gear^.Radius + 1;
+ i:= x + Gear^.Radius * 2 - 2;
+ repeat
+ if (x and LAND_WIDTH_MASK) = 0 then
+ if Land[y, x] > 255 then
+ if not isColl or (abs(x-gx) < abs(collX-gx)) then
+ begin
+ isColl:= true;
+ collX := x;
+ end;
+ inc(x)
+ until (x > i);
+ end;
+
+if isColl then
+ succ := CalcSlopeTangent(Gear, collX, y, outDeltaX, outDeltaY, 255)
+else
+ succ := false;
+
+// restore original dx/dy
+Gear^.dX:= dx;
+Gear^.dY:= dy;
+
+CalcSlopeTangentBelowGear := succ;
+end;
+
procedure initModule;
begin
Count:= 0;
--- a/hedgewars/uCommandHandlers.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uCommandHandlers.pas Fri Oct 28 18:26:17 2011 +0200
@@ -85,13 +85,13 @@
procedure chCheckProto(var s: shortstring);
var i, c: LongInt;
begin
-if isDeveloperMode then
-begin
-val(s, i, c);
-if (c <> 0) or (i = 0) then exit;
-TryDo(i <= cNetProtoVersion, 'Protocol version mismatch: engine is too old', true);
-TryDo(i >= cNetProtoVersion, 'Protocol version mismatch: engine is too new', true)
-end
+ if isDeveloperMode then
+ begin
+ val(s, i, c);
+ if (c <> 0) or (i = 0) then exit;
+ TryDo(i <= cNetProtoVersion, 'Protocol version mismatch: engine is too old (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true);
+ TryDo(i >= cNetProtoVersion, 'Protocol version mismatch: engine is too new (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true);
+ end
end;
procedure chTeamLocal(var s: shortstring);
@@ -451,11 +451,13 @@
procedure chSetMap(var s: shortstring);
begin
if isDeveloperMode then
-begin
-UserPathz[ptMapCurrent]:= UserPathz[ptMaps] + '/' + s;
-Pathz[ptMapCurrent]:= Pathz[ptMaps] + '/' + s;
-InitStepsFlags:= InitStepsFlags or cifMap
-end
+ begin
+ UserPathz[ptMapCurrent]:= UserPathz[ptMaps] + '/' + s;
+ Pathz[ptMapCurrent]:= Pathz[ptMaps] + '/' + s;
+ InitStepsFlags:= InitStepsFlags or cifMap
+ end;
+
+ScriptLoad(s)
end;
procedure chSetTheme(var s: shortstring);
--- a/hedgewars/uConsts.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uConsts.pas Fri Oct 28 18:26:17 2011 +0200
@@ -89,10 +89,12 @@
// To allow these to layer, going to treat them as masks. The bottom byte is reserved for objects
// TODO - set lfBasic for all solid land, ensure all uses of the flags can handle multiple flag bits
+// lfObject and lfBasic are only to be different *graphically* in all other ways they should be treated the same
lfBasic = $8000; // white
lfIndestructible = $4000; // red
- lfObject = $2000; // no idea
- lfDamaged = $1000; // no idea
+ lfObject = $2000;
+ lfDamaged = $1000; //
+ lfIce = $0800; // blue
cMaxPower = 1500;
cMaxAngle = 2048;
--- a/hedgewars/uGears.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uGears.pas Fri Oct 28 18:26:17 2011 +0200
@@ -295,12 +295,15 @@
Pos:= 0;
Radius:= 1;
DirAngle:= random * 360;
- dx.isNegative:= GetRandom(2) = 0;
- dx.QWordValue:= GetRandom(100000000);
- dy.isNegative:= false;
- dy.QWordValue:= GetRandom(70000000);
+ if State and gstTmpFlag = 0 then
+ begin
+ dx.isNegative:= GetRandom(2) = 0;
+ dx.QWordValue:= GetRandom(100000000);
+ dy.isNegative:= false;
+ dy.QWordValue:= GetRandom(70000000);
+ if GetRandom(2) = 0 then dx := -dx
+ end;
State:= State or gstInvisible;
- if GetRandom(2) = 0 then dx := -dx;
Health:= random(vobFrameTicks);
Timer:= random(vobFramesCount);
Angle:= (random(2) * 2 - 1) * (1 + random(10000)) * vobVelocity
@@ -1241,11 +1244,8 @@
cArtillery:= true;
if not hasBorder and ((Theme = 'Snow') or (Theme = 'Christmas')) then
- begin
for i:= 0 to Pred(vobCount*2) do
AddGear(GetRandom(LAND_WIDTH+1024)-512, LAND_HEIGHT - GetRandom(LAND_HEIGHT div 2), gtFlake, 0, _0, _0, 0);
- //disableLandBack:= true
- end
end;
procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword; const Tint: LongWord);
@@ -1286,6 +1286,11 @@
case Gear^.Kind of
gtHedgehog,
gtMine,
+ gtBall,
+ gtMelonPiece,
+ gtGrenade,
+ gtClusterBomb,
+ gtCluster,
gtSMine,
gtCase,
gtTarget,
@@ -1490,11 +1495,11 @@
if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
begin
if not (TestCollisionXwithXYShift(Gear, _0, -3, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
if not (TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX))
- or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - _1;
+ or (TestCollisionYwithGear(Gear, -1) <> 0)) then Gear^.Y:= Gear^.Y - _1;
end;
if (Ammo^.Kind <> gtFlame) or ((Ammo^.State and gsttmpFlag) = 0) then FollowGear:= Gear
--- a/hedgewars/uGearsRender.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uGearsRender.pas Fri Oct 28 18:26:17 2011 +0200
@@ -894,10 +894,19 @@
else DrawSprite(sprMolotov, x, y, 8);
gtRCPlane: begin
- if (Gear^.Tag = -1) then
- DrawRotated(sprPlane, x, y, -1, DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
+ Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
+ if Gear^.Tag = -1 then
+ begin
+ DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 0, -1, SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dX, Gear^.dY) + 90);
+ Tint($FF, $FF, $FF, $FF);
+ DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 1, -1, SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
+ end
else
- DrawRotated(sprPlane, x, y,0,DxDy2Angle(Gear^.dY, Gear^.dX));
+ begin
+ DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 0, 0, SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dY, Gear^.dX));
+ Tint($FF, $FF, $FF, $FF);
+ DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 1, 0, SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dY, Gear^.dX))
+ end
end;
gtBall: DrawRotatedf(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
--- a/hedgewars/uKeys.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uKeys.pas Fri Oct 28 18:26:17 2011 +0200
@@ -129,7 +129,7 @@
end;
{$ENDIF}
-// ctrl/cmd + w/q to close engine and/or frontend
+// ctrl/cmd + q to close engine and frontend
{$IFDEF DARWIN}
if ((tkbdn[KeyNameToCode('left_meta')] = 1) or (tkbdn[KeyNameToCode('right_meta')] = 1)) then
{$ELSE}
@@ -137,7 +137,6 @@
{$ENDIF}
begin
if tkbdn[KeyNameToCode('q')] = 1 then ParseCommand ('halt', true)
- else if tkbdn[KeyNameToCode('w')] = 1 then ParseCommand ('forcequit', true);
end;
// now process strokes
--- a/hedgewars/uLand.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uLand.pas Fri Oct 28 18:26:17 2011 +0200
@@ -1142,34 +1142,50 @@
if tmpsurf = nil then tmpsurf:= LoadImage(Pathz[ptMissionMaps] + '/' + mapName + '/mask', ifAlpha or ifTransparent or ifIgnoreCaps);
end;
- if (tmpsurf <> nil) and (tmpsurf^.w <= LAND_WIDTH) and (tmpsurf^.h <= LAND_HEIGHT) and (tmpsurf^.format^.BytesPerPixel = 4) then
- begin
- cpX:= (LAND_WIDTH - tmpsurf^.w) div 2;
- cpY:= LAND_HEIGHT - tmpsurf^.h;
- if SDL_MustLock(tmpsurf) then
- SDLTry(SDL_LockSurface(tmpsurf) >= 0, true);
+
+if (tmpsurf <> nil) and (tmpsurf^.w <= LAND_WIDTH) and (tmpsurf^.h <= LAND_HEIGHT) and (tmpsurf^.format^.BytesPerPixel = 4) then
+begin
+ disableLandBack:= true;
- p:= tmpsurf^.pixels;
- for y:= 0 to Pred(tmpsurf^.h) do
+ cpX:= (LAND_WIDTH - tmpsurf^.w) div 2;
+ cpY:= LAND_HEIGHT - tmpsurf^.h;
+ if SDL_MustLock(tmpsurf) then
+ SDLTry(SDL_LockSurface(tmpsurf) >= 0, true);
+
+ p:= tmpsurf^.pixels;
+ for y:= 0 to Pred(tmpsurf^.h) do
+ begin
+ for x:= 0 to Pred(tmpsurf^.w) do
begin
- for x:= 0 to Pred(tmpsurf^.w) do
- begin
- if ((AMask and p^[x]) = 0) then // Tiy was having trouble generating transparent black
- Land[cpY + y, cpX + x]:= 0
- else if p^[x] = (AMask or RMask) then
- Land[cpY + y, cpX + x]:= lfIndestructible
- else if p^[x] = $FFFFFFFF then
- Land[cpY + y, cpX + x]:= lfBasic;
- end;
- p:= @(p^[tmpsurf^.pitch div 4]);
+ if ((AMask and p^[x]) = 0) then
+ Land[cpY + y, cpX + x]:= 0
+ else if p^[x] = $FFFFFFFF then
+ Land[cpY + y, cpX + x]:= lfObject
+ else if p^[x] = (AMask or RMask) then
+ Land[cpY + y, cpX + x]:= lfIndestructible
+ else if p^[x] = AMask then
+ begin
+ Land[cpY + y, cpX + x]:= lfBasic;
+ disableLandBack:= false
+ end
+ else if p^[x] = (AMask or BMask) then
+ Land[cpY + y, cpX + x]:= lfObject or lfIce
end;
+ p:= @(p^[tmpsurf^.pitch div 4]);
+ end;
- if SDL_MustLock(tmpsurf) then
- SDL_UnlockSurface(tmpsurf);
- end;
- if (tmpsurf <> nil) then
- SDL_FreeSurface(tmpsurf);
- tmpsurf:= nil;
+ if SDL_MustLock(tmpsurf) then
+ SDL_UnlockSurface(tmpsurf);
+ if not disableLandBack then
+ begin
+ // freed in freeModule() below
+ LandBackSurface:= LoadImage(UserPathz[ptCurrTheme] + '/LandBackTex', ifIgnoreCaps or ifTransparent);
+ if LandBackSurface = nil then LandBackSurface:= LoadImage(Pathz[ptCurrTheme] + '/LandBackTex', ifIgnoreCaps or ifTransparent)
+ end;
+end;
+if (tmpsurf <> nil) then
+ SDL_FreeSurface(tmpsurf);
+tmpsurf:= nil;
end;
procedure LoadMap;
--- a/hedgewars/uLandGraphics.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uLandGraphics.pas Fri Oct 28 18:26:17 2011 +0200
@@ -180,7 +180,7 @@
t:= y + dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if (not isMap and ((Land[t, i] and lfIndestructible) = 0)) or ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfIndestructible) = 0) and (not disableLandBack or (Land[t, i] > 255)) then
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= 0
else
@@ -189,7 +189,7 @@
t:= y - dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if (not isMap and ((Land[t, i] and lfIndestructible) = 0)) or ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfIndestructible) = 0) and (not disableLandBack or (Land[t, i] > 255)) then
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= 0
else
@@ -198,7 +198,7 @@
t:= y + dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if (not isMap and ((Land[t, i] and lfIndestructible) = 0)) or ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfIndestructible) = 0) and (not disableLandBack or (Land[t, i] > 255)) then
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= 0
else
@@ -207,7 +207,7 @@
t:= y - dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if (not isMap and ((Land[t, i] and lfIndestructible) = 0)) or ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfIndestructible) = 0) and (not disableLandBack or (Land[t, i] > 255)) then
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= 0
else
@@ -223,86 +223,89 @@
t:= y + dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
+ if (Land[t, i] and lfIndestructible) = 0 then
begin
- by:= t; bx:= i;
- end
- else
- begin
- by:= t div 2; bx:= i div 2;
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and (((LandPixels[by,bx] and AMask) shr AShift) = 255) and not disableLandBack then
+ begin
+ inc(cnt);
+ LandPixels[by, bx]:= LandBackPixel(i, t)
+ end
+ else if ((Land[t, i] and lfObject) <> 0) or (((LandPixels[by,bx] and AMask) shr AShift) < 255) then
+ LandPixels[by, bx]:= 0
end;
- if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
- begin
- inc(cnt);
- LandPixels[by, bx]:= LandBackPixel(i, t)
- end
- else
- if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
- LandPixels[by, bx]:= 0
- end;
t:= y - dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
+ if (Land[t, i] and lfIndestructible) = 0 then
begin
- by:= t; bx:= i;
- end
- else
- begin
- by:= t div 2; bx:= i div 2;
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and (((LandPixels[by,bx] and AMask) shr AShift) = 255) and not disableLandBack then
+ begin
+ inc(cnt);
+ LandPixels[by, bx]:= LandBackPixel(i, t)
+ end
+ else if ((Land[t, i] and lfObject) <> 0) or (((LandPixels[by,bx] and AMask) shr AShift) < 255) then
+ LandPixels[by, bx]:= 0
end;
- if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
- begin
- inc(cnt);
- LandPixels[by, bx]:= LandBackPixel(i, t)
- end
- else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
- LandPixels[by, bx]:= 0
- end;
t:= y + dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
+ if (Land[t, i] and lfIndestructible) = 0 then
begin
- by:= t; bx:= i;
- end
- else
- begin
- by:= t div 2; bx:= i div 2;
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and (((LandPixels[by,bx] and AMask) shr AShift) = 255) and not disableLandBack then
+ begin
+ inc(cnt);
+ LandPixels[by, bx]:= LandBackPixel(i, t)
+ end
+ else if ((Land[t, i] and lfObject) <> 0) or (((LandPixels[by,bx] and AMask) shr AShift) < 255) then
+ LandPixels[by, bx]:= 0
end;
- if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
- begin
- inc(cnt);
- LandPixels[by, bx]:= LandBackPixel(i, t)
- end
- else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
- LandPixels[by, bx]:= 0
- end;
t:= y - dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
+ if (Land[t, i] and lfIndestructible) = 0 then
begin
- by:= t; bx:= i;
- end
- else
- begin
- by:= t div 2; bx:= i div 2;
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and (((LandPixels[by,bx] and AMask) shr AShift) = 255) and not disableLandBack then
+ begin
+ inc(cnt);
+ LandPixels[by, bx]:= LandBackPixel(i, t)
+ end
+ else if ((Land[t, i] and lfObject) <> 0) or (((LandPixels[by,bx] and AMask) shr AShift) < 255) then
+ LandPixels[by, bx]:= 0
end;
- if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
- begin
- inc(cnt);
- LandPixels[by, bx]:= LandBackPixel(i, t)
- end
- else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
- LandPixels[by, bx]:= 0
- end;
FillLandCircleLinesBG:= cnt;
end;
@@ -455,18 +458,21 @@
for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do
for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do
begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- begin
- by:= ty; bx:= tx;
- end
- else
+ if (Land[ty, tx] and lfIndestructible) = 0 then
begin
- by:= ty div 2; bx:= tx div 2;
- end;
- if ((Land[ty, tx] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
- LandPixels[by, bx]:= LandBackPixel(tx, ty)
- else if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
- LandPixels[by, bx]:= 0
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= ty; bx:= tx;
+ end
+ else
+ begin
+ by:= ty div 2; bx:= tx div 2;
+ end;
+ if ((Land[ty, tx] and lfBasic) <> 0) and (((LandPixels[by,bx] and AMask) shr AShift) = 255) and not disableLandBack then
+ LandPixels[by, bx]:= LandBackPixel(tx, ty)
+ else if ((Land[ty, tx] and lfObject) <> 0) or (((LandPixels[by,bx] and AMask) shr AShift) < 255) then
+ LandPixels[by, bx]:= 0
+ end
end;
inc(y, dY)
end;
@@ -582,11 +588,10 @@
begin
by:= ty div 2; bx:= tx div 2;
end;
- if ((Land[ty, tx] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
- LandPixels[by, bx]:= LandBackPixel(tx, ty)
- else if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+ if ((Land[ty, tx] and lfBasic) <> 0) and (((LandPixels[by,bx] and AMask) shr AShift) = 255) and not disableLandBack then
+ LandPixels[by, bx]:= LandBackPixel(tx, ty)
+ else if ((Land[ty, tx] and lfObject) <> 0) or (((LandPixels[by,bx] and AMask) shr AShift) < 255) then
LandPixels[by, bx]:= 0;
-
Land[ty, tx]:= 0;
end
end;
@@ -647,7 +652,7 @@
end;
function TryPlaceOnLand(cpX, cpY: LongInt; Obj: TSprite; Frame: LongInt; doPlace: boolean; indestructible: boolean): boolean;
-var X, Y, bpp, h, w, row, col, numFramesFirstCol: LongInt;
+var X, Y, bpp, h, w, row, col, gx, gy, numFramesFirstCol: LongInt;
p: PByteArray;
Image: PSDL_Surface;
begin
@@ -702,14 +707,25 @@
for x:= 0 to Pred(w) do
if PLongword(@(p^[x * 4]))^ <> 0 then
begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ gX:= cpX + x;
+ gY:= cpY + y;
+ end
+ else
+ begin
+ gX:= (cpX + x) div 2;
+ gY:= (cpY + y) div 2;
+ end;
if indestructible then
Land[cpY + y, cpX + x]:= lfIndestructible
+ else if (LandPixels[gY, gX] and AMask) shr AShift = 255 then // This test assumes lfBasic and lfObject differ only graphically
+ Land[cpY + y, cpX + x]:= lfBasic
else
Land[cpY + y, cpX + x]:= lfObject;
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[cpY + y, cpX + x]:= PLongword(@(p^[x * 4]))^
- else
- LandPixels[(cpY + y) div 2, (cpX + x) div 2]:= PLongword(@(p^[x * 4]))^
+ // For testing only. Intent is to flag this on objects with masks, or use it for an ice ray gun
+ if (Theme = 'Snow') or (Theme = 'Christmas') then Land[cpY + y, cpX + x]:= Land[cpY + y, cpX + x] or lfIce;
+ LandPixels[gY, gX]:= PLongword(@(p^[x * 4]))^
end;
p:= @(p^[Image^.pitch]);
end;
@@ -824,6 +840,33 @@
else Land[y,x]:= lfBasic
end
end
+else if ((cReducedQuality and rqBlurryLand) = 0) and (LandPixels[Y, X] and AMask = 255) and
+ ((Land[Y, X] and (lfDamaged or lfBasic) = lfBasic) or (Land[Y, X] and (lfDamaged or lfBasic) = lfBasic)) and
+ (Y > LongInt(topY) + 1) and (Y < LAND_HEIGHT-2) and (X > LongInt(leftX) + 1) and (X < LongInt(rightX) - 1) then
+ begin
+ if ((((Land[y, x-1] and lfDamaged) <> 0) and (((Land[y+1,x] and lfDamaged) <> 0)) or ((Land[y-1,x] and lfDamaged) <> 0)) or
+ (((Land[y, x+1] and lfDamaged) <> 0) and (((Land[y-1,x] and lfDamaged) <> 0) or ((Land[y+1,x] and lfDamaged) <> 0)))) then
+ begin
+ LandPixels[y,x]:=
+ (((((LandPixels[y,x] and RMask shr RShift) div 2)+((cExplosionBorderColor and RMask) shr RShift) div 2) and $FF) shl RShift) or
+ (((((LandPixels[y,x] and GMask shr GShift) div 2)+((cExplosionBorderColor and GMask) shr GShift) div 2) and $FF) shl GShift) or
+ (((((LandPixels[y,x] and BMask shr BShift) div 2)+((cExplosionBorderColor and BMask) shr BShift) div 2) and $FF) shl BShift) or ($FF shl AShift)
+ end
+ else if ((((Land[y, x-1] and lfDamaged) <> 0) and ((Land[y+1,x-1] and lfDamaged) <> 0) and ((Land[y+2,x] and lfDamaged) <> 0)) or
+ (((Land[y, x-1] and lfDamaged) <> 0) and ((Land[y-1,x-1] and lfDamaged) <> 0) and ((Land[y-2,x] and lfDamaged) <> 0)) or
+ (((Land[y, x+1] and lfDamaged) <> 0) and ((Land[y+1,x+1] and lfDamaged) <> 0) and ((Land[y+2,x] and lfDamaged) <> 0)) or
+ (((Land[y, x+1] and lfDamaged) <> 0) and ((Land[y-1,x+1] and lfDamaged) <> 0) and ((Land[y-2,x] and lfDamaged) <> 0)) or
+ (((Land[y+1, x] and lfDamaged) <> 0) and ((Land[y+1,x+1] and lfDamaged) <> 0) and ((Land[y,x+2] and lfDamaged) <> 0)) or
+ (((Land[y-1, x] and lfDamaged) <> 0) and ((Land[y-1,x+1] and lfDamaged) <> 0) and ((Land[y,x+2] and lfDamaged) <> 0)) or
+ (((Land[y+1, x] and lfDamaged) <> 0) and ((Land[y+1,x-1] and lfDamaged) <> 0) and ((Land[y,x-2] and lfDamaged) <> 0)) or
+ (((Land[y-1, x] and lfDamaged) <> 0) and ((Land[y-1,x-1] and lfDamaged) <> 0) and ((Land[y,x-2] and lfDamaged) <> 0))) then
+ begin
+ LandPixels[y,x]:=
+ (((((LandPixels[y,x] and RMask shr RShift) * 3 div 4)+((cExplosionBorderColor and RMask) shr RShift) div 4) and $FF) shl RShift) or
+ (((((LandPixels[y,x] and GMask shr GShift) * 3 div 4)+((cExplosionBorderColor and GMask) shr GShift) div 4) and $FF) shl GShift) or
+ (((((LandPixels[y,x] and BMask shr BShift) * 3 div 4)+((cExplosionBorderColor and BMask) shr BShift) div 4) and $FF) shl BShift) or ($FF shl AShift)
+ end
+ end
end;
function SweepDirty: boolean;
@@ -902,12 +945,12 @@
// Return true if outside of land or not the value tested, used right now for some X/Y movement that does not use normal hedgehog movement in GSHandlers.inc
-function CheckLandValue(X, Y: LongInt; LandFlag: Word): boolean;
+function CheckLandValue(X, Y: LongInt; LandFlag: Word): boolean; inline;
begin
CheckLandValue:= ((X and LAND_WIDTH_MASK <> 0) or (Y and LAND_HEIGHT_MASK <> 0)) or ((Land[Y, X] and LandFlag) = 0)
end;
-function LandBackPixel(x, y: LongInt): LongWord;
+function LandBackPixel(x, y: LongInt): LongWord; inline;
var p: PLongWordArray;
begin
if LandBackSurface = nil then LandBackPixel:= 0
--- a/hedgewars/uLandObjects.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uLandObjects.pas Fri Oct 28 18:26:17 2011 +0200
@@ -25,7 +25,7 @@
procedure AddObjects();
procedure FreeLandObjects();
procedure LoadThemeConfig;
-procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface);
+procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface; extraFlags: Word = 0);
procedure AddOnLandObjects(Surface: PSDL_Surface);
implementation
@@ -66,7 +66,7 @@
SprayObjects: TSprayObjects;
-procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface);
+procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface; extraFlags: Word = 0);
var p: PLongwordArray;
x, y: Longword;
bpp: LongInt;
@@ -96,8 +96,12 @@
if LandPixels[(cpY + y) div 2, (cpX + x) div 2] = 0 then
LandPixels[(cpY + y) div 2, (cpX + x) div 2]:= p^[x];
+
if ((Land[cpY + y, cpX + x] and $FF00) = 0) and ((p^[x] and AMask) <> 0) then
- Land[cpY + y, cpX + x]:= lfObject
+ begin
+ Land[cpY + y, cpX + x]:= lfObject;
+ Land[cpY + y, cpX + x]:= Land[cpY + y, cpX + x] or extraFlags
+ end;
end;
p:= @(p^[Image^.pitch shr 2])
end;
@@ -204,7 +208,11 @@
rr.x:= x1;
while rr.x < x2 do
begin
- BlitImageAndGenerateCollisionInfo(rr.x, y, min(x2 - rr.x, tmpsurf^.w), tmpsurf);
+ // For testing only. Intent is to flag this on objects with masks, or use it for an ice ray gun
+ if (Theme = 'Snow') or (Theme = 'Christmas') then
+ BlitImageAndGenerateCollisionInfo(rr.x, y, min(x2 - rr.x, tmpsurf^.w), tmpsurf, lfIce)
+ else
+ BlitImageAndGenerateCollisionInfo(rr.x, y, min(x2 - rr.x, tmpsurf^.w), tmpsurf);
inc(rr.x, tmpsurf^.w);
end;
SDL_FreeSurface(tmpsurf);
--- a/hedgewars/uScript.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uScript.pas Fri Oct 28 18:26:17 2011 +0200
@@ -960,8 +960,12 @@
end
else lua_pushinteger(L, 0)
end
- else LuaError('Lua: Wrong number of parameters passed to GetAmmoCount!');
- lc_getammocount:= 0
+ else
+ begin
+ LuaError('Lua: Wrong number of parameters passed to GetAmmoCount!');
+ lua_pushnil(L)
+ end;
+ lc_getammocount:= 1
end;
function lc_sethealth(L : Plua_State) : LongInt; Cdecl;
@@ -1594,6 +1598,7 @@
exit;
// push game variables so they may be modified by the script
+ScriptSetInteger('BorderColor', cExplosionBorderColor);
ScriptSetInteger('GameFlags', GameFlags);
ScriptSetString('Seed', cSeed);
ScriptSetInteger('TemplateFilter', cTemplateFilter);
@@ -1672,6 +1677,8 @@
begin
s:= UserPathz[ptData] + '/' + name;
if not FileExists(s) then s:= Pathz[ptData] + '/' + name;
+if not FileExists(s) then exit;
+
ret:= luaL_loadfile(luaState, Str2PChar(s));
if ret <> 0 then
begin
--- a/hedgewars/uSound.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uSound.pas Fri Oct 28 18:26:17 2011 +0200
@@ -157,11 +157,9 @@
if isSoundEnabled then
isSoundEnabled:= Mix_OpenAudio(44100, $8010, channels, 1024) = 0;
-{$IFDEF SDL_MIXER_NEWER}
WriteToConsole('Init SDL_mixer... ');
SDLTry(Mix_Init(MIX_INIT_OGG) <> 0, true);
WriteLnToConsole(msgOK);
-{$ENDIF}
if isSoundEnabled then
WriteLnToConsole(msgOK)
@@ -191,11 +189,9 @@
if Mus <> nil then
Mix_FreeMusic(Mus);
-{$IFDEF SDL_MIXER_NEWER}
// make sure all instances of sdl_mixer are unloaded before continuing
while Mix_Init(0) <> 0 do
Mix_Quit();
-{$ENDIF}
Mix_CloseAudio();
end;
--- a/hedgewars/uStore.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uStore.pas Fri Oct 28 18:26:17 2011 +0200
@@ -399,10 +399,7 @@
end;
AddProgress;
-
-{$IFDEF SDL_IMAGE_NEWER}
IMG_Quit();
-{$ENDIF}
end;
procedure StoreRelease(reload: boolean);
@@ -949,38 +946,32 @@
procedure chFullScr(var s: shortstring);
var flags: Longword = 0;
- {$IFNDEF IPHONEOS}ico: PSDL_Surface;{$ENDIF}
- reinit: boolean;
+ reinit: boolean = false;
+ {$IFNDEF DARWIN}ico: PSDL_Surface;{$ENDIF}
{$IFDEF SDL13}x, y: LongInt;{$ENDIF}
begin
if Length(s) = 0 then cFullScreen:= not cFullScreen
else cFullScreen:= s = '1';
AddFileLog('Preparing to change video parameters...');
- reinit:= false;
{$IFNDEF IPHONEOS}
if SDLPrimSurface = nil then
begin
// set window title
SDL_WM_SetCaption('Hedgewars', nil);
-{$IFDEF SDL_IMAGE_NEWER}
WriteToConsole('Init SDL_image... ');
SDLTry(IMG_Init(IMG_INIT_PNG) <> 0, true);
WriteLnToConsole(msgOK);
-{$ENDIF}
// load engine icon
-{$IFDEF DARWIN}
- ico:= LoadImage(UserPathz[ptGraphics] + '/hwengine_mac', ifIgnoreCaps);
- if ico = nil then ico:= LoadImage(Pathz[ptGraphics] + '/hwengine_mac', ifIgnoreCaps);
-{$ELSE}
+{$IFNDEF DARWIN}
ico:= LoadImage(UserPathz[ptGraphics] + '/hwengine', ifIgnoreCaps);
if ico = nil then ico:= LoadImage(Pathz[ptGraphics] + '/hwengine', ifIgnoreCaps);
-{$ENDIF}
if ico <> nil then
begin
SDL_WM_SetIcon(ico, 0);
SDL_FreeSurface(ico)
end;
+{$ENDIF}
end
else
begin
--- a/hedgewars/uTeams.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uTeams.pas Fri Oct 28 18:26:17 2011 +0200
@@ -542,6 +542,23 @@
end;
+procedure chFinish(var s:shortstring);
+var t: LongInt;
+begin
+// avoid compiler hint
+s:= s;
+
+t:= 0;
+while (t < cMaxTeams) and (TeamsArray[t] <> nil) do
+ begin
+ TeamsArray[t]^.hasGone:= true;
+ inc(t);
+ end;
+
+AddChatString('** Good-bye!');
+RecountAllTeamsHealth();
+end;
+
procedure initModule;
begin
RegisterVariable('addhh', vtCommand, @chAddHH, false);
@@ -549,6 +566,7 @@
RegisterVariable('hhcoords', vtCommand, @chSetHHCoords, false);
RegisterVariable('bind', vtCommand, @chBind, true );
RegisterVariable('teamgone', vtCommand, @chTeamGone, true );
+ RegisterVariable('finish', vtCommand, @chFinish, true ); // all teams gone
CurrentTeam:= nil;
PreviousTeam:= nil;
--- a/hedgewars/uVariables.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uVariables.pas Fri Oct 28 18:26:17 2011 +0200
@@ -348,7 +348,7 @@
Width: 254; Height: 101; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAirplane
(FileName: 'amAirplane'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 64; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAmAirplane
- (FileName: 'amGirder'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
+ (FileName: 'amGirder'; Path: ptCurrTheme; AltPath: ptGraphics; Texture: nil; Surface: nil;
Width: 160; Height:160; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAmGirder
(FileName: 'hhMask'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHHTelepMask
@@ -453,7 +453,7 @@
(FileName: 'Balls'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 32; Height: 20; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprBalls
(FileName: 'RCPlane'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
- Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPlane
+ Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPlane
(FileName: 'amRCPlane'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandPlane
(FileName: 'Utility'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
@@ -2338,11 +2338,7 @@
framel, framer, depthl, depthr: GLuint;
texl, texr: GLuint;
-
- VisualGearsLayer0: PVisualGear;
- VisualGearsLayer1: PVisualGear;
- VisualGearsLayer2: PVisualGear;
- VisualGearsLayer3: PVisualGear;
+ VisualGearLayers: array[0..3] of PVisualGear;
lastVisualGearByUID: PVisualGear;
vobFrameTicks, vobFramesCount, vobCount: Longword;
vobVelocity, vobFallSpeed: LongInt;
--- a/hedgewars/uVisualGears.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uVisualGears.pas Fri Oct 28 18:26:17 2011 +0200
@@ -145,6 +145,7 @@
gear^.State:= 0;
gear^.Tint:= $FFFFFFFF;
gear^.uid:= VGCounter;
+gear^.Layer:= 0;
with gear^ do
case Kind of
@@ -336,19 +337,15 @@
if State <> 0 then gear^.State:= State;
case Gear^.Kind of
+ vgtFlake: if random(2) = 0 then gear^.Layer:= 0 // 50%
+ else if random(2) = 0 then gear^.Layer:= 1 // 25%
+ else gear^.Layer:= random(2)+2; // 12.5% each
+
// 0: this layer is very distant in the background when stereo
vgtTeamHealthSorter,
vgtSmoothWindBar,
- vgtFlake,
- vgtCloud: begin
- if VisualGearsLayer0 <> nil then
- begin
- VisualGearsLayer0^.PrevGear:= gear;
- gear^.NextGear:= VisualGearsLayer0
- end;
- gear^.Layer:= 0;
- VisualGearsLayer0:= gear
- end;
+ vgtCloud: gear^.Layer:= 0;
+
// 1: this layer is on the land level (which is close but behind the screen plane) when stereo
vgtSmokeTrace,
vgtEvilTrace,
@@ -359,29 +356,15 @@
vgtFire,
vgtSplash,
vgtDroplet,
- vgtBubble: begin
- if VisualGearsLayer1 <> nil then
- begin
- VisualGearsLayer1^.PrevGear:= gear;
- gear^.NextGear:= VisualGearsLayer1
- end;
- gear^.Layer:= 1;
- VisualGearsLayer1:= gear
- end;
+ vgtBubble: gear^.Layer:= 1;
+
// 3: this layer is on the screen plane (depth = 0) when stereo
vgtSpeechBubble,
vgtSmallDamageTag,
vgtHealthTag,
vgtStraightShot,
- vgtChunk: begin
- if VisualGearsLayer3 <> nil then
- begin
- VisualGearsLayer3^.PrevGear:= gear;
- gear^.NextGear:= VisualGearsLayer3
- end;
- gear^.Layer:= 3;
- VisualGearsLayer3:= gear
- end;
+ vgtChunk: gear^.Layer:= 3;
+
// 2: this layer is outside the screen when stereo
vgtExplosion,
vgtBigExplosion,
@@ -396,17 +379,16 @@
vgtSmokeRing,
vgtNote,
vgtBulletHit,
- vgtCircle: begin
- if VisualGearsLayer2 <> nil then
- begin
- VisualGearsLayer2^.PrevGear:= gear;
- gear^.NextGear:= VisualGearsLayer2
- end;
- gear^.Layer:= 2;
- VisualGearsLayer2:= gear
- end;
+ vgtCircle: gear^.Layer:= 2
end;
+if VisualGearLayers[gear^.Layer] <> nil then
+ begin
+ VisualGearLayers[gear^.Layer]^.PrevGear:= gear;
+ gear^.NextGear:= VisualGearLayers[gear^.Layer]
+ end;
+VisualGearLayers[gear^.Layer]:= gear;
+
AddVisualGear:= gear;
end;
@@ -418,13 +400,7 @@
if Gear^.NextGear <> nil then Gear^.NextGear^.PrevGear:= Gear^.PrevGear;
if Gear^.PrevGear <> nil then Gear^.PrevGear^.NextGear:= Gear^.NextGear
- else
- case Gear^.Layer of
- 0: VisualGearsLayer0:= Gear^.NextGear;
- 1: VisualGearsLayer1:= Gear^.NextGear;
- 2: VisualGearsLayer2:= Gear^.NextGear;
- 3: VisualGearsLayer3:= Gear^.NextGear;
- end;
+ else VisualGearLayers[Gear^.Layer]:= Gear^.NextGear;
if lastVisualGearByUID = Gear then lastVisualGearByUID:= nil;
@@ -433,37 +409,20 @@
procedure ProcessVisualGears(Steps: Longword);
var Gear, t: PVisualGear;
+ i: LongWord;
begin
if Steps = 0 then exit;
-t:= VisualGearsLayer0;
-while t <> nil do
- begin
- Gear:= t;
- t:= Gear^.NextGear;
- Gear^.doStep(Gear, Steps)
- end;
-t:= VisualGearsLayer1;
-while t <> nil do
- begin
- Gear:= t;
- t:= Gear^.NextGear;
- Gear^.doStep(Gear, Steps)
- end;
-t:= VisualGearsLayer2;
-while t <> nil do
- begin
- Gear:= t;
- t:= Gear^.NextGear;
- Gear^.doStep(Gear, Steps)
- end;
-t:= VisualGearsLayer3;
-while t <> nil do
- begin
- Gear:= t;
- t:= Gear^.NextGear;
- Gear^.doStep(Gear, Steps)
- end
+for i:= 0 to 3 do
+ begin
+ t:= VisualGearLayers[i];
+ while t <> nil do
+ begin
+ Gear:= t;
+ t:= Gear^.NextGear;
+ Gear^.doStep(Gear, Steps)
+ end;
+ end
end;
procedure KickFlakes(Radius, X, Y: LongInt);
@@ -471,7 +430,26 @@
dmg: LongInt;
begin
if (vobCount = 0) or (vobCount > 200) then exit;
-t:= VisualGearsLayer0;
+t:= VisualGearLayers[1];
+while t <> nil do
+ begin
+ Gear:= t;
+ if Gear^.Kind = vgtFlake then
+ begin
+ // Damage calc from doMakeExplosion
+ dmg:= Min(101, Radius + cHHRadius div 2 - LongInt(abs(round(Gear^.X) - X) + abs(round(Gear^.Y) - Y)) div 5);
+ if dmg > 1 then
+ begin
+ Gear^.tdX:= 0.02 * dmg + 0.01;
+ if Gear^.X - X < 0 then Gear^.tdX := -Gear^.tdX;
+ Gear^.tdY:= 0.02 * dmg + 0.01;
+ if Gear^.Y - Y < 0 then Gear^.tdY := -Gear^.tdY;
+ Gear^.Timer:= 200
+ end
+ end;
+ t:= Gear^.NextGear
+ end;
+t:= VisualGearLayers[3];
while t <> nil do
begin
Gear:= t;
@@ -501,21 +479,21 @@
case Layer of
// this layer is very distant in the background when stereo
0: begin
- Gear:= VisualGearsLayer0;
+ Gear:= VisualGearLayers[0];
while Gear <> nil do
begin
if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
case Gear^.Kind of
vgtFlake: if SuddenDeathDmg then
if vobSDVelocity = 0 then
- DrawSprite(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ DrawTextureF(SpritesData[sprSDFlake].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
else
- DrawRotatedF(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle)
+ DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 0.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
else
if vobVelocity = 0 then
- DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ DrawTextureF(SpritesData[sprFlake].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
else
- DrawRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
+ DrawRotatedTextureF(SpritesData[sprFlake].Texture, 0.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
vgtCloud: if SuddenDeathDmg then
DrawSprite(sprSDCloud, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
else
@@ -527,12 +505,22 @@
end;
// this layer is on the land level (which is close but behind the screen plane) when stereo
1: begin
- Gear:= VisualGearsLayer1;
+ Gear:= VisualGearLayers[1];
while Gear <> nil do
begin
//tinted:= false;
if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
case Gear^.Kind of
+ vgtFlake: if SuddenDeathDmg then
+ if vobSDVelocity = 0 then
+ DrawSprite(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ else
+ DrawRotatedF(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle)
+ else
+ if vobVelocity = 0 then
+ DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ else
+ DrawRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
vgtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
vgtEvilTrace: if Gear^.State < 8 then DrawSprite(sprEvilTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
vgtLineTrail: DrawLine(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 1.0, $FF, min(Gear^.Timer, $C0), min(Gear^.Timer, $80), min(Gear^.Timer, $FF));
@@ -566,12 +554,22 @@
end;
// this layer is on the screen plane (depth = 0) when stereo
3: begin
- Gear:= VisualGearsLayer3;
+ Gear:= VisualGearLayers[3];
while Gear <> nil do
begin
tinted:= false;
if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
case Gear^.Kind of
+ vgtFlake: if SuddenDeathDmg then
+ if vobSDVelocity = 0 then
+ DrawSprite(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ else
+ DrawRotatedF(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle)
+ else
+ if vobVelocity = 0 then
+ DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ else
+ DrawRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
vgtSpeechBubble: begin
if (Gear^.Tex <> nil) and (((Gear^.State = 0) and (Gear^.Hedgehog^.Team <> CurrentTeam)) or (Gear^.State = 1)) then
begin
@@ -610,7 +608,7 @@
end;
// this layer is outside the screen when stereo
2: begin
- Gear:= VisualGearsLayer2;
+ Gear:= VisualGearLayers[2];
while Gear <> nil do
begin
tinted:= false;
@@ -668,6 +666,16 @@
vgtBulletHit: DrawRotatedF(sprBulletHit, round(Gear^.X) + WorldDx - 0, round(Gear^.Y) + WorldDy - 0, 7 - (Gear^.FrameTicks div 50), 1, Gear^.Angle);
end;
case Gear^.Kind of
+ vgtFlake: if SuddenDeathDmg then
+ if vobSDVelocity = 0 then
+ DrawTextureF(SpritesData[sprSDFlake].Texture, 1.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
+ else
+ DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 1.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
+ else
+ if vobVelocity = 0 then
+ DrawTextureF(SpritesData[sprFlake].Texture, 1.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
+ else
+ DrawRotatedTextureF(SpritesData[sprFlake].Texture, 1.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
vgtCircle: if gear^.Angle = 1 then
begin
tmp:= Gear^.State / 100;
@@ -684,6 +692,7 @@
function VisualGearByUID(uid : Longword) : PVisualGear;
var vg: PVisualGear;
+ i: LongWord;
begin
VisualGearByUID:= nil;
if uid = 0 then exit;
@@ -692,49 +701,20 @@
VisualGearByUID:= lastVisualGearByUID;
exit
end;
-vg:= VisualGearsLayer0;
-while vg <> nil do
+// search in an order that is more likely to return layers they actually use. Could perhaps track statistically AddVisualGear in uScript, since that is most likely the ones they want
+for i:= 2 to 5 do
begin
- if vg^.uid = uid then
- begin
- lastVisualGearByUID:= vg;
- VisualGearByUID:= vg;
- exit
- end;
- vg:= vg^.NextGear
- end;
-vg:= VisualGearsLayer1;
-while vg <> nil do
- begin
- if vg^.uid = uid then
+ vg:= VisualGearLayers[i mod 4];
+ while vg <> nil do
begin
- lastVisualGearByUID:= vg;
- VisualGearByUID:= vg;
- exit
- end;
- vg:= vg^.NextGear
- end;
-vg:= VisualGearsLayer2;
-while vg <> nil do
- begin
- if vg^.uid = uid then
- begin
- lastVisualGearByUID:= vg;
- VisualGearByUID:= vg;
- exit
- end;
- vg:= vg^.NextGear
- end;
-vg:= VisualGearsLayer3;
-while vg <> nil do
- begin
- if vg^.uid = uid then
- begin
- lastVisualGearByUID:= vg;
- VisualGearByUID:= vg;
- exit
- end;
- vg:= vg^.NextGear
+ if vg^.uid = uid then
+ begin
+ lastVisualGearByUID:= vg;
+ VisualGearByUID:= vg;
+ exit
+ end;
+ vg:= vg^.NextGear
+ end
end
end;
@@ -750,7 +730,7 @@
vg, tmp: PVisualGear;
begin
if cCloudsNumber = cSDCloudsNumber then exit;
-vg:= VisualGearsLayer0;
+vg:= VisualGearLayers[0];
while vg <> nil do
if vg^.Kind = vgtCloud then
begin
@@ -768,7 +748,7 @@
begin
if (cReducedQuality and rqKillFlakes) <> 0 then exit;
-if ((GameFlags and gfBorder) <> 0) or ((Theme <> 'Snow') and (Theme <> 'Christmas')) then
+if hasBorder or ((Theme <> 'Snow') and (Theme <> 'Christmas')) then
for i:= 0 to Pred(vobCount * cScreenSpace div LAND_WIDTH) do
AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake)
else
@@ -782,15 +762,18 @@
begin
if (cReducedQuality and rqKillFlakes) <> 0 then exit;
if vobCount = vobSDCount then exit;
-vg:= VisualGearsLayer0;
-while vg <> nil do
- if vg^.Kind = vgtFlake then
+for i:= 0 to 3 do
+ begin
+ vg:= VisualGearLayers[i];
+ while vg <> nil do
+ if vg^.Kind = vgtFlake then
begin
tmp:= vg^.NextGear;
DeleteVisualGear(vg);
vg:= tmp
end
- else vg:= vg^.NextGear;
+ else vg:= vg^.NextGear;
+ end;
if ((GameFlags and gfBorder) <> 0) or ((Theme <> 'Snow') and (Theme <> 'Christmas')) then
for i:= 0 to Pred(vobSDCount * cScreenSpace div LAND_WIDTH) do
AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake)
@@ -800,19 +783,17 @@
end;
procedure initModule;
+var i: LongWord;
begin
- VisualGearsLayer0:= nil;
- VisualGearsLayer1:= nil;
- VisualGearsLayer2:= nil;
- VisualGearsLayer3:= nil;
+for i:= 0 to 3 do
+ VisualGearLayers[i]:= nil;
end;
procedure freeModule;
+var i: LongWord;
begin
- while VisualGearsLayer0 <> nil do DeleteVisualGear(VisualGearsLayer0);
- while VisualGearsLayer1 <> nil do DeleteVisualGear(VisualGearsLayer1);
- while VisualGearsLayer2 <> nil do DeleteVisualGear(VisualGearsLayer2);
- while VisualGearsLayer3 <> nil do DeleteVisualGear(VisualGearsLayer3);
+for i:= 0 to 3 do
+ while VisualGearLayers[i] <> nil do DeleteVisualGear(VisualGearLayers[i]);
end;
end.
--- a/hedgewars/uWorld.pas Fri Oct 28 17:41:39 2011 +0200
+++ b/hedgewars/uWorld.pas Fri Oct 28 18:26:17 2011 +0200
@@ -536,7 +536,7 @@
var i, w, h, lw, lh, rw, rh, sw: LongInt;
begin
sw:= round(cScreenWidth / cScaleFactor);
- if ((SpritesData[sprL].Texture = nil) or (SpritesData[sprR].Texture = nil)) and (SpritesData[spr].Texture <> nil) then
+ if (SpritesData[sprL].Texture = nil) and (SpritesData[spr].Texture <> nil) then
begin
w:= SpritesData[spr].Width * SpritesData[spr].Texture^.Scale;
h:= SpritesData[spr].Height * SpritesData[spr].Texture^.Scale;
@@ -554,8 +554,11 @@
h:= SpritesData[spr].Height * SpritesData[spr].Texture^.Scale;
lw:= SpritesData[sprL].Width * SpritesData[spr].Texture^.Scale;
lh:= SpritesData[sprL].Height * SpritesData[spr].Texture^.Scale;
- rw:= SpritesData[sprR].Width * SpritesData[spr].Texture^.Scale;
- rh:= SpritesData[sprR].Height * SpritesData[spr].Texture^.Scale;
+ if SpritesData[sprR].Texture <> nil then
+ begin
+ rw:= SpritesData[sprR].Width * SpritesData[spr].Texture^.Scale;
+ rh:= SpritesData[sprR].Height * SpritesData[spr].Texture^.Scale
+ end;
dec(Shift, w div 2);
DrawTexture(Shift, WorldDy + LAND_HEIGHT + OffsetY - h, SpritesData[spr].Texture, SpritesData[spr].Texture^.Scale);
@@ -567,11 +570,18 @@
end;
i:= Shift + w;
- while i <= sw do
- begin
- DrawTexture(i, WorldDy + LAND_HEIGHT + OffsetY - rh, SpritesData[sprR].Texture, SpritesData[sprR].Texture^.Scale);
- inc(i, rw)
- end
+ if SpritesData[sprR].Texture <> nil then
+ while i <= sw do
+ begin
+ DrawTexture(i, WorldDy + LAND_HEIGHT + OffsetY - rh, SpritesData[sprR].Texture, SpritesData[sprR].Texture^.Scale);
+ inc(i, rw)
+ end
+ else
+ while i <= sw do
+ begin
+ DrawTexture(i, WorldDy + LAND_HEIGHT + OffsetY - lh, SpritesData[sprL].Texture, SpritesData[sprL].Texture^.Scale);
+ inc(i, lw)
+ end
end
end;
@@ -1201,7 +1211,7 @@
else
begin
CursorPoint.X:= (prevPoint.X * 7 + hwRound(FollowGear^.X) + hwSign(FollowGear^.dX) * z + WorldDx) div 8;
- if isPhone() then
+ if isPhone() or (cScreenHeight < 600) or ((hwSign(FollowGear^.dY) * z) < 10) then
CursorPoint.Y:= (prevPoint.Y * 7 + cScreenHeight - (hwRound(FollowGear^.Y) + WorldDy)) div 8
else
CursorPoint.Y:= (prevPoint.Y * 7 + cScreenHeight - (hwRound(FollowGear^.Y) + hwSign(FollowGear^.dY) * z + WorldDy)) div 8;
--- a/misc/libfreetype/Xcode-iPhoneOS/Freetype.xcodeproj/project.pbxproj Fri Oct 28 17:41:39 2011 +0200
+++ b/misc/libfreetype/Xcode-iPhoneOS/Freetype.xcodeproj/project.pbxproj Fri Oct 28 18:26:17 2011 +0200
@@ -1102,7 +1102,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../include\"";
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
OTHER_LDFLAGS = "-ObjC";
PREBINDING = NO;
SDKROOT = iphoneos;
@@ -1126,7 +1126,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../include\"";
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
OTHER_LDFLAGS = "-ObjC";
PREBINDING = NO;
SDKROOT = iphoneos;
--- a/misc/liblua/Xcode/Lua.xcodeproj/project.pbxproj Fri Oct 28 17:41:39 2011 +0200
+++ b/misc/liblua/Xcode/Lua.xcodeproj/project.pbxproj Fri Oct 28 18:26:17 2011 +0200
@@ -392,7 +392,7 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
OTHER_LDFLAGS = "-ObjC";
PREBINDING = NO;
SDKROOT = iphoneos;
@@ -410,7 +410,7 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
OTHER_LDFLAGS = "-ObjC";
PREBINDING = NO;
SDKROOT = iphoneos;
--- a/misc/libtremor/Xcode/Tremor.xcodeproj/project.pbxproj Fri Oct 28 17:41:39 2011 +0200
+++ b/misc/libtremor/Xcode/Tremor.xcodeproj/project.pbxproj Fri Oct 28 18:26:17 2011 +0200
@@ -312,7 +312,7 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
OTHER_LDFLAGS = "-ObjC";
PREBINDING = NO;
SDKROOT = iphoneos;
@@ -330,7 +330,7 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
OTHER_LDFLAGS = "-ObjC";
PREBINDING = NO;
SDKROOT = iphoneos;
--- a/project_files/HedgewarsMobile/Classes/AboutViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/AboutViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,7 @@
#import "AboutViewController.h"
-#import "CommodityFunctions.h"
+
@implementation AboutViewController
@synthesize tableView, segmentedControl, people;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/AboutViewController.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,658 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1024</int>
+ <string key="IBDocument.SystemVersion">10F569</string>
+ <string key="IBDocument.InterfaceBuilderVersion">804</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">123</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUINavigationBar" id="241300702">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">290</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUISegmentedControl" id="674364401">
+ <reference key="NSNextResponder" ref="241300702"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{127, 7}, {289, 30}}</string>
+ <reference key="NSSuperview" ref="241300702"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBSegmentControlStyle">2</int>
+ <int key="IBNumberOfSegments">5</int>
+ <int key="IBSelectedSegmentIndex">0</int>
+ <object class="NSArray" key="IBSegmentTitles">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Code</string>
+ <string>Art</string>
+ <string>Sound</string>
+ <string>Locale</string>
+ <string>Special</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentWidths">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentEnabledStates">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentContentOffsets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentImages">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSNull" id="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{543, 44}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSArray" key="IBUIItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUINavigationItem" id="824792699">
+ <reference key="IBUINavigationBar" ref="241300702"/>
+ <object class="IBUIBarButtonItem" key="IBUILeftBarButtonItem" id="322694234">
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIStyle">1</int>
+ <reference key="IBUINavigationItem" ref="824792699"/>
+ <int key="IBUISystemItemIdentifier">0</int>
+ </object>
+ <reference key="IBUITitleView" ref="674364401"/>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBUITableView" id="411460868">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{0, 44}, {543, 577}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAgMAA</bytes>
+ </object>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIAlwaysBounceVertical">YES</bool>
+ <int key="IBUIStyle">1</int>
+ <int key="IBUISeparatorStyle">2</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">10</float>
+ <float key="IBUISectionFooterHeight">10</float>
+ </object>
+ </object>
+ <string key="NSFrameSize">{543, 621}</string>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="322694234"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">8</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">dataSource</string>
+ <reference key="source" ref="411460868"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">12</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="411460868"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">13</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="411460868"/>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">segmentedControlChanged:</string>
+ <reference key="source" ref="674364401"/>
+ <reference key="destination" ref="841351856"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">15</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">segmentedControl</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="674364401"/>
+ </object>
+ <int key="connectionID">16</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="241300702"/>
+ <reference ref="411460868"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="241300702"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="824792699"/>
+ </object>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="824792699"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="322694234"/>
+ <reference ref="674364401"/>
+ </object>
+ <reference key="parent" ref="241300702"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="322694234"/>
+ <reference key="parent" ref="824792699"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="411460868"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="674364401"/>
+ <reference key="parent" ref="824792699"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>10.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>AboutViewController</string>
+ <string>UIResponder</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{376, 170}, {543, 621}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">16</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AboutViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">buttonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">segmentedControlChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>segmentedControl</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UISegmentedControl</string>
+ <string>UITableView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>segmentedControl</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">segmentedControl</string>
+ <string key="candidateClassName">UISegmentedControl</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/AboutViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarButtonItem</string>
+ <string key="superclassName">UIBarItem</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarItem</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UINavigationBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="802309264">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UINavigationItem</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="802309264"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISegmentedControl</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1024" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">123</string>
+ </data>
+</archive>
--- a/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -21,9 +21,7 @@
#import "AmmoMenuViewController.h"
#import <QuartzCore/QuartzCore.h>
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
-#import "PascalImports.h"
+
#define BTNS_PER_ROW 9
#define DEFAULT_DESCRIPTION IS_IPAD() ? \
@@ -92,7 +90,7 @@
int y = (HW_getNumberOfWeapons()/BTNS_PER_ROW)*44 + 18;
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake(x, y, 200, 20)];
name.backgroundColor = [UIColor clearColor];
- name.textColor = UICOLOR_HW_YELLOW_BODER;
+ name.textColor = [UIColor darkYellowColor];
name.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
self.nameLabel = name;
[self.view addSubview:self.nameLabel];
@@ -125,6 +123,7 @@
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *str = [NSString stringWithFormat:@"%@/AmmoMenu/Ammos.png",GRAPHICS_DIRECTORY()];
UIImage *ammoStoreImage = [[UIImage alloc] initWithContentsOfFile:str];
+ CGFloat theScale = [[UIScreen mainScreen] safeScale];
NSMutableArray *imgs = [[NSMutableArray alloc] initWithCapacity:HW_getNumberOfWeapons()];
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:HW_getNumberOfWeapons()];
@@ -152,14 +151,14 @@
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(x, y, 40, 40);
button.tag = i;
- button.layer.borderColor = [UICOLOR_HW_YELLOW_TEXT CGColor];
+ button.layer.borderColor = [[UIColor lightYellowColor] CGColor];
button.layer.borderWidth = w;
[button.layer setCornerRadius:radius];
[button.layer setMasksToBounds:YES];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(buttonReleased:) forControlEvents:UIControlEventTouchUpInside];
[button addTarget:self action:@selector(buttonCancelled:) forControlEvents:UIControlEventTouchUpOutside|UIControlEventTouchCancel];
- [button setTitleColor:UICOLOR_HW_YELLOW_TEXT forState:UIControlStateNormal];
+ [button setTitleColor:[UIColor lightYellowColor] forState:UIControlStateNormal];
button.titleLabel.backgroundColor = [UIColor blackColor];
button.titleLabel.font = [UIFont boldSystemFontOfSize:[UIFont smallSystemFontSize]];
[button.titleLabel.layer setCornerRadius:3];
@@ -169,9 +168,9 @@
[self.view addSubview:button];
[array addObject:button];
- int size = 32*getScreenScale();
- int x_src = ((i*size)/(int)(ammoStoreImage.size.height*getScreenScale()))*size;
- int y_src = (i*size)%(int)(ammoStoreImage.size.height*getScreenScale());
+ int size = 32 * theScale;
+ int x_src = ((i*size)/(int)(ammoStoreImage.size.height * theScale))*size;
+ int y_src = (i*size)%(int)(ammoStoreImage.size.height * theScale);
UIImage *img = [ammoStoreImage cutAt:CGRectMake(x_src, y_src, size, size)];
[imgs addObject:img];
}
@@ -221,7 +220,7 @@
shouldUpdateImage[i] = YES;
}
} else {
- button.layer.borderColor = [UICOLOR_HW_YELLOW_TEXT CGColor];
+ button.layer.borderColor = [[UIColor lightYellowColor] CGColor];
[button setTitle:nil forState:UIControlStateNormal];
if (button.currentBackgroundImage == nil || shouldUpdateImage[i] == YES) {
UIImage *img = [self.imagesArray objectAtIndex:i];
--- a/project_files/HedgewarsMobile/Classes/Appirater.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/Appirater.m Fri Oct 28 18:26:17 2011 +0200
@@ -37,7 +37,7 @@
#import "Appirater.h"
#import <SystemConfiguration/SCNetworkReachability.h>
#import <netinet/in.h>
-#import "CommodityFunctions.h"
+#import "ServerSetup.h"
NSString *const kAppiraterLaunchDate = @"kAppiraterLaunchDate";
NSString *const kAppiraterLaunchCount = @"kAppiraterLaunchCount";
@@ -106,7 +106,7 @@
launchCount > LAUNCHES_UNTIL_PROMPT &&
!declinedToRate &&
!ratedApp) {
- if (isNetworkReachable()) { // check if they can reach the app store
+ if ([ServerSetup isNetworkReachable]) { // check if they can reach the app store
willShowPrompt = YES;
[self performSelectorOnMainThread:@selector(showPrompt) withObject:nil waitUntilDone:NO];
}
--- a/project_files/HedgewarsMobile/Classes/AudioManagerController.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/AudioManagerController.h Fri Oct 28 18:26:17 2011 +0200
@@ -34,6 +34,6 @@
+(void) playBackSound;
+(void) playSelectSound;
-+(void) cleanupMemory;
++(void) releaseCache;
@end
--- a/project_files/HedgewarsMobile/Classes/AudioManagerController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/AudioManagerController.m Fri Oct 28 18:26:17 2011 +0200
@@ -108,7 +108,7 @@
#pragma mark -
#pragma mark memory management
-+(void) cleanupMemory {
++(void) releaseCache {
[backgroundMusic stop];
[backgroundMusic release], backgroundMusic = nil;
AudioServicesDisposeSystemSoundID(clickSound), clickSound = -1;
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * File created on 08/04/2010.
- */
-
-
-#import <Foundation/Foundation.h>
-
-#define DOCUMENTS_FOLDER() [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
-
-#define DEBUG_FILE() [DOCUMENTS_FOLDER() stringByAppendingString:@"/hw-game.log"]
-#define BASICFLAGS_FILE() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Settings/basicFlags.plist"]
-#define GAMEMODS_FILE() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Settings/gameMods.plist"]
-#define CREDITS_FILE() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Settings/credits.plist"]
-
-#define TEAMS_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Teams/"]
-#define WEAPONS_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Weapons/"]
-#define SCHEMES_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Schemes/"]
-#define SAVES_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Saves/"]
-
-#define GRAPHICS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/"]
-#define ICONS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Icons/"]
-#define HATS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Hats/"]
-#define GRAVES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Graves/"]
-#define FLAGS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Flags/"]
-#define FORTS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Forts/"]
-#define VOICES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Sounds/voices/"]
-#define THEMES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Themes/"]
-#define MAPS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Maps/"]
-#define MISSIONS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Missions/Maps/"]
-#define LOCALE_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Locale/"]
-#define SCRIPTS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Scripts/plist/"]
-
-#define MSG_MEMCLEAN() DLog(@"has cleaned up some memory");
-#define MSG_DIDUNLOAD() DLog(@"unloaded");
-
-#define UICOLOR_HW_YELLOW_BODER [UIColor colorWithRed:(CGFloat)0xFE/255 green:(CGFloat)0xC0/255 blue:0 alpha:1]
-#define UICOLOR_HW_YELLOW_TEXT [UIColor colorWithRed:(CGFloat)0xF0/255 green:(CGFloat)0xD0/255 blue:0 alpha:1]
-#define UICOLOR_HW_DARKBLUE [UIColor colorWithRed:(CGFloat)0x0F/255 green:0 blue:(CGFloat)0x42/255 alpha:1]
-#define UICOLOR_HW_ALPHABLUE [UIColor colorWithRed:(CGFloat)0x0F/255 green:0 blue:(CGFloat)0x42/255 alpha:0.58f]
-#define UICOLOR_HW_ALMOSTBLACK (IS_NOT_POWERFUL(getModelType())) ? [UIColor blackColor] : [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6]
-
-#define IS_DUALHEAD() ([[UIScreen class] respondsToSelector:@selector(screens)] && [[UIScreen screens] count] > 1)
-#define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
-#define IS_NOT_POWERFUL(x) ([x hasPrefix:@"iPhone1"] || [x hasPrefix:@"iPod1,1"] || [x hasPrefix:@"iPod2,1"])
-#define IS_NOT_VERY_POWERFUL(x) ([x hasPrefix:@"iPad1"] || [x hasPrefix:@"iPhone2"] || [x hasPrefix:@"iPod3"] || [x hasPrefix:@"iPod4"])
-#define IS_VERY_POWERFUL(x) (IS_NOT_POWERFUL(x) == NO && IS_NOT_VERY_POWERFUL(x) == NO)
-
-#define UIVIEW_HW_SDLVIEW [[[[UIApplication sharedApplication] keyWindow] subviews] objectAtIndex:0]
-
-void print_free_memory (void);
-NSInteger randomPort (void);
-
-NSString *getModelType (void);
-NSArray *getAvailableColors (void);
-
-UILabel *createBlueLabel (NSString *title, CGRect frame);
-UILabel *createLabelWithParams (NSString *title, CGRect frame, CGFloat borderWidth, UIColor *borderColor, UIColor *backgroundColor);
-
-CGSize PSPNGSizeFromMetaData (NSString *aFileName);
-BOOL isNetworkReachable (void);
-
-@interface NSString (extra)
-
--(NSString *) MD5hash;
-
-@end
-
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * File created on 08/04/2010.
- */
-
-
-#import "CommodityFunctions.h"
-#import <sys/types.h>
-#import <sys/sysctl.h>
-#import <mach/mach.h>
-#import <mach/mach_host.h>
-#import <QuartzCore/QuartzCore.h>
-#import <CommonCrypto/CommonDigest.h>
-#import <SystemConfiguration/SCNetworkReachability.h>
-#import <netinet/in.h>
-#import "PascalImports.h"
-#import "hwconsts.h"
-
-
-NSInteger inline randomPort () {
- srandom(time(NULL));
- NSInteger res = (random() % 64511) + 1024;
- return (res == NETGAME_DEFAULT_PORT) ? randomPort() : res;
-}
-
-// by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
-void print_free_memory () {
-#ifdef DEBUG
- mach_port_t host_port;
- mach_msg_type_number_t host_size;
- vm_size_t pagesize;
-
- host_port = mach_host_self();
- host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
- host_page_size(host_port, &pagesize);
-
- vm_statistics_data_t vm_stat;
-
- if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS)
- DLog(@"Failed to fetch vm statistics");
-
- /* Stats in bytes */
- natural_t mem_used = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) * pagesize;
- natural_t mem_free = vm_stat.free_count * pagesize;
- natural_t mem_total = mem_used + mem_free;
- DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
-#endif
-}
-
-NSString *getModelType () {
- size_t size;
- // set 'oldp' parameter to NULL to get the size of the data returned so we can allocate appropriate amount of space
- sysctlbyname("hw.machine", NULL, &size, NULL, 0);
- char *name = (char *)malloc(sizeof(char) * size);
- // get the platform name
- sysctlbyname("hw.machine", name, &size, NULL, 0);
- NSString *modelId = [NSString stringWithUTF8String:name];
- free(name);
-
- return modelId;
-}
-
-NSArray *getAvailableColors (void) {
- // by default colors are ARGB but we do computation over RGB, hence we have to "& 0x00FFFFFF" before processing
- unsigned int colors[] = HW_TEAMCOLOR_ARRAY;
- NSMutableArray *array = [[NSMutableArray alloc] init];
-
- int i = 0;
- while(colors[i] != 0)
- [array addObject:[NSNumber numberWithUnsignedInt:(colors[i++] & 0x00FFFFFF)]];
-
- NSArray *final = [NSArray arrayWithArray:array];
- [array release];
- return final;
-}
-
-UILabel *createBlueLabel (NSString *title, CGRect frame) {
- return createLabelWithParams(title, frame, 1.5f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_DARKBLUE);
-}
-
-UILabel *createLabelWithParams (NSString *title, CGRect frame, CGFloat borderWidth, UIColor *borderColor, UIColor *backgroundColor) {
- UILabel *theLabel = [[UILabel alloc] initWithFrame:frame];
- theLabel.backgroundColor = backgroundColor;
-
- if (title != nil) {
- theLabel.text = title;
- theLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
- theLabel.textAlignment = UITextAlignmentCenter;
- theLabel.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]*80/100];
- }
-
- [theLabel.layer setBorderWidth:borderWidth];
- [theLabel.layer setBorderColor:borderColor.CGColor];
- [theLabel.layer setCornerRadius:8.0f];
- [theLabel.layer setMasksToBounds:YES];
-
- return theLabel;
-}
-
-BOOL isNetworkReachable (void) {
- // Create zero addy
- struct sockaddr_in zeroAddress;
- bzero(&zeroAddress, sizeof(zeroAddress));
- zeroAddress.sin_len = sizeof(zeroAddress);
- zeroAddress.sin_family = AF_INET;
-
- // Recover reachability flags
- SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
- SCNetworkReachabilityFlags flags;
-
- BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
- CFRelease(defaultRouteReachability);
-
- if (!didRetrieveFlags) {
- NSLog(@"Error. Could not recover network reachability flags");
- return NO;
- }
-
- BOOL isReachable = flags & kSCNetworkFlagsReachable;
- BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
- BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
-
- NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
- NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL
- cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
- timeoutInterval:20.0];
- NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:nil];
- BOOL testResult = testConnection ? YES : NO;
- [testConnection release];
-
- return ((isReachable && !needsConnection) || nonWiFi) ? testResult : NO;
-}
-
-// this routine checks for the PNG size without loading it in memory
-// https://github.com/steipete/PSFramework/blob/master/PSFramework%20Version%200.3/PhotoshopFramework/PSMetaDataFunctions.m
-CGSize PSPNGSizeFromMetaData (NSString *aFileName) {
- // File Name to C String.
- const char *fileName = [aFileName UTF8String];
- // source file
- FILE *infile = fopen(fileName, "rb");
- if (infile == NULL) {
- DLog(@"Can't open the file: %@", aFileName);
- return CGSizeZero;
- }
-
- // Bytes Buffer.
- unsigned char buffer[30];
- // Grab Only First Bytes.
- fread(buffer, 1, 30, infile);
- // Close File.
- fclose(infile);
-
- // PNG Signature.
- unsigned char png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
-
- // Compare File signature.
- if ((int)(memcmp(&buffer[0], &png_signature[0], 8))) {
- DLog(@"The file (%@) is not a PNG file", aFileName);
- return CGSizeZero;
- }
-
- // Calc Sizes. Isolate only four bytes of each size (width, height).
- int width[4];
- int height[4];
- for (int d = 16; d < (16 + 4); d++) {
- width[d-16] = buffer[d];
- height[d-16] = buffer[d+4];
- }
-
- // Convert bytes to Long (Integer)
- long resultWidth = (width[0] << (int)24) | (width[1] << (int)16) | (width[2] << (int)8) | width[3];
- long resultHeight = (height[0] << (int)24) | (height[1] << (int)16) | (height[2] << (int)8) | height[3];
-
- // Return Size.
- return CGSizeMake(resultWidth,resultHeight);
-}
-
-@implementation NSString (extra)
-
--(NSString *)MD5hash {
- const char *cStr = [self UTF8String];
- unsigned char result[16];
- CC_MD5( cStr, strlen(cStr), result );
- return [NSString stringWithFormat:
- @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
- result[0], result[1], result[2], result[3], result[4], result[5],
- result[6], result[7], result[8], result[9], result[10], result[11],
- result[12], result[13], result[14], result[15]];
-}
-
-
-@end
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.h Fri Oct 28 18:26:17 2011 +0200
@@ -21,7 +21,21 @@
#import <Foundation/Foundation.h>
-void createSettings (void);
-void createTeamNamed (NSString *nameWithoutExt);
-void createWeaponNamed (NSString *nameWithoutExt, int type);
-void createSchemeNamed (NSString *nameWithoutExt, int type);
+@interface CreationChamber : NSObject {
+
+}
+
++(void) createSettings;
+
++(void) createTeamNamed:(NSString *)nameWithoutExt;
++(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type;
++(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type controlledByAI:(BOOL) shouldAITakeOver;
+
++(void) createWeaponNamed:(NSString *)nameWithoutExt;
++(void) createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type;
+
++(void) createSchemeNamed:(NSString *)nameWithoutExt;
++(void) createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type;
+
+@end
+
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m Fri Oct 28 18:26:17 2011 +0200
@@ -22,7 +22,11 @@
#import "CreationChamber.h"
#import "hwconsts.h"
-void createSettings () {
+
+@implementation CreationChamber
+
+#pragma mark Settings
++(void) createSettings {
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
[settings setObject:[NSNumber numberWithBool:NO] forKey:@"alternate"];
[settings setObject:[NSNumber numberWithBool:YES] forKey:@"music"];
@@ -39,7 +43,16 @@
[settings synchronize];
}
-void createTeamNamed (NSString *nameWithoutExt) {
+#pragma mark Teams
++(void) createTeamNamed:(NSString *)nameWithoutExt {
+ [CreationChamber createTeamNamed:nameWithoutExt ofType:0 controlledByAI:NO];
+}
+
++(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type {
+ [CreationChamber createTeamNamed:nameWithoutExt ofType:type controlledByAI:NO];
+}
+
++(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type controlledByAI:(BOOL) shouldAITakeOver {
NSString *teamsDirectory = TEAMS_DIRECTORY();
if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
@@ -49,26 +62,68 @@
error:NULL];
}
- NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: HW_getMaxNumberOfHogs()];
+ NSArray *customNames;
+ NSArray *customHats;
+ NSString *flag, *grave, *voicepack, *fort;
+ switch (type) {
+ default: // default
+ customNames = [[NSArray alloc] initWithObjects:@"No Name",@"Unnamed",@"Anonymous",@"Nameless",@"Incognito",@"Unidentified",
+ @"Uknown",@"Secret",nil];
+ customHats = [[NSArray alloc] initWithObjects:@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",nil];
+ flag = @"hedgewars";
+ grave = @"Statue";
+ voicepack = @"Default";
+ fort = @"Plane";
+ break;
+ case 1: // ninjas
+ customNames = [[NSArray alloc] initWithObjects:@"Shinobi",@"Ukemi",@"Godai",@"Ninpo",@"Tatsujin",@"Arashi",@"Bushi",@"Itami",nil];
+ customHats = [[NSArray alloc] initWithObjects:@"NinjaFull",@"NinjaStraight",@"NinjaTriangle",@"NinjaFull",@"NinjaStraight",
+ @"NinjaTriangle",@"NinjaFull",@"NinjaTriangle",nil];
+ flag = @"japan";
+ grave = @"bp2";
+ voicepack = @"Singer";
+ fort = @"Wood";
+ break;
+ case 2: // pirates
+ customNames = [[NSArray alloc] initWithObjects:@"Toothless Wayne",@"Long-nose Kidd",@"Eye-patch Jim",@"Rackham Blood",@"One-eyed Ayee",
+ @"Dirty Ben",@"Morris",@"Cruise Seymour",nil];
+ customHats = [[NSArray alloc] initWithObjects:@"pirate_jack_bandana",@"pirate_jack",@"dwarf",@"pirate_jack_bandana",@"pirate_jack",
+ @"dwarf",@"pirate_jack_bandana",@"pirate_jack",nil];
+ flag = @"cm_pirate";
+ grave = @"chest";
+ voicepack = @"Pirate";
+ fort = @"Hydrant";
+ break;
+ case 3: // robots
+ customNames = [[NSArray alloc] initWithObjects:@"HAL",@"R2-D2",@"Wall-E",@"Robocop",@"Optimus Prime",@"Terminator",@"C-3PO",@"KITT",nil];
+ customHats = [[NSArray alloc] initWithObjects:@"cyborg1",@"cyborg2",@"cyborg1",@"cyborg2",@"cyborg1",@"cyborg2",@"cyborg1",
+ @"cyborg2",nil];
+ flag = @"cm_binary";
+ grave = @"Rip";
+ voicepack = @"Robot";
+ fort = @"UFO";
+ break;
+ }
+ NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity:HW_getMaxNumberOfHogs()];
for (int i = 0; i < HW_getMaxNumberOfHogs(); i++) {
- NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys:
- [NSNumber numberWithInt:0],@"level",
- hogName,@"hogname",
- @"NoHat",@"hat",
+ [NSNumber numberWithInt:(shouldAITakeOver ? 4 : 0)],@"level",
+ [customNames objectAtIndex:i],@"hogname",
+ [customHats objectAtIndex:i],@"hat",
nil];
- [hogName release];
[hedgehogs addObject:hog];
[hog release];
}
+ [customHats release];
+ [customNames release];
NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:
@"0",@"hash",
- @"Statue",@"grave",
- @"Plane",@"fort",
- @"Default",@"voicepack",
- @"hedgewars",@"flag",
+ grave,@"grave",
+ fort,@"fort",
+ voicepack,@"voicepack",
+ flag,@"flag",
hedgehogs,@"hedgehogs",
nil];
[hedgehogs release];
@@ -80,7 +135,12 @@
[theTeam release];
}
-void createWeaponNamed (NSString *nameWithoutExt, int type) {
+#pragma mark Weapons
++(void) createWeaponNamed:(NSString *)nameWithoutExt {
+ [CreationChamber createWeaponNamed:nameWithoutExt ofType:0];
+}
+
++(void) createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type {
NSString *weaponsDirectory = WEAPONS_DIRECTORY();
if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
@@ -99,37 +159,37 @@
delay = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
crate = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
break;
- case 1: //crazy
+ case 1: //crazy
qt = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_QT length:ammolineSize encoding:NSUTF8StringEncoding];
prob = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
delay = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
crate = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
break;
- case 2: //pro mode
+ case 2: //pro mode
qt = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_QT length:ammolineSize encoding:NSUTF8StringEncoding];
prob = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
delay = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
crate = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
break;
- case 3: //shoppa
+ case 3: //shoppa
qt = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_QT length:ammolineSize encoding:NSUTF8StringEncoding];
prob = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
delay = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
crate = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
break;
- case 4: //clean slate
+ case 4: //clean slate
qt = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_QT length:ammolineSize encoding:NSUTF8StringEncoding];
prob = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
delay = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
crate = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
break;
- case 5: //minefield
+ case 5: //minefield
qt = [[NSString alloc] initWithBytes:AMMOLINE_MINES_QT length:ammolineSize encoding:NSUTF8StringEncoding];
prob = [[NSString alloc] initWithBytes:AMMOLINE_MINES_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
delay = [[NSString alloc] initWithBytes:AMMOLINE_MINES_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
crate = [[NSString alloc] initWithBytes:AMMOLINE_MINES_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
break;
- case 6: //thinking with portals
+ case 6: //thinking with portals
qt = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_QT length:ammolineSize encoding:NSUTF8StringEncoding];
prob = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
delay = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
@@ -150,7 +210,12 @@
[theWeapon release];
}
-void createSchemeNamed (NSString *nameWithoutExt, int type) {
+#pragma mark Schemes
++(void) createSchemeNamed:(NSString *)nameWithoutExt {
+ [CreationChamber createSchemeNamed:nameWithoutExt ofType:0];
+}
+
++(void) createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type {
NSString *schemesDirectory = SCHEMES_DIRECTORY();
if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
@@ -174,17 +239,17 @@
[mods release];
switch (type) {
- case 0: // default
+ default: // default
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
break;
- case 1: // pro mode
+ case 1: // pro mode
[basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:15]];
[basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:0]];
[basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
break;
- case 2: // shoppa
+ case 2: // shoppa
[basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
[basicArray replaceObjectAtIndex:3 withObject:[NSNumber numberWithInt:50]];
[basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:1]];
@@ -199,13 +264,13 @@
[gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:19 withObject:[NSNumber numberWithBool:YES]];
break;
- case 3: // clean slate
+ case 3: // clean slate
[gamemodArray replaceObjectAtIndex:6 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:18 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:19 withObject:[NSNumber numberWithBool:YES]];
break;
- case 4: // minefield
+ case 4: // minefield
[basicArray replaceObjectAtIndex:0 withObject:[NSNumber numberWithInt:50]];
[basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
[basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:0]];
@@ -216,7 +281,7 @@
[gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
break;
- case 5: // barrel mayhem
+ case 5: // barrel mayhem
[basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
[basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:0]];
[basicArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithInt:0]];
@@ -225,7 +290,7 @@
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
break;
- case 6: // tunnel hogs
+ case 6: // tunnel hogs
[basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
[basicArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithInt:3]];
[basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:10]];
@@ -237,7 +302,7 @@
[gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:16 withObject:[NSNumber numberWithBool:YES]];
break;
- case 7: // fort mode
+ case 7: // fort mode
[basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
[basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:0]];
[gamemodArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithBool:YES]];
@@ -245,7 +310,7 @@
[gamemodArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
break;
- case 8: // timeless
+ case 8: // timeless
[basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:100]];
[basicArray replaceObjectAtIndex:4 withObject:[NSNumber numberWithInt:0]];
[basicArray replaceObjectAtIndex:5 withObject:[NSNumber numberWithInt:0]];
@@ -256,7 +321,7 @@
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:20 withObject:[NSNumber numberWithBool:YES]];
break;
- case 9: // thinking with portals
+ case 9: // thinking with portals
[basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:2]];
[basicArray replaceObjectAtIndex:8 withObject:[NSNumber numberWithInt:25]];
[basicArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithInt:4]];
@@ -265,13 +330,10 @@
[gamemodArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
break;
- case 10:// king mode
+ case 10: // king mode
[gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
[gamemodArray replaceObjectAtIndex:12 withObject:[NSNumber numberWithBool:YES]];
break;
- default:
- DLog(@"Impossible");
- break;
}
NSMutableDictionary *theScheme = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
@@ -287,3 +349,5 @@
[schemeFile release];
[theScheme release];
}
+
+@end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/DefinesAndMacros.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,83 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 01/10/2011.
+ */
+
+
+// some macros by http://www.cimgf.com/2010/05/02/my-current-prefix-pch-file/
+// and http://blog.coriolis.ch/2009/01/05/macros-for-xcode/
+
+
+#ifdef DEBUG
+ #define DLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
+ #define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
+ #define releaseAndNil(x) [x release]
+#else
+ #define DLog(...) do { } while (0)
+ #ifndef NS_BLOCK_ASSERTIONS
+ #define NS_BLOCK_ASSERTIONS
+ #endif
+ #define ALog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
+ #define releaseAndNil(x) [x release], x = nil
+#endif
+
+
+#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)
+#define rotationManager(x) (x == UIInterfaceOrientationLandscapeRight) || (x == UIInterfaceOrientationLandscapeLeft)
+
+#define START_TIMER NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];
+#define END_TIMER(msg) NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate]; CMLog([NSString stringWithFormat:@"%@ Time = %f", msg, stop-start]);
+
+
+#define DOCUMENTS_FOLDER() [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
+
+#define DEBUG_FILE() [DOCUMENTS_FOLDER() stringByAppendingString:@"/hw-game.log"]
+#define BASICFLAGS_FILE() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/basicFlags.plist"]
+#define GAMEMODS_FILE() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/gameMods.plist"]
+#define CREDITS_FILE() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/credits.plist"]
+
+#define TEAMS_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Teams/"]
+#define WEAPONS_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Weapons/"]
+#define SCHEMES_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Schemes/"]
+#define SAVES_DIRECTORY() [DOCUMENTS_FOLDER() stringByAppendingString:@"/Saves/"]
+
+#define GRAPHICS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/"]
+#define ICONS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Icons/"]
+#define HATS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Hats/"]
+#define GRAVES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Graves/"]
+#define FLAGS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Flags/"]
+#define FORTS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Forts/"]
+#define VOICES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Sounds/voices/"]
+#define THEMES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Themes/"]
+#define MAPS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Maps/"]
+#define MISSIONS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Missions/Maps/"]
+#define TRAININGS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Missions/Training/"]
+#define LOCALE_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Locale/"]
+#define SCRIPTS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Scripts/plist/"]
+
+#define MSG_MEMCLEAN() DLog(@"has cleaned up some memory");
+#define MSG_DIDUNLOAD() DLog(@"unloaded");
+
+#define IS_DUALHEAD() ([[UIScreen class] respondsToSelector:@selector(screens)] && [[UIScreen screens] count] > 1)
+#define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
+#define IS_NOT_POWERFUL(x) ([x hasPrefix:@"iPhone1"] || [x hasPrefix:@"iPod1,1"] || [x hasPrefix:@"iPod2,1"])
+#define IS_NOT_VERY_POWERFUL(x) ([x hasPrefix:@"iPad1"] || [x hasPrefix:@"iPhone2"] || [x hasPrefix:@"iPod3"] || [x hasPrefix:@"iPod4"])
+#define IS_VERY_POWERFUL(x) (IS_NOT_POWERFUL(x) == NO && IS_NOT_VERY_POWERFUL(x) == NO)
+
+#define UIVIEW_HW_SDLVIEW [[[[UIApplication sharedApplication] keyWindow] subviews] objectAtIndex:0]
+
--- a/project_files/HedgewarsMobile/Classes/EditableCellView.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/EditableCellView.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,7 @@
#import "EditableCellView.h"
-#import "CommodityFunctions.h"
+
@implementation EditableCellView
@synthesize delegate, textField, titleLabel, minimumCharacters, maximumCharacters, respectEditing, oldValue;
--- a/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,10 +20,9 @@
#import "EngineProtocolNetwork.h"
-#import "PascalImports.h"
-#import "CommodityFunctions.h"
#import "OverlayViewController.h"
+
#define BUFFER_SIZE 255 // like in original frontend
@implementation EngineProtocolNetwork
@@ -62,7 +61,7 @@
#pragma mark -
#pragma mark Spawner functions
-(void) spawnThread:(NSString *)onSaveFile withOptions:(NSDictionary *)dictionary {
- self.stream = [[NSOutputStream alloc] initToFileAtPath:onSaveFile append:YES];
+ self.stream = (onSaveFile) ? [[NSOutputStream alloc] initToFileAtPath:onSaveFile append:YES] : nil;
[self.stream open];
[NSThread detachNewThreadSelector:@selector(engineProtocol:)
@@ -289,6 +288,9 @@
NSString *script = [gameConfig objectForKey:@"mission_command"];
if ([script length] != 0)
[self sendToEngine:script];
+ // missions/tranings only need the script configuration set
+ if ([gameConfig count] == 1)
+ break;
// seed info
[self sendToEngine:[gameConfig objectForKey:@"seed_command"]];
--- a/project_files/HedgewarsMobile/Classes/FlagsViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/FlagsViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -21,7 +21,7 @@
#import "FlagsViewController.h"
#import <QuartzCore/QuartzCore.h>
-#import "CommodityFunctions.h"
+
@implementation FlagsViewController
@synthesize teamDictionary, flagArray, communityArray, lastIndexPath;
@@ -100,8 +100,9 @@
UIImage *flagSprite = [[UIImage alloc] initWithContentsOfFile:flagFile];
[flagFile release];
cell.imageView.image = flagSprite;
- cell.imageView.layer.borderWidth = 0.3;
[flagSprite release];
+ cell.imageView.layer.borderWidth = 1;
+ cell.imageView.layer.borderColor = [[UIColor blackColor] CGColor];
cell.textLabel.text = [[source objectAtIndex:row] stringByDeletingPathExtension];
if ([[flagName stringByDeletingPathExtension] isEqualToString:[self.teamDictionary objectForKey:@"flag"]]) {
--- a/project_files/HedgewarsMobile/Classes/FortsViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/FortsViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,8 +20,7 @@
#import "FortsViewController.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
+
#define IMGNUM_PER_FORT 6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController-iPad.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="109536142">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrameSize">{1024, 768}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIAutoresizesSubviews">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">background.png</string>
+ </object>
+ </object>
+ <object class="IBUIImageView" id="533754865">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{357, 17}, {309, 165}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">title~iphone.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="410546531">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{441, 702}, {142, 64}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">1</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="243320520">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="473179629">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="702849038">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">startGameButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="495854712">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 693}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="243320520"/>
+ <reference key="IBUIHighlightedTitleColor" ref="473179629"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="702849038"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">backButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="688316814">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{940, 693}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">2</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="243320520"/>
+ <reference key="IBUIHighlightedTitleColor" ref="473179629"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="702849038"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIView" id="123574818">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">278</int>
+ <string key="NSFrame">{{0, 60}, {320, 620}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <object class="NSColor" key="IBUIBackgroundColor" id="720784738">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="983956256">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">277</int>
+ <string key="NSFrame">{{337, 187}, {350, 505}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <reference key="IBUIBackgroundColor" ref="720784738"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUISlider" id="1000322445">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{269, 724}, {150, 23}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <float key="IBUIValue">0.05000000074505806</float>
+ <float key="IBUIMaxValue">0.05000000074505806</float>
+ </object>
+ <object class="IBUILabel" id="66923483">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{121, 720}, {148, 30}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Label</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Oblique</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ </object>
+ <string key="NSFrameSize">{1024, 768}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="IBUIBackgroundColor" ref="473179629"/>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIViewController" id="1023023363">
+ <bool key="IBUIAutoresizesArchivedViewToFullSize">NO</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics" id="158576700">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIHorizontal">YES</bool>
+ </object>
+ <object class="IBUIViewController" id="487135035">
+ <bool key="IBUIAutoresizesArchivedViewToFullSize">NO</bool>
+ <reference key="IBUISimulatedOrientationMetrics" ref="158576700"/>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIHorizontal">YES</bool>
+ </object>
+ <object class="IBUIViewController" id="670598485">
+ <bool key="IBUIAutoresizesArchivedViewToFullSize">NO</bool>
+ <string key="IBUINibName">MapConfigViewController-iPad</string>
+ <reference key="IBUISimulatedOrientationMetrics" ref="158576700"/>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIHorizontal">YES</bool>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="495854712"/>
+ <reference key="destination" ref="841351856"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">35</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="410546531"/>
+ <reference key="destination" ref="841351856"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">36</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="688316814"/>
+ <reference key="destination" ref="841351856"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">37</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">teamConfigViewController</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="487135035"/>
+ </object>
+ <int key="connectionID">45</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="487135035"/>
+ <reference key="destination" ref="983956256"/>
+ </object>
+ <int key="connectionID">47</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="1023023363"/>
+ <reference key="destination" ref="123574818"/>
+ </object>
+ <int key="connectionID">50</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">schemeWeaponConfigViewController</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="1023023363"/>
+ </object>
+ <int key="connectionID">51</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">mapConfigViewController</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="670598485"/>
+ </object>
+ <int key="connectionID">57</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">slider</string>
+ <reference key="source" ref="670598485"/>
+ <reference key="destination" ref="1000322445"/>
+ </object>
+ <int key="connectionID">61</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">sizeLabel</string>
+ <reference key="source" ref="670598485"/>
+ <reference key="destination" ref="66923483"/>
+ </object>
+ <int key="connectionID">65</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">sliderChanged:</string>
+ <reference key="source" ref="1000322445"/>
+ <reference key="destination" ref="670598485"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">66</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">sliderEndedChanging:</string>
+ <reference key="source" ref="1000322445"/>
+ <reference key="destination" ref="670598485"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">67</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="109536142"/>
+ <reference ref="533754865"/>
+ <reference ref="410546531"/>
+ <reference ref="495854712"/>
+ <reference ref="688316814"/>
+ <reference ref="123574818"/>
+ <reference ref="983956256"/>
+ <reference ref="1000322445"/>
+ <reference ref="66923483"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">30</int>
+ <reference key="object" ref="109536142"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">Background</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">31</int>
+ <reference key="object" ref="533754865"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">Title</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">32</int>
+ <reference key="object" ref="410546531"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">Start Button</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">33</int>
+ <reference key="object" ref="495854712"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">Back Button</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">34</int>
+ <reference key="object" ref="688316814"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">Help Button</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">44</int>
+ <reference key="object" ref="487135035"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">46</int>
+ <reference key="object" ref="983956256"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">TeamConfigViewController View</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">48</int>
+ <reference key="object" ref="1023023363"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">49</int>
+ <reference key="object" ref="123574818"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">SchemeWeaponConfigViewController View</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">55</int>
+ <reference key="object" ref="670598485"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">60</int>
+ <reference key="object" ref="1000322445"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">Filter Slider</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">64</int>
+ <reference key="object" ref="66923483"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">Filter Label</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>30.IBPluginDependency</string>
+ <string>30.IBViewBoundsToFrameTransform</string>
+ <string>31.IBPluginDependency</string>
+ <string>31.IBViewBoundsToFrameTransform</string>
+ <string>32.IBPluginDependency</string>
+ <string>32.IBViewBoundsToFrameTransform</string>
+ <string>33.IBPluginDependency</string>
+ <string>33.IBViewBoundsToFrameTransform</string>
+ <string>34.IBPluginDependency</string>
+ <string>34.IBViewBoundsToFrameTransform</string>
+ <string>44.CustomClassName</string>
+ <string>44.IBEditorWindowLastContentRect</string>
+ <string>44.IBPluginDependency</string>
+ <string>46.IBPluginDependency</string>
+ <string>46.IBViewBoundsToFrameTransform</string>
+ <string>48.CustomClassName</string>
+ <string>48.IBEditorWindowLastContentRect</string>
+ <string>48.IBPluginDependency</string>
+ <string>49.IBPluginDependency</string>
+ <string>49.IBViewBoundsToFrameTransform</string>
+ <string>55.CustomClassName</string>
+ <string>55.IBEditorWindowLastContentRect</string>
+ <string>55.IBPluginDependency</string>
+ <string>60.IBPluginDependency</string>
+ <string>60.IBViewBoundsToFrameTransform</string>
+ <string>64.IBPluginDependency</string>
+ <string>64.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>GameConfigViewController</string>
+ <string>UIResponder</string>
+ <string>{{289, 287}, {1024, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABAoAAAxLrgAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDtQAAxGNAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABD3wAAxLqgAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABByAAAxLmAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABEbEAAxLmAAA</bytes>
+ </object>
+ <string>TeamConfigViewController</string>
+ <string>{{63, 355}, {1024, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUOogABDOwAAA</bytes>
+ </object>
+ <string>SchemeWeaponConfigViewController</string>
+ <string>{{84, 388}, {1024, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAxHqAAA</bytes>
+ </object>
+ <string>MapConfigViewController</string>
+ <string>{{126, 377}, {1024, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUNRAABEMoAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAADCtgAAxDoAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">67</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">GameConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>segmentPressed:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>segmentPressed:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">buttonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">segmentPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapConfigViewController</string>
+ <string>schemeWeaponConfigViewController</string>
+ <string>teamConfigViewController</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MapConfigViewController</string>
+ <string>SchemeWeaponConfigViewController</string>
+ <string>TeamConfigViewController</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapConfigViewController</string>
+ <string>schemeWeaponConfigViewController</string>
+ <string>teamConfigViewController</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">mapConfigViewController</string>
+ <string key="candidateClassName">MapConfigViewController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">schemeWeaponConfigViewController</string>
+ <string key="candidateClassName">SchemeWeaponConfigViewController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">teamConfigViewController</string>
+ <string key="candidateClassName">TeamConfigViewController</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/GameConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">mapButtonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">segmentedControlChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderEndedChanging:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UILabel</string>
+ <string>MapPreviewButtonView</string>
+ <string>UISegmentedControl</string>
+ <string>UILabel</string>
+ <string>UISlider</string>
+ <string>UITableView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">maxLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">previewButton</string>
+ <string key="candidateClassName">MapPreviewButtonView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">segmentedControl</string>
+ <string key="candidateClassName">UISegmentedControl</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sizeLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">slider</string>
+ <string key="candidateClassName">UISlider</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapPreviewButtonView</string>
+ <string key="superclassName">UIButton</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">delegate</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">delegate</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">delegate</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapPreviewButtonView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">SchemeWeaponConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/SchemeWeaponConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">TeamConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/TeamConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="379894190">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">ExtraCategories.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <reference key="sourceIdentifier" ref="379894190"/>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISegmentedControl</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISlider</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISlider.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>backButton.png</string>
+ <string>background.png</string>
+ <string>helpButton.png</string>
+ <string>startGameButton.png</string>
+ <string>title~iphone.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{64, 64}</string>
+ <string>{1024, 768}</string>
+ <string>{64, 64}</string>
+ <string>{142, 64}</string>
+ <string>{270, 150}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController-iPhone.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,998 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="30"/>
+ <integer value="2"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIToolbar" id="836721772">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">266</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUISegmentedControl" id="563596142">
+ <reference key="NSNextResponder" ref="836721772"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{96, 8}, {270, 30}}</string>
+ <reference key="NSSuperview" ref="836721772"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">12345</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBSegmentControlStyle">2</int>
+ <int key="IBNumberOfSegments">4</int>
+ <int key="IBSelectedSegmentIndex">0</int>
+ <object class="NSArray" key="IBSegmentTitles">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Map</string>
+ <string>Teams</string>
+ <string>Details</string>
+ <string>Help</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentWidths">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentEnabledStates">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentContentOffsets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentImages">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSNull" id="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ </object>
+ <object class="NSColor" key="IBTintColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC42IDAuNiAwLjYAA</bytes>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 276}, {480, 44}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIBarStyle">1</int>
+ <object class="NSMutableArray" key="IBUIItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIBarButtonItem" id="80281356">
+ <string key="IBUITitle">Back</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIStyle">1</int>
+ <reference key="IBUIToolbar" ref="836721772"/>
+ </object>
+ <object class="IBUIBarButtonItem" id="716161941">
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <reference key="IBUIToolbar" ref="836721772"/>
+ <int key="IBUISystemItemIdentifier">5</int>
+ </object>
+ <object class="IBUIBarButtonItem" id="530186890">
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <reference key="IBUICustomView" ref="563596142"/>
+ <reference key="IBUIToolbar" ref="836721772"/>
+ </object>
+ <object class="IBUIBarButtonItem" id="188600069">
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <reference key="IBUIToolbar" ref="836721772"/>
+ <int key="IBUISystemItemIdentifier">5</int>
+ </object>
+ <object class="IBUIBarButtonItem" id="919181414">
+ <int key="IBUITag">1</int>
+ <string key="IBUITitle">Start</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <float key="IBUIWidth">68</float>
+ <int key="IBUIStyle">2</int>
+ <reference key="IBUIToolbar" ref="836721772"/>
+ </object>
+ </object>
+ </object>
+ <object class="IBUIView" id="914954699">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrameSize">{480, 276}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace" id="9020506">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="848489667">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrameSize">{480, 276}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <reference key="NSCustomColorSpace" ref="9020506"/>
+ </object>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 320}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIViewController" id="682131721">
+ <string key="IBUINibName">MapConfigViewController-iPhone</string>
+ <object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics"/>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics" id="789431191">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIHorizontal">YES</bool>
+ </object>
+ <object class="IBUIViewController" id="508843780">
+ <object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics" id="129104688">
+ <int key="IBUIBarStyle">1</int>
+ </object>
+ <reference key="IBUISimulatedOrientationMetrics" ref="789431191"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIHorizontal">YES</bool>
+ </object>
+ <object class="IBUIViewController" id="290947091">
+ <reference key="IBUISimulatedBottomBarMetrics" ref="129104688"/>
+ <reference key="IBUISimulatedOrientationMetrics" ref="789431191"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIHorizontal">YES</bool>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="80281356"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">17</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="919181414"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">23</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">segmentPressed:</string>
+ <reference key="source" ref="563596142"/>
+ <reference key="destination" ref="841351856"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">29</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">mapConfigViewController</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="682131721"/>
+ </object>
+ <int key="connectionID">33</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">teamConfigViewController</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="508843780"/>
+ </object>
+ <int key="connectionID">34</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">schemeWeaponConfigViewController</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="290947091"/>
+ </object>
+ <int key="connectionID">35</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="508843780"/>
+ <reference key="destination" ref="914954699"/>
+ </object>
+ <int key="connectionID">42</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="290947091"/>
+ <reference key="destination" ref="848489667"/>
+ </object>
+ <int key="connectionID">43</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="836721772"/>
+ <reference ref="914954699"/>
+ <reference ref="848489667"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="836721772"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="80281356"/>
+ <reference ref="919181414"/>
+ <reference ref="188600069"/>
+ <reference ref="530186890"/>
+ <reference ref="716161941"/>
+ </object>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">16</int>
+ <reference key="object" ref="80281356"/>
+ <reference key="parent" ref="836721772"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="919181414"/>
+ <reference key="parent" ref="836721772"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="188600069"/>
+ <reference key="parent" ref="836721772"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">21</int>
+ <reference key="object" ref="530186890"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="563596142"/>
+ </object>
+ <reference key="parent" ref="836721772"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">20</int>
+ <reference key="object" ref="563596142"/>
+ <reference key="parent" ref="530186890"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">22</int>
+ <reference key="object" ref="716161941"/>
+ <reference key="parent" ref="836721772"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">30</int>
+ <reference key="object" ref="682131721"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">31</int>
+ <reference key="object" ref="508843780"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">32</int>
+ <reference key="object" ref="290947091"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">40</int>
+ <reference key="object" ref="914954699"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">TeamConfigViewController View</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">41</int>
+ <reference key="object" ref="848489667"/>
+ <reference key="parent" ref="766721923"/>
+ <string key="objectName">SchemeWeaponConfigViewController View</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>15.IBPluginDependency</string>
+ <string>15.IBViewBoundsToFrameTransform</string>
+ <string>16.IBPluginDependency</string>
+ <string>18.IBPluginDependency</string>
+ <string>19.IBPluginDependency</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>20.IBPluginDependency</string>
+ <string>22.IBPluginDependency</string>
+ <string>30.CustomClassName</string>
+ <string>30.IBEditorWindowLastContentRect</string>
+ <string>30.IBPluginDependency</string>
+ <string>31.CustomClassName</string>
+ <string>31.IBEditorWindowLastContentRect</string>
+ <string>31.IBPluginDependency</string>
+ <string>32.CustomClassName</string>
+ <string>32.IBEditorWindowLastContentRect</string>
+ <string>32.IBPluginDependency</string>
+ <string>40.IBPluginDependency</string>
+ <string>40.IBViewBoundsToFrameTransform</string>
+ <string>41.IBPluginDependency</string>
+ <string>41.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>GameConfigViewController</string>
+ <string>UIResponder</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw58AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{40, 217}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>MapConfigViewController</string>
+ <string>{{0, 825}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>TeamConfigViewController</string>
+ <string>{{21, 802}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>SchemeWeaponConfigViewController</string>
+ <string>{{42, 779}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw5QAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw5QAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">45</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">GameConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>segmentPressed:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>segmentPressed:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">buttonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">segmentPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapConfigViewController</string>
+ <string>schemeWeaponConfigViewController</string>
+ <string>teamConfigViewController</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MapConfigViewController</string>
+ <string>SchemeWeaponConfigViewController</string>
+ <string>TeamConfigViewController</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapConfigViewController</string>
+ <string>schemeWeaponConfigViewController</string>
+ <string>teamConfigViewController</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">mapConfigViewController</string>
+ <string key="candidateClassName">MapConfigViewController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">schemeWeaponConfigViewController</string>
+ <string key="candidateClassName">SchemeWeaponConfigViewController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">teamConfigViewController</string>
+ <string key="candidateClassName">TeamConfigViewController</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/GameConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">mapButtonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">segmentedControlChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderEndedChanging:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UILabel</string>
+ <string>MapPreviewButtonView</string>
+ <string>UISegmentedControl</string>
+ <string>UILabel</string>
+ <string>UISlider</string>
+ <string>UITableView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">maxLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">previewButton</string>
+ <string key="candidateClassName">MapPreviewButtonView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">segmentedControl</string>
+ <string key="candidateClassName">UISegmentedControl</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sizeLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">slider</string>
+ <string key="candidateClassName">UISlider</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapPreviewButtonView</string>
+ <string key="superclassName">UIButton</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">delegate</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">delegate</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">delegate</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapPreviewButtonView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">SchemeWeaponConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/SchemeWeaponConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">TeamConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/TeamConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="270765233">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">ExtraCategories.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <reference key="sourceIdentifier" ref="270765233"/>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarButtonItem</string>
+ <string key="superclassName">UIBarItem</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarItem</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISegmentedControl</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISlider</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISlider.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIToolbar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -21,31 +21,29 @@
#import <UIKit/UIKit.h>
-@class HelpPageViewController;
-@class MapConfigViewController;
+@class SchemeWeaponConfigViewController;
@class TeamConfigViewController;
-@class SchemeWeaponConfigViewController;
-@class GameInterfaceBridge;
+@class MapConfigViewController;
+@class HelpPageViewController;
@interface GameConfigViewController : UIViewController {
UIView *imgContainer;
- HelpPageViewController *helpPage;
-
+
+ SchemeWeaponConfigViewController *schemeWeaponConfigViewController;
+ TeamConfigViewController *teamConfigViewController;
MapConfigViewController *mapConfigViewController;
- TeamConfigViewController *teamConfigViewController;
- SchemeWeaponConfigViewController *schemeWeaponConfigViewController;
- GameInterfaceBridge *interfaceBridge;
+ HelpPageViewController *helpPage;
}
@property (retain) UIView *imgContainer;
+@property (nonatomic,retain) IBOutlet SchemeWeaponConfigViewController *schemeWeaponConfigViewController;
+@property (nonatomic,retain) IBOutlet TeamConfigViewController *teamConfigViewController;
+@property (nonatomic,retain) IBOutlet MapConfigViewController *mapConfigViewController;
@property (nonatomic,retain) HelpPageViewController *helpPage;
-@property (nonatomic,retain) MapConfigViewController *mapConfigViewController;
-@property (nonatomic,retain) TeamConfigViewController *teamConfigViewController;
-@property (nonatomic,retain) SchemeWeaponConfigViewController *schemeWeaponConfigViewController;
-@property (nonatomic,retain) GameInterfaceBridge *interfaceBridge;
-(IBAction) buttonPressed:(id) sender;
-(IBAction) segmentPressed:(id) sender;
-(void) startGame:(UIButton *)button;
+-(BOOL) isEverythingSet;
@end
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -25,12 +25,10 @@
#import "SchemeWeaponConfigViewController.h"
#import "HelpPageViewController.h"
#import "GameInterfaceBridge.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
-#import "PascalImports.h"
+
@implementation GameConfigViewController
-@synthesize imgContainer, helpPage, mapConfigViewController, teamConfigViewController, schemeWeaponConfigViewController, interfaceBridge;
+@synthesize imgContainer, helpPage, mapConfigViewController, teamConfigViewController, schemeWeaponConfigViewController;
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
@@ -57,15 +55,24 @@
break;
case 1:
[AudioManagerController playClickSound];
+ if ([self isEverythingSet] == NO)
+ return;
theButton.enabled = NO;
+ for (UIView *oneView in self.imgContainer.subviews) {
+ if ([oneView isMemberOfClass:[UIImageView class]]) {
+ UIImageView *anImageView = (UIImageView *)oneView;
+ [anImageView removeFromSuperview];
+ }
+ }
[self startGame:theButton];
+
break;
case 2:
[AudioManagerController playClickSound];
if (self.helpPage == nil)
self.helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPad" bundle:nil];
self.helpPage.view.alpha = 0;
- [self.view addSubview:helpPage.view];
+ [self.view addSubview:self.helpPage.view];
[UIView beginAnimations:@"helplobby" context:NULL];
self.helpPage.view.alpha = 1;
[UIView commitAnimations];
@@ -77,34 +84,22 @@
}
-(IBAction) segmentPressed:(id) sender {
+
UISegmentedControl *theSegment = (UISegmentedControl *)sender;
[AudioManagerController playSelectSound];
switch (theSegment.selectedSegmentIndex) {
case 0:
- // this init here is just aestetic as this controller was already set up in viewDidLoad
- if (mapConfigViewController == nil) {
- mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil];
- [self.view addSubview:mapConfigViewController.view];
- }
// this message is compulsory otherwise the table won't be loaded at all
- [mapConfigViewController viewWillAppear:NO];
- [self.view bringSubviewToFront:mapConfigViewController.view];
+ [self.mapConfigViewController viewWillAppear:NO];
+ [self.view bringSubviewToFront:self.mapConfigViewController.view];
break;
case 1:
- if (teamConfigViewController == nil) {
- teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
- [self.view addSubview:teamConfigViewController.view];
- }
// this message is compulsory otherwise the table won't be loaded at all
- [teamConfigViewController viewWillAppear:NO];
- [self.view bringSubviewToFront:teamConfigViewController.view];
+ [self.teamConfigViewController viewWillAppear:NO];
+ [self.view bringSubviewToFront:self.teamConfigViewController.view];
break;
case 2:
- if (schemeWeaponConfigViewController == nil) {
- schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
- [self.view addSubview:schemeWeaponConfigViewController.view];
- }
// this message is compulsory otherwise the table won't be loaded at all
[schemeWeaponConfigViewController viewWillAppear:NO];
[self.view bringSubviewToFront:schemeWeaponConfigViewController.view];
@@ -122,6 +117,7 @@
DLog(@"Nope");
break;
}
+
}
-(BOOL) isEverythingSet {
@@ -208,9 +204,6 @@
-(void) startGame:(UIButton *)button {
button.enabled = YES;
-
- if ([self isEverythingSet] == NO)
- return;
NSString *script = self.mapConfigViewController.missionCommand;
if ([script isEqualToString:@""])
@@ -230,45 +223,59 @@
script,@"mission_command",
nil];
- if (self.interfaceBridge == nil) {
- GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self];
- self.interfaceBridge = bridge;
- [bridge release];
- }
- [self.interfaceBridge startLocalGame:gameDictionary];
+ GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self];
+ [bridge startLocalGame:gameDictionary];
+ [bridge release];
}
-(void) loadNiceHogs {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- NSString *filePath = [NSString stringWithFormat:@"%@/Hedgehog.png",GRAPHICS_DIRECTORY()];
- UIImage *sprite = [[UIImage alloc] initWithContentsOfFile:filePath andCutAt:CGRectMake(96, 0, 32, 32)];
-
+ srand(time(NULL));
+ NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Hedgehog/Idle.png",GRAPHICS_DIRECTORY()];
+ UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:filePath];
+ [filePath release];
+
NSArray *hatArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:HATS_DIRECTORY() error:NULL];
int numberOfHats = [hatArray count];
+ int animationFrames = IS_VERY_POWERFUL([HWUtils modelType]) ? 18 : 1;
if (self.imgContainer != nil)
[self.imgContainer removeFromSuperview];
-
+
self.imgContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
for (int i = 0; i < 1 + random()%20; i++) {
NSString *hat = [hatArray objectAtIndex:random()%numberOfHats];
-
+
NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@", HATS_DIRECTORY(), hat];
- UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile: hatFile andCutAt:CGRectMake(0, 0, 32, 32)];
- [hatFile release];
- UIImage *hogWithHat = [sprite mergeWith:hatSprite atPoint:CGPointMake(0, 5)];
+ UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile:hatFile];
+ NSMutableArray *animation = [[NSMutableArray alloc] initWithCapacity:animationFrames];
+ for (int j = 0; j < animationFrames; j++) {
+ int x = ((j*32)/(int)hatSprite.size.height)*32;
+ int y = (j*32)%(int)hatSprite.size.height;
+ UIImage *hatSpriteFrame = [hatSprite cutAt:CGRectMake(x, y, 32, 32)];
+ UIImage *hogSpriteFrame = [hogSprite cutAt:CGRectMake(x, y, 32, 32)];
+ UIImage *hogWithHat = [hogSpriteFrame mergeWith:hatSpriteFrame atPoint:CGPointMake(0, 5)];
+ [animation addObject:hogWithHat];
+ }
[hatSprite release];
-
- UIImageView *hog = [[UIImageView alloc] initWithImage:hogWithHat];
- int x = 15*(i+1)+random()%40;
- if (x + 32 > 300)
- x = i*10;
- hog.frame = CGRectMake(x, 30, 32, 32);
+ [hatFile release];
+
+ UIImageView *hog = [[UIImageView alloc] initWithImage:[animation objectAtIndex:0]];
+ hog.animationImages = animation;
+ hog.animationDuration = 3;
+ [animation release];
+
+ int x = 20*i+random()%128;
+ if (x > 320 - 32)
+ x = i*random()%32;
+ hog.frame = CGRectMake(x, 25, hog.frame.size.width, hog.frame.size.height);
[self.imgContainer addSubview:hog];
+ [hog startAnimating];
[hog release];
}
+
[self.view addSubview:self.imgContainer];
- [sprite release];
+ [hogSprite release];
[pool drain];
}
@@ -279,57 +286,30 @@
self.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width);
if (IS_IPAD()) {
- // load other controllers
- if (self.mapConfigViewController == nil)
- self.mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPad" bundle:nil];
+ // the label for the filter slider
+ UILabel *filterLabel = [[UILabel alloc] initWithFrame:CGRectMake(116, 714, 310, 40)
+ andTitle:nil
+ withBorderWidth:2.0f];
+ [self.view insertSubview:filterLabel belowSubview:self.mapConfigViewController.slider];
+ [filterLabel release];
- UILabel *leftBackground = createLabelWithParams(nil, CGRectMake(0, 60, 320, 620), 2.7f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
- [self.mapConfigViewController.view addSubview:leftBackground];
- [leftBackground release];
- UILabel *middleBackground = createLabelWithParams(nil, CGRectMake(337, 187, 350, 505), 2.7f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
- [self.mapConfigViewController.view addSubview:middleBackground];
- [middleBackground release];
- UILabel *rightBackground = createLabelWithParams(nil, CGRectMake(704, 214, 320, 464), 2.7f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
- [self.mapConfigViewController.view addSubview:rightBackground];
- [rightBackground release];
- UILabel *topBackground = createLabelWithParams(nil, CGRectMake(714, 14, 300, 190), 2.3f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
- [self.mapConfigViewController.view addSubview:topBackground];
- [topBackground release];
- UILabel *bottomLeftBackground = createLabelWithParams(nil, CGRectMake(106, 714, 320, 40), 2.0f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
- [self.mapConfigViewController.view addSubview:bottomLeftBackground];
- [bottomLeftBackground release];
- UILabel *bottomRightBackground = createLabelWithParams(NSLocalizedString(@"Max Hogs: ",@""), CGRectMake(594, 714, 320, 40), 2.0f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
- bottomRightBackground.font = [UIFont italicSystemFontOfSize:[UIFont labelFontSize]];
- [self.mapConfigViewController.view addSubview:bottomRightBackground];
- [bottomRightBackground release];
- [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.maxLabel];
- [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.sizeLabel];
- [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.segmentedControl];
- [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.previewButton];
- [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.slider];
- [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.tableView];
+ // the label for max hogs
+ UILabel *maxLabel = [[UILabel alloc] initWithFrame:CGRectMake(598, 714, 310, 40)
+ andTitle:NSLocalizedString(@"Loading...",@"")
+ withBorderWidth:2.0f];
+ maxLabel.font = [UIFont italicSystemFontOfSize:[UIFont labelFontSize]];
+ maxLabel.textColor = [UIColor whiteColor];
+ maxLabel.textAlignment = UITextAlignmentCenter;
+ [self.view addSubview:maxLabel];
+ self.mapConfigViewController.maxLabel = maxLabel;
+ [maxLabel release];
- if (self.teamConfigViewController == nil)
- self.teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
- [self.mapConfigViewController.view addSubview:self.teamConfigViewController.view];
- if (self.schemeWeaponConfigViewController == nil)
- self.schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
- [self.mapConfigViewController.view addSubview:schemeWeaponConfigViewController.view];
- self.mapConfigViewController.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width);
- self.teamConfigViewController.view.frame = CGRectMake(348, 200, 328, 480);
- self.schemeWeaponConfigViewController.view.frame = CGRectMake(10, 70, 300, 600);
-
- self.mapConfigViewController.parentController = self;
+ // as this is loaded from a NIB we need to set its size and position
+ self.mapConfigViewController.view.frame = CGRectMake(704, 0, 320, 680);
} else {
- // this is the visible controller
- if (self.mapConfigViewController == nil)
- self.mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil];
- // this must be loaded & added in order to auto set default scheme and ammo
- self.schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
- [self.view addSubview:self.schemeWeaponConfigViewController.view];
+ self.mapConfigViewController.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width-44);
}
[self.view addSubview:self.mapConfigViewController.view];
- self.mapConfigViewController.externalController = schemeWeaponConfigViewController;
[super viewDidLoad];
}
@@ -368,28 +348,25 @@
}
-(void) didReceiveMemoryWarning {
+ self.imgContainer = nil;
+
+ if (self.mapConfigViewController.view.superview == nil)
+ self.mapConfigViewController = nil;
if (self.teamConfigViewController.view.superview == nil)
self.teamConfigViewController = nil;
if (self.schemeWeaponConfigViewController.view.superview == nil)
self.schemeWeaponConfigViewController = nil;
if (self.helpPage.view.superview == nil)
self.helpPage = nil;
- if (self.mapConfigViewController.view.superview == nil)
- self.mapConfigViewController = nil;
-
- self.imgContainer = nil;
- // don't nil this one or it won't be able to send messages
- //self.interfaceBridge = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
-(void) viewDidUnload {
self.imgContainer = nil;
- self.interfaceBridge = nil;
+ self.schemeWeaponConfigViewController = nil;
+ self.teamConfigViewController = nil;
self.mapConfigViewController = nil;
- self.teamConfigViewController = nil;
- self.schemeWeaponConfigViewController = nil;
self.helpPage = nil;
MSG_DIDUNLOAD();
[super viewDidUnload];
@@ -397,10 +374,9 @@
-(void) dealloc {
releaseAndNil(imgContainer);
- releaseAndNil(interfaceBridge);
+ releaseAndNil(schemeWeaponConfigViewController);
+ releaseAndNil(teamConfigViewController);
releaseAndNil(mapConfigViewController);
- releaseAndNil(teamConfigViewController);
- releaseAndNil(schemeWeaponConfigViewController);
releaseAndNil(helpPage);
[super dealloc];
}
--- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.h Fri Oct 28 18:26:17 2011 +0200
@@ -22,7 +22,7 @@
#import <Foundation/Foundation.h>
#import "EngineProtocolNetwork.h"
-typedef enum {gtNone, gtLocal, gtSave, gtNet} TGameType;
+typedef enum {gtNone, gtLocal, gtSave, gtMission, gtNet} TGameType;
typedef enum {gsNone, gsInGame, gsEnded, gsInterrupted} TGameStatus;
@class OverlayViewController;
@@ -49,10 +49,12 @@
-(id) initWithController:(id) viewController;
--(void) startLocalGame:(NSDictionary *)withDictionary;
+-(void) startLocalGame:(NSDictionary *)withOptions;
-(void) startSaveGame:(NSString *)atPath;
+-(void) startMissionGame:(NSString *)withScript;
+
-(void) prepareEngineLaunch;
--(void) startGameEngine;
+-(void) engineLaunch;
-(void) gameHasEndedWithStats:(NSArray *)stats;
@end
--- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,7 @@
#import "GameInterfaceBridge.h"
-#import "PascalImports.h"
+#import "ServerSetup.h"
#import "EngineProtocolNetwork.h"
#import "OverlayViewController.h"
#import "StatsPageViewController.h"
@@ -32,7 +32,7 @@
-(id) initWithController:(id) viewController {
if (self = [super init]) {
- self.ipcPort = randomPort();
+ self.ipcPort = [ServerSetup randomPort];
self.gameType = gtNone;
self.savePath = nil;
@@ -62,27 +62,28 @@
}
// main routine for calling the actual game engine
--(void) startGameEngine {
+-(void) engineLaunch {
const char *gameArgs[11];
- NSInteger width, height;
+ CGFloat width, height;
+ CGFloat screenScale = [[UIScreen mainScreen] safeScale];
NSString *ipcString = [[NSString alloc] initWithFormat:@"%d", self.ipcPort];
NSString *localeString = [[NSString alloc] initWithFormat:@"%@.txt", [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]];
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
if (IS_DUALHEAD()) {
CGRect screenBounds = [[[UIScreen screens] objectAtIndex:1] bounds];
- width = (int) screenBounds.size.width;
- height = (int) screenBounds.size.height;
+ width = screenBounds.size.width;
+ height = screenBounds.size.height;
} else {
CGRect screenBounds = [[UIScreen mainScreen] bounds];
- width = (int) screenBounds.size.height;
- height = (int) screenBounds.size.width;
+ width = screenBounds.size.height;
+ height = screenBounds.size.width;
}
- NSString *horizontalSize = [[NSString alloc] initWithFormat:@"%d", width * (int)getScreenScale()];
- NSString *verticalSize = [[NSString alloc] initWithFormat:@"%d", height * (int)getScreenScale()];
+ NSString *horizontalSize = [[NSString alloc] initWithFormat:@"%d", (int)(width * screenScale)];
+ NSString *verticalSize = [[NSString alloc] initWithFormat:@"%d", (int)(height * screenScale)];
- NSString *modelId = getModelType();
+ NSString *modelId = [HWUtils modelType];
NSInteger tmpQuality;
if ([modelId hasPrefix:@"iPhone1"] || [modelId hasPrefix:@"iPod1,1"] || [modelId hasPrefix:@"iPod2,1"]) // = iPhone and iPhone 3G or iPod Touch or iPod Touch 2G
tmpQuality = 0x00000001 | 0x00000002 | 0x00000008 | 0x00000040; // rqLowRes | rqBlurryLand | rqSimpleRope | rqKillFlakes
@@ -119,7 +120,7 @@
[localeString release];
[ipcString release];
- objcExportsInit();
+ [ObjcExports initialize];
// this is the pascal fuction that starts the game, wrapped around isInGame
[HedgewarsAppDelegate sharedAppDelegate].isInGame = YES;
@@ -156,7 +157,7 @@
[AudioManagerController pauseBackgroundMusic];
// SYSTEMS ARE GO!!
- [self startGameEngine];
+ [self engineLaunch];
// remove completed games notification
[userDefaults setObject:@"" forKey:@"savedGamePath"];
@@ -182,7 +183,7 @@
}
// set up variables for a local game
--(void) startLocalGame:(NSDictionary *)withDictionary {
+-(void) startLocalGame:(NSDictionary *)withOptions {
self.gameType = gtLocal;
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
@@ -196,7 +197,7 @@
if ([[NSFileManager defaultManager] fileExistsAtPath:self.savePath])
[[NSFileManager defaultManager] removeItemAtPath:self.savePath error:nil];
- [self.engineProtocol spawnThread:self.savePath withOptions:withDictionary];
+ [self.engineProtocol spawnThread:self.savePath withOptions:withOptions];
[self prepareEngineLaunch];
}
@@ -209,6 +210,17 @@
[self prepareEngineLaunch];
}
+-(void) startMissionGame:(NSString *)withScript {
+ self.gameType = gtMission;
+ self.savePath = nil;
+
+ NSString *missionPath = [[NSString alloc] initWithFormat:@"escript Missions/Training/%@.lua",withScript];
+ NSDictionary *config = [NSDictionary dictionaryWithObject:missionPath forKey:@"mission_command"];
+ [missionPath release];
+ [self.engineProtocol spawnThread:nil withOptions:config];
+ [self prepareEngineLaunch];
+}
+
-(void) gameHasEndedWithStats:(NSArray *)stats {
// wrap this around a retain/realse to prevent being deallocated too soon
[self retain];
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,6 @@
#import "GeneralSettingsViewController.h"
-#import "CommodityFunctions.h"
@implementation GeneralSettingsViewController
@@ -33,6 +32,7 @@
#pragma mark -
#pragma mark View Lifecycle
-(void) viewDidLoad {
+ self.navigationItem.title = @"Edit game options";
[super viewDidLoad];
}
@@ -64,8 +64,9 @@
theOtherSwitch = (UISwitch *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1]].accessoryView;
[theOtherSwitch setOn:NO animated:YES];
- if (theOtherSwitch.on)
- [AudioManagerController pauseBackgroundMusic];
+ // since switching sound on won't turn music on anyways, we can always turn off music
+ [AudioManagerController pauseBackgroundMusic];
+ [settings setObject:[NSNumber numberWithBool:NO] forKey:@"music"];
break;
case 20: //musicSwitch
// if switch above (sound) is off, never turn on
@@ -80,7 +81,6 @@
[AudioManagerController playBackgroundMusic];
else
[AudioManagerController pauseBackgroundMusic];
-
break;
case 30: //alternateSwitch
[settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"alternate"];
--- a/project_files/HedgewarsMobile/Classes/GravesViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GravesViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,8 +20,7 @@
#import "GravesViewController.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
+
@implementation GravesViewController
@synthesize teamDictionary, graveArray, lastIndexPath;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/HWUtils.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,33 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 01/10/2011.
+ */
+
+
+#import <Foundation/Foundation.h>
+
+@interface HWUtils : NSObject {
+
+}
+
++(NSString *)modelType;
++(NSArray *)teamColors;
++(void) releaseCache;
+
+@end
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/HWUtils.m Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,68 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 01/10/2011.
+ */
+
+
+#import "HWUtils.h"
+#import <sys/types.h>
+#import <sys/sysctl.h>
+#import "hwconsts.h"
+
+static NSString *cachedModel = nil;
+static NSArray *cachedColors = nil;
+
+@implementation HWUtils
+
++(NSString *)modelType {
+ if (cachedModel == nil) {
+ size_t size;
+ // set 'oldp' parameter to NULL to get the size of the data returned so we can allocate appropriate amount of space
+ sysctlbyname("hw.machine", NULL, &size, NULL, 0);
+ char *name = (char *)malloc(sizeof(char) * size);
+ // get the platform name
+ sysctlbyname("hw.machine", name, &size, NULL, 0);
+
+ cachedModel = [[NSString stringWithUTF8String:name] retain];
+ free(name);
+ }
+ return cachedModel;
+}
+
++(NSArray *)teamColors {
+ if (cachedColors == nil) {
+ // by default colors are ARGB but we do computation over RGB, hence we have to "& 0x00FFFFFF" before processing
+ unsigned int colors[] = HW_TEAMCOLOR_ARRAY;
+ NSMutableArray *array = [[NSMutableArray alloc] init];
+
+ int i = 0;
+ while(colors[i] != 0)
+ [array addObject:[NSNumber numberWithUnsignedInt:(colors[i++] & 0x00FFFFFF)]];
+
+ cachedColors = [[NSArray arrayWithArray:array] retain];
+ [array release];
+ }
+ return cachedColors;
+}
+
++(void) releaseCache {
+ releaseAndNil(cachedModel);
+ releaseAndNil(cachedColors);
+}
+
+@end
--- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,10 +20,8 @@
#import "HedgewarsAppDelegate.h"
-#import "PascalImports.h"
+#import "MainMenuViewController.h"
#import "ObjcExports.h"
-#import "CommodityFunctions.h"
-#import "MainMenuViewController.h"
#include <unistd.h>
@@ -92,12 +90,12 @@
}
-(void) applicationDidReceiveMemoryWarning:(UIApplication *)application {
- // don't stop music when it is playing
+ [HWUtils releaseCache];
+ // don't stop music if it is playing
if (self.isInGame) {
- [AudioManagerController cleanupMemory];
- MSG_MEMCLEAN();
+ [AudioManagerController releaseCache];
}
- print_free_memory();
+ MSG_MEMCLEAN();
// don't clean mainMenuViewController here!!!
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/HelpPageInGameViewController-iPad.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,889 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1024</int>
+ <string key="IBDocument.SystemVersion">10F569</string>
+ <string key="IBDocument.InterfaceBuilderVersion">788</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">117</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="2"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="625666841">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{0, -1}, {1024, 768}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpingame.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="271354909">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{79, 473}, {150, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Direction buttons</string>
+ <object class="NSFont" key="IBUIFont" id="583365693">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor" id="283637272">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="1061067446">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{79, 491}, {203, 85}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">With these buttons you can move your hog, aim and control certain weapons.</string>
+ <object class="NSFont" key="IBUIFont" id="818038162">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">16</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="435000744">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{53, 97}, {186, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Timer</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="580244456">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{53, 118}, {187, 43}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Don't let your turn time run out!</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="162303877">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{780, 248}, {240, 128}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpright.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="323588470">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{790, 256}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Ammo Menu</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="687330896">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{790, 282}, {214, 84}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">This menu contains all the weapons you can use. Drag your finger on a weapon for more details on what it does!</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="697316303">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{780, 97}, {186, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Pause / Open ammos</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="859729380">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{782, 118}, {187, 43}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Tap to pause or open the ammo menu.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="1045445495">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{418, 73}, {186, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Wind bar</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="635730473">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{418, 89}, {191, 63}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Some weapons are affected by the wind and their direction may shift.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="701155026">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{447, 573}, {203, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Teams flags and health</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="929603608">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{447, 592}, {203, 85}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">These bars report the team name, the team flags and the global health status of every hog.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">4</int>
+ </object>
+ <object class="IBUILabel" id="157896337">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{741, 501}, {135, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Joypad buttons</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="213370333">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{741, 520}, {211, 85}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Press X to jump forward, Y to jump backwards (double tap to jump twice) and Missile to attack or use items.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="533288614">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{67, 238}, {240, 128}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpplain.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="203633929">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{72, 246}, {229, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Tap to return to game</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUILabel" id="345016434">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{72, 268}, {229, 87}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Pan to move camera, pinch to zoom, double tap to center hog, and a single touch to interact with weapons and much more!</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ </object>
+ <string key="NSFrameSize">{1024, 768}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjQAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">dismiss</string>
+ <reference key="source" ref="766721923"/>
+ <reference key="destination" ref="841351856"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">16</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="625666841"/>
+ <reference ref="162303877"/>
+ <reference ref="323588470"/>
+ <reference ref="697316303"/>
+ <reference ref="859729380"/>
+ <reference ref="1045445495"/>
+ <reference ref="635730473"/>
+ <reference ref="435000744"/>
+ <reference ref="580244456"/>
+ <reference ref="271354909"/>
+ <reference ref="1061067446"/>
+ <reference ref="701155026"/>
+ <reference ref="157896337"/>
+ <reference ref="533288614"/>
+ <reference ref="203633929"/>
+ <reference ref="345016434"/>
+ <reference ref="213370333"/>
+ <reference ref="929603608"/>
+ <reference ref="687330896"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="625666841"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="162303877"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="323588470"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="687330896"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="697316303"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="859729380"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="1045445495"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="635730473"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="435000744"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">14</int>
+ <reference key="object" ref="580244456"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="271354909"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="1061067446"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">21</int>
+ <reference key="object" ref="701155026"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">22</int>
+ <reference key="object" ref="929603608"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">23</int>
+ <reference key="object" ref="157896337"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">24</int>
+ <reference key="object" ref="213370333"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">25</int>
+ <reference key="object" ref="533288614"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">26</int>
+ <reference key="object" ref="203633929"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">27</int>
+ <reference key="object" ref="345016434"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>10.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>12.IBPluginDependency</string>
+ <string>13.IBPluginDependency</string>
+ <string>14.IBPluginDependency</string>
+ <string>17.IBPluginDependency</string>
+ <string>18.IBPluginDependency</string>
+ <string>2.CustomClassName</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>21.IBPluginDependency</string>
+ <string>22.IBPluginDependency</string>
+ <string>23.IBPluginDependency</string>
+ <string>24.IBPluginDependency</string>
+ <string>25.IBPluginDependency</string>
+ <string>26.IBPluginDependency</string>
+ <string>27.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ <string>9.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>HelpPageViewController</string>
+ <string>UIResponder</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>UIControl</string>
+ <string>{{288, 355}, {1024, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">27</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">HelpPageViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">dismiss</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">dismiss</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">dismiss</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/HelpPageViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1024" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>helpingame.png</string>
+ <string>helpplain.png</string>
+ <string>helpright.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{1024, 768}</string>
+ <string>{296, 138}</string>
+ <string>{308, 144}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">117</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/HelpPageInGameViewController-iPhone.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1014 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10H574</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="2"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIScrollView" id="480371523">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUILabel" id="806535969">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 283}, {150, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Direction buttons</string>
+ <object class="NSFont" key="IBUIFont" id="583365693">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor" id="283637272">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="837055082">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 292}, {203, 85}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">With these buttons you can move your hog, aim and control certain weapons.</string>
+ <object class="NSFont" key="IBUIFont" id="818038162">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">16</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="669645325">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 13}, {186, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Timer</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="392421036">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 34}, {187, 43}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Don't let your turn time run out!</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="709427542">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{217, 308}, {243, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Touch interface</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ <object class="IBUILabel" id="748437184">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{231, 328}, {229, 87}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Pan to move camera, pinch to zoom, double tap to center hog, and a single touch to interact with weapons and much more!</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ <object class="IBUILabel" id="941791832">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 85}, {186, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Wind bar</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="26100154">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 101}, {191, 63}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Some weapons are affected by the wind and their direction may shift.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="413836006">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 172}, {203, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Teams flags and health</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="579557686">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 191}, {203, 85}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">These bars report the team name, the team flags and the global health status of every hog.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">4</int>
+ </object>
+ <object class="IBUILabel" id="740577465">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{274, 13}, {186, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Pause / Open ammos</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ <object class="IBUILabel" id="347724774">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{273, 35}, {187, 43}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Tap to pause or open the ammo menu.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ <object class="IBUILabel" id="318624215">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{351, 82}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Ammo Menu</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ <object class="IBUILabel" id="145842014">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{246, 105}, {214, 84}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">This menu contains all the weapons you can use. Drag your finger on a weapon for more details on what it does!</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ <object class="IBUILabel" id="415037922">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{325, 197}, {135, 22}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Joypad buttons</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ <object class="IBUILabel" id="499026341">
+ <reference key="NSNextResponder" ref="480371523"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{249, 217}, {211, 85}}</string>
+ <reference key="NSSuperview" ref="480371523"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Press X to jump forward, Y to jump backwards (double tap to jump twice) and Missile to attack or use items.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ <int key="IBUITextAlignment">2</int>
+ </object>
+ </object>
+ <string key="NSFrame">{{-5, 44}, {489, 332}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">1</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUINavigationBar" id="126317414">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">290</int>
+ <string key="NSFrame">{{-1, 0}, {481, 44}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSArray" key="IBUIItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUINavigationItem" id="477618874">
+ <reference key="IBUINavigationBar" ref="126317414"/>
+ <string key="IBUITitle">Help page</string>
+ <object class="IBUIBarButtonItem" key="IBUILeftBarButtonItem" id="843591489">
+ <string key="IBUITitle">Back</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIStyle">1</int>
+ <reference key="IBUINavigationItem" ref="477618874"/>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 320}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuOTg4MjM1MzU0NCAxAA</bytes>
+ </object>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">dismiss</string>
+ <reference key="source" ref="843591489"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">141</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">scrollView</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="480371523"/>
+ </object>
+ <int key="connectionID">142</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="126317414"/>
+ <reference ref="480371523"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">118</int>
+ <reference key="object" ref="126317414"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="477618874"/>
+ </object>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">121</int>
+ <reference key="object" ref="480371523"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="709427542"/>
+ <reference ref="392421036"/>
+ <reference ref="669645325"/>
+ <reference ref="941791832"/>
+ <reference ref="26100154"/>
+ <reference ref="806535969"/>
+ <reference ref="837055082"/>
+ <reference ref="413836006"/>
+ <reference ref="579557686"/>
+ <reference ref="748437184"/>
+ <reference ref="740577465"/>
+ <reference ref="347724774"/>
+ <reference ref="318624215"/>
+ <reference ref="145842014"/>
+ <reference ref="415037922"/>
+ <reference ref="499026341"/>
+ </object>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">122</int>
+ <reference key="object" ref="709427542"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">124</int>
+ <reference key="object" ref="392421036"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">125</int>
+ <reference key="object" ref="669645325"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">126</int>
+ <reference key="object" ref="941791832"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">127</int>
+ <reference key="object" ref="26100154"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">128</int>
+ <reference key="object" ref="806535969"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">129</int>
+ <reference key="object" ref="837055082"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">130</int>
+ <reference key="object" ref="413836006"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">131</int>
+ <reference key="object" ref="579557686"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">132</int>
+ <reference key="object" ref="748437184"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">133</int>
+ <reference key="object" ref="740577465"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">134</int>
+ <reference key="object" ref="347724774"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">135</int>
+ <reference key="object" ref="318624215"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">136</int>
+ <reference key="object" ref="145842014"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">137</int>
+ <reference key="object" ref="415037922"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">138</int>
+ <reference key="object" ref="499026341"/>
+ <reference key="parent" ref="480371523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">119</int>
+ <reference key="object" ref="477618874"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="843591489"/>
+ </object>
+ <reference key="parent" ref="126317414"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">140</int>
+ <reference key="object" ref="843591489"/>
+ <reference key="parent" ref="477618874"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>118.IBPluginDependency</string>
+ <string>118.IBViewBoundsToFrameTransform</string>
+ <string>119.IBPluginDependency</string>
+ <string>121.IBEditorWindowLastContentRect</string>
+ <string>121.IBPluginDependency</string>
+ <string>121.IBViewBoundsToFrameTransform</string>
+ <string>122.IBPluginDependency</string>
+ <string>122.IBViewBoundsToFrameTransform</string>
+ <string>124.IBPluginDependency</string>
+ <string>124.IBViewBoundsToFrameTransform</string>
+ <string>125.IBPluginDependency</string>
+ <string>125.IBViewBoundsToFrameTransform</string>
+ <string>126.IBPluginDependency</string>
+ <string>126.IBViewBoundsToFrameTransform</string>
+ <string>127.IBPluginDependency</string>
+ <string>127.IBViewBoundsToFrameTransform</string>
+ <string>128.IBPluginDependency</string>
+ <string>128.IBViewBoundsToFrameTransform</string>
+ <string>129.IBPluginDependency</string>
+ <string>129.IBViewBoundsToFrameTransform</string>
+ <string>130.IBPluginDependency</string>
+ <string>130.IBViewBoundsToFrameTransform</string>
+ <string>131.IBPluginDependency</string>
+ <string>131.IBViewBoundsToFrameTransform</string>
+ <string>132.IBPluginDependency</string>
+ <string>132.IBViewBoundsToFrameTransform</string>
+ <string>133.IBPluginDependency</string>
+ <string>133.IBViewBoundsToFrameTransform</string>
+ <string>134.IBPluginDependency</string>
+ <string>134.IBViewBoundsToFrameTransform</string>
+ <string>135.IBPluginDependency</string>
+ <string>135.IBViewBoundsToFrameTransform</string>
+ <string>136.IBPluginDependency</string>
+ <string>136.IBViewBoundsToFrameTransform</string>
+ <string>137.IBPluginDependency</string>
+ <string>137.IBViewBoundsToFrameTransform</string>
+ <string>138.IBPluginDependency</string>
+ <string>138.IBViewBoundsToFrameTransform</string>
+ <string>140.IBPluginDependency</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>2.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>HelpPageViewController</string>
+ <string>UIResponder</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AQAAAADAQAAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{589, 578}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AcCgAABCMAAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDZwAAw7aAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCVAAAwx8AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAwnQAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCxgAAwtYAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCxgAAwyQAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw+SAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAxARAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw6aAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw8+AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDZwAAw+EAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDiQAAwmwAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDiIAAwswAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDr4AAwwUAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDdgAAw1oAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDooAAw3gAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDeQAAw6aAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{165, 514}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw4kAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">142</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">HelpPageViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">dismiss</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">dismiss</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">dismiss</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">scrollView</string>
+ <string key="NS.object.0">UIScrollView</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">scrollView</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">scrollView</string>
+ <string key="candidateClassName">UIScrollView</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/HelpPageViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarButtonItem</string>
+ <string key="superclassName">UIBarItem</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarItem</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UINavigationBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="847596400">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UINavigationItem</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="847596400"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController-iPad.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1024</int>
+ <string key="IBDocument.SystemVersion">10F569</string>
+ <string key="IBDocument.InterfaceBuilderVersion">804</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">123</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="1011244481">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{742, 389}, {240, 102}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage" id="468391955">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpabove.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="636170775">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{753, 408}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Map theme</string>
+ <object class="NSFont" key="IBUIFont" id="583365693">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor" id="283637272">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="552788325">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{753, 425}, {218, 66}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Here you can choose how your map will appear in game.</string>
+ <object class="NSFont" key="IBUIFont" id="818038162">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">16</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="379980516">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{653, 202}, {240, 146}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <reference key="IBUIImage" ref="468391955"/>
+ </object>
+ <object class="IBUILabel" id="901581152">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{664, 223}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Map type</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="595424508">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{664, 244}, {218, 99}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="162303877">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{494, 20}, {240, 101}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpright.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="323588470">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{502, 25}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Map preview</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="687330896">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{502, 46}, {218, 65}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">This is a small preview of your next map. Tap to select / generate a new map.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="713859408">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{391, 389}, {242, 171}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <reference key="IBUIImage" ref="468391955"/>
+ </object>
+ <object class="IBUILabel" id="896727228">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{401, 413}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Teams</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="704238452">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{400, 434}, {232, 120}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="993770514">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{142, 125}, {240, 104}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage" id="63133621">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpleft.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="488737408">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{162, 133}, {204, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Schemes and Weapons</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="463058693">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{162, 152}, {210, 71}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Here you can choose which rules and which weapon set will be applied in game.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="845663511">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{155, 8}, {278, 50}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <reference key="IBUIImage" ref="63133621"/>
+ </object>
+ <object class="IBUILabel" id="823916653">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{177, 6}, {248, 54}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Did you know you can customize almost everything in the settings page?</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Oblique</string>
+ <double key="NSSize">14</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="678356402">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{686, 583}, {240, 117}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage" id="835742298">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpbottom.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="1068254353">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{697, 592}, {138, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Max hedgehogs</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="1023832701">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{697, 609}, {218, 73}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">This number is the maximum size for all the hogs playing (in every team).</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="261734864">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 587}, {240, 109}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <reference key="IBUIImage" ref="835742298"/>
+ </object>
+ <object class="IBUILabel" id="578857422">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{30, 592}, {138, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Size slider</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="972150858">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{30, 608}, {218, 73}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">For Random and Maze maps you can decide to generate only maps of a certain size.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="533288614">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{45, 318}, {240, 128}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">helpplain.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="203633929">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{50, 326}, {229, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Tap anywhere to dismiss</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUILabel" id="345016434">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{52, 348}, {224, 87}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUIImageView" id="109182727">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{344, 635}, {240, 61}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <reference key="IBUIImage" ref="835742298"/>
+ </object>
+ <object class="IBUILabel" id="815146899">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{353, 637}, {138, 22}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Start button</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="379008984">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{354, 650}, {218, 46}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">This button starts the game.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ </object>
+ <string key="NSFrameSize">{1024, 768}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwLjQAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">dismiss</string>
+ <reference key="source" ref="766721923"/>
+ <reference key="destination" ref="841351856"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">16</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="162303877"/>
+ <reference ref="323588470"/>
+ <reference ref="687330896"/>
+ <reference ref="1011244481"/>
+ <reference ref="552788325"/>
+ <reference ref="636170775"/>
+ <reference ref="1023832701"/>
+ <reference ref="1068254353"/>
+ <reference ref="261734864"/>
+ <reference ref="578857422"/>
+ <reference ref="972150858"/>
+ <reference ref="713859408"/>
+ <reference ref="896727228"/>
+ <reference ref="704238452"/>
+ <reference ref="533288614"/>
+ <reference ref="203633929"/>
+ <reference ref="345016434"/>
+ <reference ref="109182727"/>
+ <reference ref="379008984"/>
+ <reference ref="815146899"/>
+ <reference ref="379980516"/>
+ <reference ref="901581152"/>
+ <reference ref="595424508"/>
+ <reference ref="678356402"/>
+ <reference ref="993770514"/>
+ <reference ref="488737408"/>
+ <reference ref="463058693"/>
+ <reference ref="845663511"/>
+ <reference ref="823916653"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="162303877"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="323588470"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="687330896"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">25</int>
+ <reference key="object" ref="533288614"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">26</int>
+ <reference key="object" ref="203633929"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">27</int>
+ <reference key="object" ref="345016434"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">28</int>
+ <reference key="object" ref="1011244481"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">29</int>
+ <reference key="object" ref="636170775"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">30</int>
+ <reference key="object" ref="552788325"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">34</int>
+ <reference key="object" ref="678356402"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">35</int>
+ <reference key="object" ref="1068254353"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">36</int>
+ <reference key="object" ref="1023832701"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">37</int>
+ <reference key="object" ref="261734864"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">38</int>
+ <reference key="object" ref="578857422"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">39</int>
+ <reference key="object" ref="972150858"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">40</int>
+ <reference key="object" ref="993770514"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">41</int>
+ <reference key="object" ref="488737408"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">42</int>
+ <reference key="object" ref="463058693"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">43</int>
+ <reference key="object" ref="713859408"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">44</int>
+ <reference key="object" ref="896727228"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">45</int>
+ <reference key="object" ref="704238452"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">49</int>
+ <reference key="object" ref="109182727"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">50</int>
+ <reference key="object" ref="815146899"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">51</int>
+ <reference key="object" ref="379008984"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">52</int>
+ <reference key="object" ref="379980516"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">53</int>
+ <reference key="object" ref="901581152"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">54</int>
+ <reference key="object" ref="595424508"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">58</int>
+ <reference key="object" ref="845663511"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">59</int>
+ <reference key="object" ref="823916653"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>2.CustomClassName</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>25.IBPluginDependency</string>
+ <string>26.IBPluginDependency</string>
+ <string>27.IBPluginDependency</string>
+ <string>28.IBPluginDependency</string>
+ <string>29.IBPluginDependency</string>
+ <string>30.IBPluginDependency</string>
+ <string>34.IBPluginDependency</string>
+ <string>35.IBPluginDependency</string>
+ <string>36.IBPluginDependency</string>
+ <string>37.IBPluginDependency</string>
+ <string>38.IBPluginDependency</string>
+ <string>39.IBPluginDependency</string>
+ <string>40.IBPluginDependency</string>
+ <string>41.IBPluginDependency</string>
+ <string>42.IBPluginDependency</string>
+ <string>43.IBPluginDependency</string>
+ <string>44.IBPluginDependency</string>
+ <string>45.IBPluginDependency</string>
+ <string>49.IBPluginDependency</string>
+ <string>50.IBPluginDependency</string>
+ <string>51.IBPluginDependency</string>
+ <string>52.IBPluginDependency</string>
+ <string>53.IBPluginDependency</string>
+ <string>54.IBPluginDependency</string>
+ <string>58.IBPluginDependency</string>
+ <string>59.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>HelpPageViewController</string>
+ <string>UIResponder</string>
+ <string>UIControl</string>
+ <string>{{273, 125}, {1024, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">59</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">HelpPageViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">dismiss</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">dismiss</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">dismiss</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/HelpPageViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1024" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>helpabove.png</string>
+ <string>helpbottom.png</string>
+ <string>helpleft.png</string>
+ <string>helpplain.png</string>
+ <string>helpright.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{295, 156}</string>
+ <string>{295, 156}</string>
+ <string>{308, 144}</string>
+ <string>{296, 138}</string>
+ <string>{308, 144}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">123</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController-iPhone.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,907 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1024</int>
+ <string key="IBDocument.SystemVersion">10F569</string>
+ <string key="IBDocument.InterfaceBuilderVersion">804</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">123</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="2"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIScrollView" id="451725730">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUILabel" id="381271451">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 587}, {440, 52}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.</string>
+ <object class="NSFont" key="IBUIFont" id="818038162">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">16</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor" id="283637272">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUILabel" id="160273292">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 279}, {138, 22}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Size slider</string>
+ <object class="NSFont" key="IBUIFont" id="583365693">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="399703336">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 298}, {440, 44}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">For Random and Maze maps you can decide to generate only maps of a certain size.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="780482878">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 511}, {204, 22}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Schemes and Weapons</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="715276626">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 530}, {433, 45}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Here you can choose which rules and which weapon set will be applied in game.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="81383071">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 68}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Map preview</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="518187701">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 88}, {440, 44}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">This is a small preview of your next map. Tap to select / generate a new map.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="601567061">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 140}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Map type</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="514192288">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 164}, {440, 58}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="136109594">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 229}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Map theme</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="345586237">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 244}, {440, 33}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Here you can choose how your map will appear in game.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="686505362">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 347}, {138, 22}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Max hedgehogs</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="629677748">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 367}, {440, 41}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">This number is the maximum size for all the hogs playing (in every team).</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="79643170">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 418}, {109, 22}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Teams</string>
+ <reference key="IBUIFont" ref="583365693"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ <object class="IBUILabel" id="676482380">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 436}, {433, 66}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
+ <reference key="IBUIFont" ref="818038162"/>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ </object>
+ <object class="IBUILabel" id="66496634">
+ <reference key="NSNextResponder" ref="451725730"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{13, 3}, {440, 60}}</string>
+ <reference key="NSSuperview" ref="451725730"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Here you can find help for the game configuration options. You can customize almost everything in the settings page.</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Oblique</string>
+ <double key="NSSize">16</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="IBUITextColor" ref="283637272"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">0</int>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 276}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 276}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuOTg4MjM1MzU0NCAxAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics"/>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">scrollView</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="451725730"/>
+ </object>
+ <int key="connectionID">95</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="451725730"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">60</int>
+ <reference key="object" ref="451725730"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="381271451"/>
+ <reference ref="160273292"/>
+ <reference ref="399703336"/>
+ <reference ref="81383071"/>
+ <reference ref="518187701"/>
+ <reference ref="601567061"/>
+ <reference ref="514192288"/>
+ <reference ref="136109594"/>
+ <reference ref="345586237"/>
+ <reference ref="686505362"/>
+ <reference ref="629677748"/>
+ <reference ref="780482878"/>
+ <reference ref="715276626"/>
+ <reference ref="79643170"/>
+ <reference ref="676482380"/>
+ <reference ref="66496634"/>
+ </object>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">61</int>
+ <reference key="object" ref="381271451"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">62</int>
+ <reference key="object" ref="160273292"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">63</int>
+ <reference key="object" ref="399703336"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">64</int>
+ <reference key="object" ref="780482878"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">65</int>
+ <reference key="object" ref="715276626"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">66</int>
+ <reference key="object" ref="81383071"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">67</int>
+ <reference key="object" ref="518187701"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">68</int>
+ <reference key="object" ref="601567061"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">69</int>
+ <reference key="object" ref="514192288"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">70</int>
+ <reference key="object" ref="136109594"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">71</int>
+ <reference key="object" ref="345586237"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">72</int>
+ <reference key="object" ref="686505362"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">73</int>
+ <reference key="object" ref="629677748"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">74</int>
+ <reference key="object" ref="79643170"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">75</int>
+ <reference key="object" ref="676482380"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">76</int>
+ <reference key="object" ref="66496634"/>
+ <reference key="parent" ref="451725730"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>60.IBPluginDependency</string>
+ <string>60.IBViewBoundsToFrameTransform</string>
+ <string>61.IBPluginDependency</string>
+ <string>61.IBViewBoundsToFrameTransform</string>
+ <string>62.IBPluginDependency</string>
+ <string>62.IBViewBoundsToFrameTransform</string>
+ <string>63.IBPluginDependency</string>
+ <string>63.IBViewBoundsToFrameTransform</string>
+ <string>64.IBPluginDependency</string>
+ <string>64.IBViewBoundsToFrameTransform</string>
+ <string>65.IBPluginDependency</string>
+ <string>65.IBViewBoundsToFrameTransform</string>
+ <string>66.IBPluginDependency</string>
+ <string>66.IBViewBoundsToFrameTransform</string>
+ <string>67.IBPluginDependency</string>
+ <string>67.IBViewBoundsToFrameTransform</string>
+ <string>68.IBPluginDependency</string>
+ <string>68.IBViewBoundsToFrameTransform</string>
+ <string>69.IBPluginDependency</string>
+ <string>69.IBViewBoundsToFrameTransform</string>
+ <string>70.IBPluginDependency</string>
+ <string>70.IBViewBoundsToFrameTransform</string>
+ <string>71.IBPluginDependency</string>
+ <string>71.IBViewBoundsToFrameTransform</string>
+ <string>72.IBPluginDependency</string>
+ <string>72.IBViewBoundsToFrameTransform</string>
+ <string>73.IBPluginDependency</string>
+ <string>73.IBViewBoundsToFrameTransform</string>
+ <string>74.IBPluginDependency</string>
+ <string>74.IBViewBoundsToFrameTransform</string>
+ <string>75.IBPluginDependency</string>
+ <string>75.IBViewBoundsToFrameTransform</string>
+ <string>76.IBPluginDependency</string>
+ <string>76.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>HelpPageViewController</string>
+ <string>UIResponder</string>
+ <string>{{16, 775}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform"/>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUGgAABEDIAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABC+AAAw0kAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw14AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw9mAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw+6AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABByAAAwqYAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAwxMAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAADCQAAAwqYAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAADCQAAAwzcAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDAAAAw3AAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDAAAAw5aAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDOwAAw6OAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDOwAAw8WAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDDgAAw7UAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDDQAAw/CAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAADBAAAAwlQAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">95</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">HelpPageViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">dismiss</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">dismiss</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">dismiss</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">scrollView</string>
+ <string key="NS.object.0">UIScrollView</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">scrollView</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">scrollView</string>
+ <string key="candidateClassName">UIScrollView</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/HelpPageViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1024" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">123</string>
+ </data>
+</archive>
--- a/project_files/HedgewarsMobile/Classes/HelpPageViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/HelpPageViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,7 @@
#import "HelpPageViewController.h"
-#import "CommodityFunctions.h"
+
@implementation HelpPageViewController
@synthesize scrollView;
--- a/project_files/HedgewarsMobile/Classes/HogHatViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/HogHatViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,8 +20,7 @@
#import "HogHatViewController.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
+
@implementation HogHatViewController
@synthesize teamDictionary, hatArray, normalHogSprite, lastIndexPath, selectedHog;
@@ -48,7 +47,7 @@
self.normalHogSprite = hogSprite;
[hogSprite release];
- self.title = NSLocalizedString(@"Change hedgehog's hat",@"");
+ self.title = NSLocalizedString(@"Change hedgehogs' hat",@"");
}
-(void) viewWillAppear:(BOOL)animated {
--- a/project_files/HedgewarsMobile/Classes/HoldTableViewCell.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/HoldTableViewCell.h Fri Oct 28 18:26:17 2011 +0200
@@ -23,7 +23,7 @@
@protocol HoldTableViewCellDelegate <NSObject>
--(void) holdAction:(NSString *)content;
+-(void) holdAction:(NSString *)content onTable:(UITableView *)aTableView;
@end
--- a/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m Fri Oct 28 18:26:17 2011 +0200
@@ -58,8 +58,8 @@
}
-(void) holdAction {
- if (self.delegate != nil && [self.delegate respondsToSelector:@selector(holdAction:)])
- [self.delegate holdAction:self.textLabel.text];
+ if (self.delegate != nil && [self.delegate respondsToSelector:@selector(holdAction:onTable:)])
+ [self.delegate holdAction:self.textLabel.text onTable:(UITableView *)self.superview];
}
-(void) dealloc {
--- a/project_files/HedgewarsMobile/Classes/InGameMenuViewController.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/InGameMenuViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -31,6 +31,6 @@
-(void) present;
-(void) dismiss;
--(void) saveCurrentScreenToPhotoAlbum:(UIAlertView *)alert;
+//-(void) saveCurrentScreenToPhotoAlbum:(UIAlertView *)alert;
@end
--- a/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,11 +20,9 @@
#import "InGameMenuViewController.h"
-#import "PascalImports.h"
-#import "CommodityFunctions.h"
#import "SDL_sysvideo.h"
#import "SDL_uikitkeyboard.h"
-#import "OpenGLES/ES1/gl.h"
+
#define VIEW_HEIGHT 200
@@ -90,6 +88,7 @@
SDL_iPhoneKeyboardHide((SDL_Window *)HW_getSDLWindow());
+ /*
if (shouldTakeScreenshot) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please wait"
message:nil
@@ -107,6 +106,7 @@
// all these hacks because of the PAUSE caption on top of everything...
[self performSelector:@selector(saveCurrentScreenToPhotoAlbum:) withObject:alert afterDelay:0.3];
}
+ */
shouldTakeScreenshot = NO;
}
@@ -192,6 +192,7 @@
}
//TODO: check this is still needed since we switched to SDL_GL_CreateContext()
+/*
#pragma mark -
#pragma mark save screenshot
//by http://www.bit-101.com/blog/?p=1861
@@ -247,6 +248,6 @@
// add callback for cleaning memory and removing alert
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (void *)alert);
}
-
+*/
@end
--- a/project_files/HedgewarsMobile/Classes/LevelViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/LevelViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,6 @@
#import "LevelViewController.h"
-#import "CommodityFunctions.h"
@implementation LevelViewController
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController-iPad.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,670 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="976741091">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrameSize">{1024, 768}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">background.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="867308721">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{383, 389}, {263, 244}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="917635782">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <double key="IBUITitleEdgeInsets.top">215</double>
+ <double key="IBUITitleEdgeInsets.bottom">0.0</double>
+ <double key="IBUITitleEdgeInsets.left">0.0</double>
+ <double key="IBUITitleEdgeInsets.right">0.0</double>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="918890028">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuODAwMDAwMDcxNSAwLjAzOTIxNTY4NzY2AA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="112471976">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">localplayButton~ipad.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="95106947">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{795, 317}, {18, 19}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <float key="IBUIAlpha">0.31690141558647156</float>
+ <int key="IBUITag">3</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <int key="IBUIButtonType">3</int>
+ <bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ </object>
+ <object class="IBUIButton" id="898948205">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{940, 686}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">2</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">settingsButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="894101036">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 686}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">4</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">savesButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIImageView" id="1019880682">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{242, 43}, {540, 300}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">title~ipad.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="357438048">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{468, 686}, {89, 37}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">5</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Missions</string>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ </object>
+ </object>
+ <string key="NSFrameSize">{1024, 768}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="95106947"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">47</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="867308721"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">48</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="898948205"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">54</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="894101036"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">89</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="357438048"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">92</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="976741091"/>
+ <reference ref="867308721"/>
+ <reference ref="95106947"/>
+ <reference ref="898948205"/>
+ <reference ref="894101036"/>
+ <reference ref="1019880682"/>
+ <reference ref="357438048"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">39</int>
+ <reference key="object" ref="867308721"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">local</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">45</int>
+ <reference key="object" ref="95106947"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">52</int>
+ <reference key="object" ref="898948205"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">37</int>
+ <reference key="object" ref="976741091"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">88</int>
+ <reference key="object" ref="894101036"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">90</int>
+ <reference key="object" ref="1019880682"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">91</int>
+ <reference key="object" ref="357438048"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>37.IBPluginDependency</string>
+ <string>39.IBPluginDependency</string>
+ <string>45.IBPluginDependency</string>
+ <string>45.IBViewBoundsToFrameTransform</string>
+ <string>52.IBPluginDependency</string>
+ <string>52.IBViewBoundsToFrameTransform</string>
+ <string>88.IBPluginDependency</string>
+ <string>88.IBViewBoundsToFrameTransform</string>
+ <string>90.IBPluginDependency</string>
+ <string>90.IBViewBoundsToFrameTransform</string>
+ <string>91.IBPluginDependency</string>
+ <string>91.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MainMenuViewController</string>
+ <string>UIResponder</string>
+ <string>{{267, 388}, {1024, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABERQAAw56AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABEaQAAxDsAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAxDsAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDbQAAw6qAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUPqAABEK4AAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">92</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">MainMenuViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">switchViews:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">switchViews:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">switchViews:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MainMenuViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="864669175">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="864669175"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>background.png</string>
+ <string>localplayButton~ipad.png</string>
+ <string>savesButton.png</string>
+ <string>settingsButton.png</string>
+ <string>title~ipad.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{1024, 768}</string>
+ <string>{263, 244}</string>
+ <string>{64, 64}</string>
+ <string>{64, 64}</string>
+ <string>{540, 300}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController-iPhone.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,687 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">293</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="249993817">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrameSize">{480, 320}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">background~iphone.png</string>
+ </object>
+ </object>
+ <object class="IBUIImageView" id="171108356">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">293</int>
+ <string key="NSFrame">{{105, 20}, {270, 150}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">title~iphone.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="124270424">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{190, 200}, {100, 100}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAgMAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="917635782">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="918890028">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="112471976">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">localplayButton~iphone.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="753723574">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">269</int>
+ <string key="NSFrame">{{396, 236}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <int key="IBUITag">2</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">settingsButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="705508539">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">269</int>
+ <string key="NSFrame">{{20, 236}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <int key="IBUITag">4</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">savesButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="818907840">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 19}, {18, 19}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <float key="IBUIAlpha">0.5</float>
+ <int key="IBUITag">3</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <int key="IBUIButtonType">3</int>
+ <bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ </object>
+ <object class="IBUIButton" id="629390161">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{439, 13}, {29, 31}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">5</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="917635782"/>
+ <int key="IBUIButtonType">2</int>
+ <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 320}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="753723574"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">30</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="124270424"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">40</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="818907840"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">42</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="705508539"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">44</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">switchViews:</string>
+ <reference key="source" ref="629390161"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">47</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="249993817"/>
+ <reference ref="818907840"/>
+ <reference ref="171108356"/>
+ <reference ref="705508539"/>
+ <reference ref="753723574"/>
+ <reference ref="124270424"/>
+ <reference ref="629390161"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">23</int>
+ <reference key="object" ref="171108356"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">22</int>
+ <reference key="object" ref="249993817"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">41</int>
+ <reference key="object" ref="818907840"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">43</int>
+ <reference key="object" ref="705508539"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">24</int>
+ <reference key="object" ref="124270424"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">28</int>
+ <reference key="object" ref="753723574"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">46</int>
+ <reference key="object" ref="629390161"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>22.IBPluginDependency</string>
+ <string>22.IBViewBoundsToFrameTransform</string>
+ <string>23.IBPluginDependency</string>
+ <string>23.IBViewBoundsToFrameTransform</string>
+ <string>24.IBPluginDependency</string>
+ <string>24.IBViewBoundsToFrameTransform</string>
+ <string>28.IBPluginDependency</string>
+ <string>28.IBViewBoundsToFrameTransform</string>
+ <string>41.IBPluginDependency</string>
+ <string>41.IBViewBoundsToFrameTransform</string>
+ <string>43.IBPluginDependency</string>
+ <string>43.IBViewBoundsToFrameTransform</string>
+ <string>46.IBPluginDependency</string>
+ <string>46.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MainMenuViewController</string>
+ <string>UIResponder</string>
+ <string>{{517, 519}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw5UAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCygAAwzcAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDPgAAw5UAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDxgAAw5iAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBcAAAwhAAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw5iAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABD0YAAwmgAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">47</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">MainMenuViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">switchViews:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">switchViews:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">switchViews:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MainMenuViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="238583711">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="238583711"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>background~iphone.png</string>
+ <string>localplayButton~iphone.png</string>
+ <string>savesButton.png</string>
+ <string>settingsButton.png</string>
+ <string>title~iphone.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{480, 320}</string>
+ <string>{100, 100}</string>
+ <string>{64, 64}</string>
+ <string>{64, 64}</string>
+ <string>{270, 150}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -22,24 +22,27 @@
#import <UIKit/UIKit.h>
@class GameConfigViewController;
-@class SplitViewRootController;
+@class SettingsContainerViewController;
@class AboutViewController;
@class SavedGamesViewController;
@class RestoreViewController;
+@class MissionTrainingViewController;
@interface MainMenuViewController : UIViewController <UIAlertViewDelegate> {
GameConfigViewController *gameConfigViewController;
- SplitViewRootController *settingsViewController;
+ SettingsContainerViewController *settingsViewController;
AboutViewController *aboutViewController;
SavedGamesViewController *savedGamesViewController;
- RestoreViewController *restoreViewCOntroller;
+ RestoreViewController *restoreViewController;
+ MissionTrainingViewController *missionsViewController;
}
@property (nonatomic,retain) GameConfigViewController *gameConfigViewController;
-@property (nonatomic,retain) SplitViewRootController *settingsViewController;
+@property (nonatomic,retain) SettingsContainerViewController *settingsViewController;
@property (nonatomic,retain) AboutViewController *aboutViewController;
@property (nonatomic,retain) SavedGamesViewController *savedGamesViewController;
@property (nonatomic,retain) RestoreViewController *restoreViewController;
+@property (nonatomic,retain) MissionTrainingViewController *missionsViewController;
-(IBAction) switchViews:(id)sender;
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -21,19 +21,20 @@
#import "MainMenuViewController.h"
#import "CreationChamber.h"
-#import "PascalImports.h"
#import "GameConfigViewController.h"
-#import "SplitViewRootController.h"
+#import "SettingsContainerViewController.h"
#import "AboutViewController.h"
#import "SavedGamesViewController.h"
#import "RestoreViewController.h"
+#import "MissionTrainingViewController.h"
#import "GameInterfaceBridge.h"
#import "Appirater.h"
#import "ServerSetup.h"
@implementation MainMenuViewController
-@synthesize gameConfigViewController, settingsViewController, aboutViewController, savedGamesViewController, restoreViewController;
+@synthesize gameConfigViewController, settingsViewController, aboutViewController, savedGamesViewController,
+ restoreViewController, missionsViewController;
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return rotationManager(interfaceOrientation);
@@ -41,59 +42,45 @@
// check if some configuration files are already set; if they are present it means that the current copy must be updated
-(void) createNecessaryFiles {
- NSString *resourcesDir = [[NSBundle mainBundle] resourcePath];
DLog(@"Creating necessary files");
+ NSInteger index;
// SAVES - just delete and overwrite
if ([[NSFileManager defaultManager] fileExistsAtPath:SAVES_DIRECTORY()])
[[NSFileManager defaultManager] removeItemAtPath:SAVES_DIRECTORY() error:NULL];
- [[NSFileManager defaultManager] createDirectoryAtPath:SAVES_DIRECTORY() withIntermediateDirectories:NO attributes:nil error:NULL];
+ [[NSFileManager defaultManager] createDirectoryAtPath:SAVES_DIRECTORY()
+ withIntermediateDirectories:NO
+ attributes:nil
+ error:NULL];
// SETTINGS - nsuserdefaults ftw
- createSettings();
+ [CreationChamber createSettings];
// TEAMS - update exisiting teams with new format
- if ([[NSFileManager defaultManager] fileExistsAtPath:TEAMS_DIRECTORY()] == NO) {
- [[NSFileManager defaultManager] createDirectoryAtPath:TEAMS_DIRECTORY()
- withIntermediateDirectories:YES
- attributes:nil
- error:NULL];
- // we copy teams only the first time because it's unlikely that newer ones are going to be added
- NSString *baseTeamsDir = [[NSString alloc] initWithFormat:@"%@/Settings/Teams/",resourcesDir];
- for (NSString *str in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:baseTeamsDir error:NULL]) {
- NSString *sourceFile = [baseTeamsDir stringByAppendingString:str];
- NSString *destinationFile = [TEAMS_DIRECTORY() stringByAppendingString:str];
- [[NSFileManager defaultManager] removeItemAtPath:destinationFile error:NULL];
- [[NSFileManager defaultManager] copyItemAtPath:sourceFile toPath:destinationFile error:NULL];
- }
- [baseTeamsDir release];
- }
- // merge not needed as format rarely changes
+ NSArray *teamNames = [[NSArray alloc] initWithObjects:@"Edit Me!",@"Ninjas",@"Pirates",@"Robots",nil];
+ index = 0;
+ for (NSString *name in teamNames)
+ [CreationChamber createTeamNamed:name ofType:index++ controlledByAI:[name isEqualToString:@"Robots"]];
+ [teamNames release];
// SCHEMES - always overwrite and delete custom ones
if ([[NSFileManager defaultManager] fileExistsAtPath:SCHEMES_DIRECTORY()] == YES)
[[NSFileManager defaultManager] removeItemAtPath:SCHEMES_DIRECTORY() error:NULL];
- createSchemeNamed(@"Default", 0);
- createSchemeNamed(@"Pro Mode", 1);
- createSchemeNamed(@"Shoppa", 2);
- createSchemeNamed(@"Clean Slate", 3);
- createSchemeNamed(@"Minefield", 4);
- createSchemeNamed(@"Barrel Mayhem", 5);
- createSchemeNamed(@"Tunnel Hogs", 6);
- createSchemeNamed(@"Fort Mode", 7);
- createSchemeNamed(@"Timeless", 8);
- createSchemeNamed(@"Thinking with Portals", 9);
- createSchemeNamed(@"King Mode", 10);
+ NSArray *schemeNames = [[NSArray alloc] initWithObjects:@"Default",@"Pro Mode",@"Shoppa",@"Clean Slate",
+ @"Minefield",@"Barrel Mayhem",@"Tunnel Hogs",@"Fort Mode",@"Timeless",
+ @"Thinking with Portals",@"King Mode",nil];
+ index = 0;
+ for (NSString *name in schemeNames)
+ [CreationChamber createSchemeNamed:name ofType:index++];
+ [schemeNames release];
- // WEAPONS - always overwrite
- createWeaponNamed(@"Default", 0);
- createWeaponNamed(@"Crazy", 1);
- createWeaponNamed(@"Pro Mode", 2);
- createWeaponNamed(@"Shoppa", 3);
- createWeaponNamed(@"Clean Slate", 4);
- createWeaponNamed(@"Minefield", 5);
- createWeaponNamed(@"Thinking with Portals", 6);
- // merge not needed because weapons not present in the set are 0ed by GameSetup
+ // WEAPONS - always overwrite as merge is not needed (missing weaps are 0ed automatically)
+ NSArray *weaponNames = [[NSArray alloc] initWithObjects:@"Default",@"Crazy",@"Pro Mode",@"Shoppa",@"Clean Slate",
+ @"Minefield",@"Thinking with Portals",nil];
+ index = 0;
+ for (NSString *name in weaponNames)
+ [CreationChamber createWeaponNamed:name ofType:index++];
+ [weaponNames release];
}
#pragma mark -
@@ -164,24 +151,22 @@
switch (button.tag) {
case 0:
if (nil == self.gameConfigViewController) {
- xib = IS_IPAD() ? nil : @"GameConfigViewController";
+ xib = IS_IPAD() ? @"GameConfigViewController-iPad" : @"GameConfigViewController-iPhone";
GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil];
gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
self.gameConfigViewController = gcvc;
[gcvc release];
}
-
[self presentModalViewController:self.gameConfigViewController animated:YES];
break;
case 2:
if (nil == self.settingsViewController) {
- SplitViewRootController *svrc = [[SplitViewRootController alloc] initWithNibName:nil bundle:nil];
+ SettingsContainerViewController *svrc = [[SettingsContainerViewController alloc] initWithNibName:nil bundle:nil];
svrc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
self.settingsViewController = svrc;
[svrc release];
}
-
[self presentModalViewController:self.settingsViewController animated:YES];
break;
case 3:
@@ -224,9 +209,20 @@
self.savedGamesViewController = savedgames;
[savedgames release];
}
-
[self presentModalViewController:self.savedGamesViewController animated:YES];
break;
+ case 5:
+ if (nil == self.missionsViewController) {
+ xib = IS_IPAD() ? @"MissionTrainingViewController-iPad" : @"MissionTrainingViewController-iPhone";
+ MissionTrainingViewController *missions = [[MissionTrainingViewController alloc] initWithNibName:xib bundle:nil];
+ missions.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve;
+ if ([missions respondsToSelector:@selector(setModalPresentationStyle:)])
+ missions.modalPresentationStyle = UIModalPresentationPageSheet;
+ self.missionsViewController = missions;
+ [missions release];
+ }
+ [self presentModalViewController:self.missionsViewController animated:YES];
+ break;
default:
alert = [[UIAlertView alloc] initWithTitle:@"Not Yet Implemented"
message:@"Sorry, this feature is not yet implemented"
@@ -254,6 +250,7 @@
self.aboutViewController = nil;
self.savedGamesViewController = nil;
self.restoreViewController = nil;
+ self.missionsViewController = nil;
MSG_DIDUNLOAD();
[super viewDidUnload];
}
@@ -269,6 +266,8 @@
self.savedGamesViewController = nil;
if (self.restoreViewController.view.superview == nil)
self.restoreViewController = nil;
+ if (self.missionsViewController.view.superview == nil)
+ self.missionsViewController = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
@@ -279,6 +278,7 @@
releaseAndNil(aboutViewController);
releaseAndNil(savedGamesViewController);
releaseAndNil(restoreViewController);
+ releaseAndNil(missionsViewController);
[super dealloc];
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController-iPad.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,677 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUISegmentedControl" id="88728219">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{20, 166}, {280, 30}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBSegmentControlStyle">2</int>
+ <int key="IBNumberOfSegments">4</int>
+ <int key="IBSelectedSegmentIndex">1</int>
+ <object class="NSArray" key="IBSegmentTitles">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Random</string>
+ <string>Map</string>
+ <string>Maze</string>
+ <string>Mission</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentWidths">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentEnabledStates">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentContentOffsets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentImages">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSNull" id="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ </object>
+ <object class="NSColor" key="IBTintColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+ </object>
+ </object>
+ <object class="IBUITableView" id="394383001">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{0, 214}, {320, 554}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <object class="NSColor" key="IBUIBackgroundColor" id="959670140">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIAlwaysBounceVertical">YES</bool>
+ <bool key="IBUIShowsHorizontalScrollIndicator">NO</bool>
+ <int key="IBUIIndicatorStyle">2</int>
+ <int key="IBUIStyle">1</int>
+ <int key="IBUISeparatorStyle">2</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ </object>
+ </object>
+ <string key="NSFrameSize">{320, 768}</string>
+ <reference key="NSSuperview"/>
+ <reference key="IBUIBackgroundColor" ref="959670140"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">segmentedControl</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="88728219"/>
+ </object>
+ <int key="connectionID">21</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">segmentedControlChanged:</string>
+ <reference key="source" ref="88728219"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">22</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">dataSource</string>
+ <reference key="source" ref="394383001"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">67</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="394383001"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">68</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="394383001"/>
+ </object>
+ <int key="connectionID">69</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="394383001"/>
+ <reference ref="88728219"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">66</int>
+ <reference key="object" ref="394383001"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="88728219"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>66.IBPluginDependency</string>
+ <string>66.IBViewBoundsToFrameTransform</string>
+ <string>7.IBPluginDependency</string>
+ <string>7.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MapConfigViewController</string>
+ <string>UIResponder</string>
+ <string>{{289, 181}, {320, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABEMAAAxCmAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw0IAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">126</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">mapButtonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">segmentedControlChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderEndedChanging:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UILabel</string>
+ <string>MapPreviewButtonView</string>
+ <string>UISegmentedControl</string>
+ <string>UILabel</string>
+ <string>UISlider</string>
+ <string>UITableView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">maxLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">previewButton</string>
+ <string key="candidateClassName">MapPreviewButtonView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">segmentedControl</string>
+ <string key="candidateClassName">UISegmentedControl</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sizeLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">slider</string>
+ <string key="candidateClassName">UISlider</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapPreviewButtonView</string>
+ <string key="superclassName">UIButton</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">delegate</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">delegate</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">delegate</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapPreviewButtonView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1034187891">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/HWUtils.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <reference key="sourceIdentifier" ref="1034187891"/>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="567455553">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="567455553"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISegmentedControl</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISlider</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISlider.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController-iPhone.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,916 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="574494641">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrameSize">{480, 276}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">background~iphone.png</string>
+ </object>
+ </object>
+ <object class="IBUISegmentedControl" id="88728219">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{9, 14}, {270, 30}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBSegmentControlStyle">2</int>
+ <int key="IBNumberOfSegments">4</int>
+ <int key="IBSelectedSegmentIndex">1</int>
+ <object class="NSArray" key="IBSegmentTitles">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Random</string>
+ <string>Map</string>
+ <string>Maze</string>
+ <string>Mission</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentWidths">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ <real value="0.0"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentEnabledStates">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentContentOffsets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ <string>{0, 0}</string>
+ </object>
+ <object class="NSMutableArray" key="IBSegmentImages">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSNull" id="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ <reference ref="4"/>
+ </object>
+ <object class="NSColor" key="IBTintColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+ </object>
+ </object>
+ <object class="IBUISlider" id="938256702">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{119, 207}, {149, 23}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <float key="IBUIValue">0.05000000074505806</float>
+ <float key="IBUIMaxValue">0.05000000074505806</float>
+ </object>
+ <object class="IBUIButton" id="326163764">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{16, 58}, {256, 128}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="437070330">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ </object>
+ <object class="IBUILabel" id="634417433">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{9, 221}, {97, 35}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Loading...</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">17</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MC45NDExNzY1MzM3IDAuODE1Njg2MzQ1MSAwAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUILabel" id="743202682">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{109, 237}, {169, 29}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Label</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Oblique</string>
+ <double key="NSSize">22</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MC45NDExNzY1MzM3IDAuODE1Njg2MzQ1MSAwAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUITableView" id="565214171">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{284, 0}, {196, 276}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIBouncesZoom">NO</bool>
+ <int key="IBUIStyle">1</int>
+ <int key="IBUISeparatorStyle">2</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">10</float>
+ <float key="IBUISectionFooterHeight">10</float>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 276}</string>
+ <reference key="NSSuperview"/>
+ <reference key="IBUIBackgroundColor" ref="437070330"/>
+ <object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics"/>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">previewButton</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="326163764"/>
+ </object>
+ <int key="connectionID">13</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">maxLabel</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="634417433"/>
+ </object>
+ <int key="connectionID">16</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">sizeLabel</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="743202682"/>
+ </object>
+ <int key="connectionID">18</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">sliderChanged:</string>
+ <reference key="source" ref="938256702"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">19</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">sliderEndedChanging:</string>
+ <reference key="source" ref="938256702"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">20</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">segmentedControl</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="88728219"/>
+ </object>
+ <int key="connectionID">21</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">segmentedControlChanged:</string>
+ <reference key="source" ref="88728219"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">22</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">slider</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="938256702"/>
+ </object>
+ <int key="connectionID">23</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">dataSource</string>
+ <reference key="source" ref="565214171"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">26</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="565214171"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">27</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="565214171"/>
+ </object>
+ <int key="connectionID">32</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="326163764"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">34</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">mapButtonPressed:</string>
+ <reference key="source" ref="326163764"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">37</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="326163764"/>
+ <reference ref="565214171"/>
+ <reference ref="938256702"/>
+ <reference ref="743202682"/>
+ <reference ref="574494641"/>
+ <reference ref="88728219"/>
+ <reference ref="634417433"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="88728219"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="938256702"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="326163764"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="743202682"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">25</int>
+ <reference key="object" ref="565214171"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">Table View (Themes)</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">35</int>
+ <reference key="object" ref="574494641"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="634417433"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>11.IBViewBoundsToFrameTransform</string>
+ <string>17.IBPluginDependency</string>
+ <string>17.IBViewBoundsToFrameTransform</string>
+ <string>25.IBPluginDependency</string>
+ <string>25.IBViewBoundsToFrameTransform</string>
+ <string>35.IBPluginDependency</string>
+ <string>35.IBViewBoundsToFrameTransform</string>
+ <string>7.IBPluginDependency</string>
+ <string>7.IBViewBoundsToFrameTransform</string>
+ <string>8.IBPluginDependency</string>
+ <string>9.CustomClassName</string>
+ <string>9.IBPluginDependency</string>
+ <string>9.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MapConfigViewController</string>
+ <string>UIResponder</string>
+ <string>{{790, 298}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABB+AAAw4QAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCyAAAw2YAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDjgAAw4kAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw4kAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBUAAAwigAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>MapPreviewButtonView</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBgAAAwzgAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">37</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapConfigViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>mapButtonPressed:</string>
+ <string>segmentedControlChanged:</string>
+ <string>sliderChanged:</string>
+ <string>sliderEndedChanging:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">mapButtonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">segmentedControlChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderChanged:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">sliderEndedChanging:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UILabel</string>
+ <string>MapPreviewButtonView</string>
+ <string>UISegmentedControl</string>
+ <string>UILabel</string>
+ <string>UISlider</string>
+ <string>UITableView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>maxLabel</string>
+ <string>previewButton</string>
+ <string>segmentedControl</string>
+ <string>sizeLabel</string>
+ <string>slider</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">maxLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">previewButton</string>
+ <string key="candidateClassName">MapPreviewButtonView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">segmentedControl</string>
+ <string key="candidateClassName">UISegmentedControl</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sizeLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">slider</string>
+ <string key="candidateClassName">UISlider</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapConfigViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">MapPreviewButtonView</string>
+ <string key="superclassName">UIButton</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">delegate</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">delegate</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">delegate</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MapPreviewButtonView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="290282013">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">ExtraCategories.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <reference key="sourceIdentifier" ref="290282013"/>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="567455553">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="567455553"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISegmentedControl</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISlider</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISlider.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <string key="NS.key.0">background~iphone.png</string>
+ <string key="NS.object.0">{480, 320}</string>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -22,8 +22,6 @@
#import <UIKit/UIKit.h>
#import "MapPreviewButtonView.h"
-@class SchemeWeaponConfigViewController;
-@class GameConfigViewController;
@interface MapConfigViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, MapPreviewViewDelegate> {
NSInteger oldValue; // for the slider
@@ -51,15 +49,13 @@
// internal objects
NSIndexPath *lastIndexPath;
NSArray *dataSourceArray;
-
- // controller for mission state
- SchemeWeaponConfigViewController *externalController;
- GameConfigViewController *parentController;
}
+@property (nonatomic,assign) NSInteger oldValue;
+@property (nonatomic,assign) NSInteger oldPage;
+@property (nonatomic,assign) BOOL busy;
@property (nonatomic,assign) NSInteger maxHogs;
-@property (nonatomic,assign) BOOL busy;
@property (nonatomic,retain) NSString *seedCommand;
@property (nonatomic,retain) NSString *templateFilterCommand;
@property (nonatomic,retain) NSString *mapGenCommand;
@@ -78,21 +74,15 @@
@property (nonatomic,retain) NSIndexPath *lastIndexPath;
@property (nonatomic,retain) NSArray *dataSourceArray;
-@property (nonatomic,assign) SchemeWeaponConfigViewController *externalController;
-@property (nonatomic,assign) GameConfigViewController *parentController;
-
--(IBAction) buttonPressed:(id) sender;
-
--(IBAction) mapButtonPressed;
+-(IBAction) mapButtonPressed:(id) sender;
-(IBAction) sliderChanged:(id) sender;
-(IBAction) sliderEndedChanging:(id) sender;
-(IBAction) segmentedControlChanged:(id) sender;
-(void) turnOnWidgets;
-(void) turnOffWidgets;
--(void) setLabelText:(NSString *)str;
+-(void) setMaxLabelText:(NSString *)str;
-(void) updatePreview;
--(void) loadDataSourceArray;
@end
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,33 +20,32 @@
#import "MapConfigViewController.h"
-#import "PascalImports.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
+#import <QuartzCore/QuartzCore.h>
#import "SchemeWeaponConfigViewController.h"
#import "GameConfigViewController.h"
+
#define scIndex self.segmentedControl.selectedSegmentIndex
#define isRandomness() (segmentedControl.selectedSegmentIndex == 0 || segmentedControl.selectedSegmentIndex == 2)
@implementation MapConfigViewController
@synthesize previewButton, maxHogs, seedCommand, templateFilterCommand, mapGenCommand, mazeSizeCommand, themeCommand, staticMapCommand,
missionCommand, tableView, maxLabel, sizeLabel, segmentedControl, slider, lastIndexPath, dataSourceArray, busy,
- externalController, parentController;
+ oldPage, oldValue;
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(IBAction) mapButtonPressed {
+-(IBAction) mapButtonPressed:(id) sender {
[AudioManagerController playClickSound];
[self updatePreview];
}
-(void) updatePreview {
// don't generate a new preview while it's already generating one
- if (busy)
+ if (self.busy)
return;
// generate a seed
@@ -57,24 +56,19 @@
self.seedCommand = seedCmd;
[seedCmd release];
- if (self.dataSourceArray == nil)
- [self loadDataSourceArray];
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
- NSIndexPath *theIndex;
if (isRandomness()) {
// prevent other events and add an activity while the preview is beign generated
[self turnOffWidgets];
[self.previewButton updatePreviewWithSeed:seed];
- theIndex = [NSIndexPath indexPathForRow:(random()%[source count]) inSection:0];
- } else {
- theIndex = [NSIndexPath indexPathForRow:(random()%[source count]) inSection:0];
// the preview for static maps is loaded in didSelectRowAtIndexPath
}
[seed release];
// perform as if user clicked on an entry
+ NSIndexPath *theIndex = [NSIndexPath indexPathForRow:(random()%[source count]) inSection:0];
[self tableView:self.tableView didSelectRowAtIndexPath:theIndex];
- if (IS_NOT_POWERFUL(getModelType()) == NO)
+ if (IS_NOT_POWERFUL([HWUtils modelType]) == NO)
[self.tableView scrollToRowAtIndexPath:theIndex atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
@@ -82,22 +76,24 @@
busy = YES;
self.previewButton.alpha = 0.5f;
self.previewButton.enabled = NO;
- self.maxLabel.text = @"...";
+ self.maxLabel.text = NSLocalizedString(@"Loading...",@"");;
self.segmentedControl.enabled = NO;
self.slider.enabled = NO;
}
+#pragma mark -
+#pragma mark MapPreviewButtonView delegate methods
-(void) turnOnWidgets {
self.previewButton.alpha = 1.0f;
self.previewButton.enabled = YES;
self.segmentedControl.enabled = YES;
self.slider.enabled = YES;
- busy = NO;
+ self.busy = NO;
}
--(void) setLabelText:(NSString *)str {
+-(void) setMaxLabelText:(NSString *)str {
self.maxHogs = [str intValue];
- self.maxLabel.text = str;
+ self.maxLabel.text = [NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"Max Hogs:",@""),str];
}
-(NSDictionary *)getDataForEngine {
@@ -117,8 +113,6 @@
}
-(NSInteger) tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger) section {
- if (self.dataSourceArray == nil)
- [self loadDataSourceArray];
return [[self.dataSourceArray objectAtIndex:scIndex] count];
}
@@ -130,15 +124,13 @@
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
- if (self.dataSourceArray == nil)
- [self loadDataSourceArray];
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
NSString *labelString = [source objectAtIndex:row];
cell.textLabel.text = labelString;
cell.textLabel.adjustsFontSizeToFitWidth = YES;
cell.textLabel.minimumFontSize = 7;
- cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
+ cell.textLabel.textColor = [UIColor lightYellowColor];
cell.textLabel.backgroundColor = [UIColor clearColor];
if (isRandomness()) {
@@ -155,14 +147,12 @@
} else
cell.accessoryView = nil;
- cell.backgroundColor = UICOLOR_HW_ALMOSTBLACK;
+ cell.backgroundColor = [UIColor blackColorTransparent];
return cell;
}
// this set details for a static map (called by didSelectRowAtIndexPath)
-(void) setDetailsForStaticMap:(NSInteger) index {
- if (self.dataSourceArray == nil)
- [self loadDataSourceArray];
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg",
@@ -174,13 +164,12 @@
// if the number is not set we keep 18 standard;
// sometimes it's not set but there are trailing characters, we get around them with the second equation
+ NSString *max;
if ([split count] > 1 && [[split objectAtIndex:1] intValue] > 0)
- maxHogs = [[split objectAtIndex:1] intValue];
+ max = [split objectAtIndex:1];
else
- maxHogs = 18;
- NSString *max = [[NSString alloc] initWithFormat:@"%d",maxHogs];
- self.maxLabel.text = max;
- [max release];
+ max = @"18";
+ [self setMaxLabelText:max];
self.themeCommand = [NSString stringWithFormat:@"etheme %@", [split objectAtIndex:0]];
self.staticMapCommand = [NSString stringWithFormat:@"emap %@", [source objectAtIndex:index]];
@@ -198,8 +187,6 @@
int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
if (newRow != oldRow) {
- if (self.dataSourceArray == nil)
- [self loadDataSourceArray];
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
if (isRandomness()) {
// just change the theme, don't update preview
@@ -324,7 +311,7 @@
mission = @"";
[self sliderChanged:nil];
self.slider.enabled = YES;
- [externalController fillSections];
+ [SchemeWeaponConfigViewController fillInstanceSections];
break;
case 1: // Map
@@ -334,7 +321,7 @@
mission = @"";
self.slider.enabled = NO;
self.sizeLabel.text = NSLocalizedString(@"No filter",@"");
- [externalController fillSections];
+ [SchemeWeaponConfigViewController fillInstanceSections];
break;
case 2: // Maze
@@ -343,7 +330,7 @@
mission = @"";
[self sliderChanged:nil];
self.slider.enabled = YES;
- [externalController fillSections];
+ [SchemeWeaponConfigViewController fillInstanceSections];
break;
case 3: // Mission
@@ -353,7 +340,7 @@
mission = @"";
self.slider.enabled = NO;
self.sizeLabel.text = NSLocalizedString(@"No filter",@"");
- [externalController emptySections];
+ [SchemeWeaponConfigViewController emptyInstanceSections];
break;
default:
@@ -371,54 +358,65 @@
oldPage = newPage;
}
--(IBAction) buttonPressed:(id) sender {
- [self.parentController buttonPressed:sender];
-}
-
#pragma mark -
#pragma mark view management
--(void) loadDataSourceArray {
- NSString *model = getModelType();
-
- // only folders containing icon.png are a valid theme
- NSArray *themeArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:THEMES_DIRECTORY() error:NULL];
- NSMutableArray *themeArray = [[NSMutableArray alloc] init];
- for (NSString *themeName in themeArrayFull) {
- NSString *checkPath = [[NSString alloc] initWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),themeName];
- if ([[NSFileManager defaultManager] fileExistsAtPath:checkPath])
- [themeArray addObject:themeName];
- [checkPath release];
+-(NSArray *) dataSourceArray {
+ if (dataSourceArray == nil) {
+ NSString *model = [HWUtils modelType];
+
+ // only folders containing icon.png are a valid theme
+ NSArray *themeArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:THEMES_DIRECTORY() error:NULL];
+ NSMutableArray *themeArray = [[NSMutableArray alloc] init];
+ for (NSString *themeName in themeArrayFull) {
+ NSString *checkPath = [[NSString alloc] initWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),themeName];
+ if ([[NSFileManager defaultManager] fileExistsAtPath:checkPath])
+ [themeArray addObject:themeName];
+ [checkPath release];
+ }
+
+ // remove images that are too big for certain devices without loading the whole image
+ NSArray *mapArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL];
+ NSMutableArray *mapArray = [[NSMutableArray alloc] init];
+ for (NSString *str in mapArrayFull) {
+ CGSize imgSize = [UIImage imageSizeFromMetadataOf:[MAPS_DIRECTORY() stringByAppendingFormat:@"%@/map.png",str]];
+ if (IS_NOT_POWERFUL(model) && imgSize.height > 1024.0f)
+ continue;
+ if (IS_NOT_VERY_POWERFUL(model) && imgSize.height > 1280.0f)
+ continue;
+ [mapArray addObject:str];
+ }
+
+ NSArray *missionArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MISSIONS_DIRECTORY() error:NULL];
+ NSMutableArray *missionArray = [[NSMutableArray alloc] init];
+ for (NSString *str in missionArrayFull) {
+ CGSize imgSize = [UIImage imageSizeFromMetadataOf:[MISSIONS_DIRECTORY() stringByAppendingFormat:@"%@/map.png",str]];
+ if (IS_NOT_POWERFUL(model) && imgSize.height > 1024.0f)
+ continue;
+ if (IS_NOT_VERY_POWERFUL(model) && imgSize.height > 1280.0f)
+ continue;
+ [missionArray addObject:str];
+ }
+ NSArray *array = [[NSArray alloc] initWithObjects:themeArray,mapArray,themeArray,missionArray,nil];
+ [missionArray release];
+ [themeArray release];
+ [mapArray release];
+
+ self.dataSourceArray = array;
+ [array release];
}
+ return dataSourceArray;
+}
- // remove images that are too big for certain devices without loading the whole image
- NSArray *mapArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL];
- NSMutableArray *mapArray = [[NSMutableArray alloc] init];
- for (NSString *str in mapArrayFull) {
- CGSize imgSize = PSPNGSizeFromMetaData([MAPS_DIRECTORY() stringByAppendingFormat:@"%@/map.png",str]);
- if (IS_NOT_POWERFUL(model) && imgSize.height > 1024.0f)
- continue;
- if (IS_NOT_VERY_POWERFUL(model) && imgSize.height > 1280.0f)
- continue;
- [mapArray addObject:str];
+-(MapPreviewButtonView *)previewButton {
+ if (previewButton == nil) {
+ MapPreviewButtonView *preview = [[MapPreviewButtonView alloc] initWithFrame:CGRectMake(32, 26, 256, 128)];
+ preview.delegate = self;
+ [preview addTarget:self action:@selector(mapButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
+ [self.view addSubview:preview];
+ self.previewButton = preview;
+ [preview release];
}
-
- NSArray *missionArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MISSIONS_DIRECTORY() error:NULL];
- NSMutableArray *missionArray = [[NSMutableArray alloc] init];
- for (NSString *str in missionArrayFull) {
- CGSize imgSize = PSPNGSizeFromMetaData([MISSIONS_DIRECTORY() stringByAppendingFormat:@"%@/map.png",str]);
- if (IS_NOT_POWERFUL(model) && imgSize.height > 1024.0f)
- continue;
- if (IS_NOT_VERY_POWERFUL(model) && imgSize.height > 1280.0f)
- continue;
- [missionArray addObject:str];
- }
- NSArray *array = [[NSArray alloc] initWithObjects:themeArray,mapArray,themeArray,missionArray,nil];
- [missionArray release];
- [themeArray release];
- [mapArray release];
-
- self.dataSourceArray = array;
- [array release];
+ return previewButton;
}
-(void) viewDidLoad {
@@ -426,24 +424,18 @@
srandom(time(NULL));
+ /*
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44);
+ */
// initialize some "default" values
- self.sizeLabel.text = NSLocalizedString(@"All",@"");
self.slider.value = 0.05f;
- oldValue = 5;
-
- busy = NO;
- [self loadDataSourceArray];
- self.lastIndexPath = [NSIndexPath indexPathForRow:-1 inSection:0];
-
- // select a map at first because it's faster - done in IB
- oldPage = 1;
- if (self.segmentedControl.selectedSegmentIndex == 1) {
- self.slider.enabled = NO;
- self.sizeLabel.text = NSLocalizedString(@"No filter",@"");
- }
+ self.slider.enabled = NO;
+ self.sizeLabel.text = NSLocalizedString(@"No filter",@"");
+ self.oldValue = 5;
+ self.busy = NO;
+ self.oldPage = self.segmentedControl.selectedSegmentIndex;
self.templateFilterCommand = @"e$template_filter 0";
self.mazeSizeCommand = @"e$maze_size 0";
@@ -451,16 +443,22 @@
self.staticMapCommand = @"";
self.missionCommand = @"";
- if ([self.tableView respondsToSelector:@selector(setBackgroundView:)])
- [self.tableView setBackgroundView:nil];
- self.tableView.backgroundColor = [UIColor clearColor];
- self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
+ if (IS_IPAD()) {
+ [self.tableView setBackgroundColorForAnyTable:[UIColor darkBlueColorTransparent]];
+ self.tableView.layer.borderColor = [[UIColor darkYellowColor] CGColor];
+ self.tableView.layer.borderWidth = 2.7f;
+ self.tableView.layer.cornerRadius = 8;
+ self.tableView.contentInset = UIEdgeInsetsMake(10, 0, 10, 0);
+
+ UILabel *backLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 14, 300, 190) andTitle:nil withBorderWidth:2.3f];
+ [self.view insertSubview:backLabel belowSubview:self.segmentedControl];
+ [backLabel release];
+ }
+ self.tableView.separatorColor = [UIColor whiteColor];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
-(void) viewWillAppear:(BOOL)animated {
- if (self.dataSourceArray == nil)
- [self loadDataSourceArray];
[super viewWillAppear:animated];
}
@@ -495,6 +493,7 @@
-(void) didReceiveMemoryWarning {
self.dataSourceArray = nil;
+ self.previewButton = nil;
[super didReceiveMemoryWarning];
if (self.view.superview == nil) {
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.h Fri Oct 28 18:26:17 2011 +0200
@@ -25,7 +25,7 @@
@protocol MapPreviewViewDelegate <NSObject>
-(void) turnOnWidgets;
--(void) setLabelText:(NSString *)string;
+-(void) setMaxLabelText:(NSString *)string;
-(NSDictionary *)getDataForEngine;
@end
@@ -38,9 +38,8 @@
@property (nonatomic,assign) id<MapPreviewViewDelegate> delegate;
--(void) setBackgroundImageRounded:(UIImage *)image forState:(UIControlState)state;
--(void) setImageRounded:(UIImage *)image forState:(UIControlState)state;
--(void) setImageRoundedForNormalState:(UIImage *)image;
+-(void) setImageRounded:(UIImage *)image forState:(UIControlState) controlState;
+-(void) setImageRounded:(UIImage *)image;
-(void) updatePreviewWithSeed:(NSString *)seed;
-(void) updatePreviewWithFile:(NSString *)filePath;
-(void) turnOnWidgets;
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m Fri Oct 28 18:26:17 2011 +0200
@@ -22,7 +22,10 @@
#import "MapPreviewButtonView.h"
#import "MapConfigViewController.h"
#import "UIImageExtra.h"
+#import "ServerSetup.h"
#import <pthread.h>
+#import <QuartzCore/QuartzCore.h>
+
#define INDICATOR_TAG 7654
@@ -32,15 +35,8 @@
-(id) initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
delegate = nil;
- [self setBackgroundImageRounded:[UIImage whiteImage:frame.size] forState:UIControlStateNormal];
- }
- return self;
-}
-
--(id) initWithCoder:(NSCoder *)aDecoder {
- if ((self = [super initWithCoder:aDecoder])) {
- delegate = nil;
- [self setBackgroundImageRounded:[UIImage whiteImage:self.frame.size] forState:UIControlStateNormal];
+ self.backgroundColor = [UIColor whiteColor];
+ self.layer.cornerRadius = 12;
}
return self;
}
@@ -52,16 +48,11 @@
#pragma mark -
#pragma mark image wrappers
--(void) setBackgroundImageRounded:(UIImage *)image forState:(UIControlState)state {
- // TODO:http://stackoverflow.com/questions/4272476/setbackgroundimage-behaviour-changed-on-ipad-4-2
- [self setBackgroundImage:[image makeRoundCornersOfSize:CGSizeMake(12, 12)] forState:state];
+-(void) setImageRounded:(UIImage *)image forState:(UIControlState)controlState {
+ [self setImage:[image makeRoundCornersOfSize:CGSizeMake(12, 12)] forState:controlState];
}
--(void) setImageRounded:(UIImage *)image forState:(UIControlState)state {
- [self setImage:[image makeRoundCornersOfSize:CGSizeMake(12, 12)] forState:state];
-}
-
--(void) setImageRoundedForNormalState:(UIImage *)image {
+-(void) setImageRounded:(UIImage *)image {
[self setImageRounded:image forState:UIControlStateNormal];
}
@@ -78,7 +69,7 @@
IPaddress ip;
BOOL serverQuit = NO;
static uint8_t map[128*32];
- int port = randomPort();
+ int port = [ServerSetup randomPort];
if (SDLNet_Init() < 0) {
DLog(@"SDLNet_Init: %s", SDLNet_GetError());
@@ -162,7 +153,7 @@
previewCGImage = nil;
// all these are performed on the main thread to prevent a leak
- [self performSelectorOnMainThread:@selector(setImageRoundedForNormalState:)
+ [self performSelectorOnMainThread:@selector(setImageRounded:)
withObject:previewImage
waitUntilDone:NO];
[previewImage release];
@@ -197,7 +188,7 @@
[self setTitle:nil forState:UIControlStateNormal];
// don't display preview on slower device, too slow and memory hog
- if (IS_NOT_POWERFUL(getModelType())) {
+ if (IS_NOT_POWERFUL([HWUtils modelType])) {
[self setTitle:NSLocalizedString(@"Preview not available",@"") forState:UIControlStateNormal];
[self turnOnWidgets];
} else {
@@ -218,6 +209,8 @@
-(void) updatePreviewWithFile:(NSString *)filePath {
UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
[self setImageRounded:image forState:UIControlStateNormal];
+ self.backgroundColor = [UIColor whiteColor];
+ self.layer.cornerRadius = 12;
[image release];
}
@@ -232,15 +225,19 @@
#pragma mark -
#pragma mark delegate
-(void) turnOnWidgets {
- [self.delegate turnOnWidgets];
+ if ([self.delegate respondsToSelector:@selector(turnOnWidgets)])
+ [self.delegate turnOnWidgets];
}
-(void) setLabelText:(NSString *)string {
- [self.delegate setLabelText:string];
+ if ([self.delegate respondsToSelector:@selector(setMaxLabelText:)])
+ [self.delegate setMaxLabelText:string];
}
-(NSDictionary *)getDataForEngine {
- return [self.delegate getDataForEngine];
+ if ([self.delegate respondsToSelector:@selector(getDataForEngine)])
+ return [self.delegate getDataForEngine];
+ return nil;
}
@end
--- a/project_files/HedgewarsMobile/Classes/MasterViewController.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * File created on 27/03/2010.
- */
-
-
-#import <UIKit/UIKit.h>
-
-
-@class SplitViewRootController;
-@class GeneralSettingsViewController;
-@class TeamSettingsViewController;
-@class WeaponSettingsViewController;
-@class SchemeSettingsViewController;
-@class SupportViewController;
-
-@interface MasterViewController : UITableViewController {
- SplitViewRootController *rootController;
- MasterViewController *targetController;
- NSArray *controllerNames;
- NSIndexPath *lastIndexPath;
- GeneralSettingsViewController *generalSettingsViewController;
- TeamSettingsViewController *teamSettingsViewController;
- WeaponSettingsViewController *weaponSettingsViewController;
- SchemeSettingsViewController *schemeSettingsViewController;
- SupportViewController *supportViewController;
-}
-
-@property (nonatomic, retain) MasterViewController *targetController;
-@property (nonatomic, retain) SplitViewRootController *rootController;
-@property (nonatomic, retain) NSArray *controllerNames;
-@property (nonatomic, retain) NSIndexPath *lastIndexPath;
-
--(IBAction) dismissSplitView;
-
-@end
--- a/project_files/HedgewarsMobile/Classes/MasterViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * File created on 27/03/2010.
- */
-
-
-#import "MasterViewController.h"
-#import "CommodityFunctions.h"
-#import "GeneralSettingsViewController.h"
-#import "TeamSettingsViewController.h"
-#import "WeaponSettingsViewController.h"
-#import "SchemeSettingsViewController.h"
-#import "SupportViewController.h"
-
-@implementation MasterViewController
-@synthesize rootController, targetController, controllerNames, lastIndexPath;
-
-
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
- return rotationManager(interfaceOrientation);
-}
-
-
-#pragma mark -
-#pragma mark View lifecycle
--(void) viewDidLoad {
- [super viewDidLoad];
-
- // the list of selectable controllers
- NSArray *array = [[NSArray alloc] initWithObjects:NSLocalizedString(@"General",@""),
- NSLocalizedString(@"Teams",@""),
- NSLocalizedString(@"Weapons",@""),
- NSLocalizedString(@"Schemes",@""),
- NSLocalizedString(@"Support",@""),
- nil];
- self.controllerNames = array;
- [array release];
-
- // targetControllers tells whether we're on the right or left side of the splitview -- on iphone we only use the right side
- if (targetController == nil && IS_IPAD()) {
- if (nil == generalSettingsViewController)
- generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- generalSettingsViewController.navigationItem.hidesBackButton = YES;
- [generalSettingsViewController viewWillAppear:YES];
- [self.navigationController pushViewController:generalSettingsViewController animated:NO];
- } else {
- self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
- target:self
- action:@selector(dismissSplitView)];
- }
-}
-
-#pragma mark -
-#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
-}
-
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- return [controllerNames count];
-}
-
-// Customize the appearance of table view cells.
--(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- static NSString *CellIdentifier = @"Cell";
-
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
- if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
-
- NSString *iconStr = nil;
- switch ([indexPath row]) {
- case 0:
- iconStr = [NSString stringWithFormat:@"%@/TargetBee.png",GRAPHICS_DIRECTORY()];
- break;
- case 1:
- iconStr = [NSString stringWithFormat:@"%@/Egg.png",GRAPHICS_DIRECTORY()];
- break;
- case 2:
- iconStr = [NSString stringWithFormat:@"%@/cheese.png",GRAPHICS_DIRECTORY()];
- break;
- case 3:
- iconStr = [NSString stringWithFormat:@"%@/Target.png",GRAPHICS_DIRECTORY()];
- break;
- case 4:
- iconStr = [NSString stringWithFormat:@"%@/Seduction.png",GRAPHICS_DIRECTORY()];
- break;
- default:
- //seduction.png for support page
- DLog(@"Nope");
- break;
- }
-
- if (nil == targetController)
- cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
- else
- cell.accessoryType = UITableViewCellAccessoryNone;
-
- cell.textLabel.text = [controllerNames objectAtIndex:[indexPath row]];
- UIImage *icon = [[UIImage alloc] initWithContentsOfFile:iconStr];
- cell.imageView.image = icon;
- [icon release];
-
- return cell;
-}
-
-#pragma mark -
-#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
- int newRow = [indexPath row];
- int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
- UIViewController *nextController = nil;
-
- if (newRow != oldRow) {
- [self.tableView deselectRowAtIndexPath:lastIndexPath animated:YES];
- [targetController.navigationController popToRootViewControllerAnimated:NO];
-
- switch (newRow) {
- case 0:
- if (nil == generalSettingsViewController)
- generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = generalSettingsViewController;
- break;
- case 1:
- if (nil == teamSettingsViewController)
- teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = teamSettingsViewController;
- break;
- case 2:
- if (nil == weaponSettingsViewController)
- weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = weaponSettingsViewController;
- break;
- case 3:
- if (nil == schemeSettingsViewController)
- schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = schemeSettingsViewController;
- break;
- case 4:
- if (nil == supportViewController)
- supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
- nextController = supportViewController;
- break;
- }
-
- nextController.title = [controllerNames objectAtIndex:newRow];
- self.lastIndexPath = indexPath;
- [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
-
- if (nil == targetController) {
- nextController.navigationItem.hidesBackButton = NO;
- [self.navigationController pushViewController:nextController animated:YES];
- } else {
- [AudioManagerController playClickSound];
- nextController.navigationItem.hidesBackButton = YES;
- [targetController.navigationController pushViewController:nextController animated:NO];
- }
- }
-}
-
-
-#pragma mark -
-#pragma mark Memory management
--(void) didReceiveMemoryWarning {
- if (generalSettingsViewController.view.superview == nil)
- generalSettingsViewController = nil;
- if (teamSettingsViewController.view.superview == nil)
- teamSettingsViewController = nil;
- if (weaponSettingsViewController.view.superview == nil)
- weaponSettingsViewController = nil;
- if (schemeSettingsViewController.view.superview == nil)
- schemeSettingsViewController = nil;
- if (supportViewController.view.superview == nil)
- supportViewController = nil;
- MSG_MEMCLEAN();
- [super didReceiveMemoryWarning];
-}
-
--(void) viewDidUnload {
- //self.rootController = nil;
- //self.targetController = nil;
- self.controllerNames = nil;
- self.lastIndexPath = nil;
- generalSettingsViewController = nil;
- teamSettingsViewController = nil;
- weaponSettingsViewController = nil;
- schemeSettingsViewController = nil;
- supportViewController = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(rootController);
- releaseAndNil(targetController);
- releaseAndNil(controllerNames);
- releaseAndNil(lastIndexPath);
- releaseAndNil(generalSettingsViewController);
- releaseAndNil(teamSettingsViewController);
- releaseAndNil(weaponSettingsViewController);
- releaseAndNil(schemeSettingsViewController);
- releaseAndNil(supportViewController);
- [super dealloc];
-}
-
--(IBAction) dismissSplitView {
- [self.rootController dismissModalViewControllerAnimated:YES];
-}
-
-@end
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController-iPad.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,702 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUITableView" id="609221433">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{91, 86}, {585, 391}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAgMAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIAlwaysBounceVertical">YES</bool>
+ <int key="IBUIIndicatorStyle">2</int>
+ <int key="IBUIStyle">1</int>
+ <int key="IBUISeparatorStyle">2</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">10</float>
+ <float key="IBUISectionFooterHeight">10</float>
+ </object>
+ <object class="IBUIImageView" id="776434219">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{227, 496}, {314, 260}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIButton" id="1038942684">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{20, 684}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="1000305902">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="76134506">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="181044244">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">backButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="1068873625">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{606, 684}, {142, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">1</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="1000305902"/>
+ <reference key="IBUIHighlightedTitleColor" ref="76134506"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="181044244"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">startGameButton.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="12882009">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{5, 6}, {757, 72}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Description here</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-BoldOblique</string>
+ <double key="NSSize">21</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <reference key="IBUIHighlightedColor" ref="76134506"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">2</int>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ </object>
+ <string key="NSFrameSize">{768, 768}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">dataSource</string>
+ <reference key="source" ref="609221433"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="609221433"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">12</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">previewImage</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="776434219"/>
+ </object>
+ <int key="connectionID">13</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="609221433"/>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="1038942684"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">19</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="1068873625"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">20</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">descriptionLabel</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="12882009"/>
+ </object>
+ <int key="connectionID">22</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="776434219"/>
+ <reference ref="1038942684"/>
+ <reference ref="1068873625"/>
+ <reference ref="12882009"/>
+ <reference ref="609221433"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="609221433"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="776434219"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="1038942684"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="1068873625"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">21</int>
+ <reference key="object" ref="12882009"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>10.IBPluginDependency</string>
+ <string>10.IBViewBoundsToFrameTransform</string>
+ <string>17.IBPluginDependency</string>
+ <string>17.IBViewBoundsToFrameTransform</string>
+ <string>18.IBPluginDependency</string>
+ <string>18.IBViewBoundsToFrameTransform</string>
+ <string>21.IBPluginDependency</string>
+ <string>21.IBViewBoundsToFrameTransform</string>
+ <string>9.IBPluginDependency</string>
+ <string>9.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MissionTrainingViewController</string>
+ <string>UIResponder</string>
+ <string>{{139, 166}, {768, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDYwAAxD2AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAxC1AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABEF4AAxC1AAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCDAAAwowAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCtgAAw+2AAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">22</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">MissionTrainingViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">buttonPressed:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">buttonPressed:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">buttonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>descriptionLabel</string>
+ <string>previewImage</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UILabel</string>
+ <string>UIImageView</string>
+ <string>UITableView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>descriptionLabel</string>
+ <string>previewImage</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">descriptionLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">previewImage</string>
+ <string key="candidateClassName">UIImageView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MissionTrainingViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/HWUtils.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="6906421">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="6906421"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>backButton.png</string>
+ <string>startGameButton.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{64, 64}</string>
+ <string>{142, 64}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController-iPhone.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,652 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUITableView" id="609221433">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{180, 0}, {300, 320}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <object class="NSColor" key="IBUIBackgroundColor" id="76134506">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIAlwaysBounceVertical">YES</bool>
+ <int key="IBUIIndicatorStyle">2</int>
+ <int key="IBUISeparatorStyle">1</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">22</float>
+ <float key="IBUISectionFooterHeight">22</float>
+ </object>
+ <object class="IBUIImageView" id="776434219">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{11, 19}, {157, 130}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIButton" id="1038942684">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{57, 245}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="1000305902">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="IBUIHighlightedTitleColor" ref="76134506"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="181044244">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">backButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="1068873625">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{18, 164}, {142, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">1</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="1000305902"/>
+ <reference key="IBUIHighlightedTitleColor" ref="76134506"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="181044244"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">startGameButton.png</string>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 320}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">dataSource</string>
+ <reference key="source" ref="609221433"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="609221433"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">12</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">previewImage</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="776434219"/>
+ </object>
+ <int key="connectionID">13</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="609221433"/>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="1038942684"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">19</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="1068873625"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">20</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="609221433"/>
+ <reference ref="776434219"/>
+ <reference ref="1038942684"/>
+ <reference ref="1068873625"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="609221433"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="776434219"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="1038942684"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="1068873625"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>10.IBPluginDependency</string>
+ <string>10.IBViewBoundsToFrameTransform</string>
+ <string>17.IBPluginDependency</string>
+ <string>17.IBViewBoundsToFrameTransform</string>
+ <string>18.IBPluginDependency</string>
+ <string>18.IBViewBoundsToFrameTransform</string>
+ <string>9.IBPluginDependency</string>
+ <string>9.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>MissionTrainingViewController</string>
+ <string>UIResponder</string>
+ <string>{{492, 751}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABAoAAAwwYAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABChAAAw5eAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABB2AAAw2cAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDUAAAw5UAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">22</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">MissionTrainingViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">buttonPressed:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">buttonPressed:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">buttonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>descriptionLabel</string>
+ <string>previewImage</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UILabel</string>
+ <string>UIImageView</string>
+ <string>UITableView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>descriptionLabel</string>
+ <string>previewImage</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">descriptionLabel</string>
+ <string key="candidateClassName">UILabel</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">previewImage</string>
+ <string key="candidateClassName">UIImageView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/MissionTrainingViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/HWUtils.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="6906421">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="6906421"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>backButton.png</string>
+ <string>startGameButton.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{64, 64}</string>
+ <string>{142, 64}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,42 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 03/10/2011.
+ */
+
+#import <UIKit/UIKit.h>
+
+
+@interface MissionTrainingViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
+ NSArray *listOfMissions;
+ NSArray *listOfDescriptions;
+ NSString *missionName;
+ UIImageView *previewImage;
+ UITableView *tableView;
+ UILabel *descriptionLabel;
+}
+
+@property (nonatomic, retain) NSArray *listOfMissions;
+@property (nonatomic, retain) NSArray *listOfDescriptions;
+@property (nonatomic, retain) NSString *missionName;
+@property (nonatomic, retain) IBOutlet UIImageView *previewImage;
+@property (nonatomic, retain) IBOutlet UITableView *tableView;
+@property (nonatomic, retain) IBOutlet UILabel *descriptionLabel;
+
+-(IBAction) buttonPressed:(id) sender;
+
+@end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,207 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 03/10/2011.
+ */
+
+
+#import "MissionTrainingViewController.h"
+#import <QuartzCore/QuartzCore.h>
+#import "GameInterfaceBridge.h"
+
+
+@implementation MissionTrainingViewController
+@synthesize listOfMissions, listOfDescriptions, previewImage, tableView, descriptionLabel, missionName;
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+ return rotationManager(interfaceOrientation);
+}
+
+#pragma mark -
+#pragma mark View management
+-(void) viewDidLoad {
+ NSString *imgName = (IS_IPAD()) ? @"mediumBackground~ipad.png" : @"smallerBackground~iphone.png";
+ UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName];
+ self.view.backgroundColor = [UIColor colorWithPatternImage:img];
+ [img release];
+
+ self.previewImage.layer.borderColor = [[UIColor darkYellowColor] CGColor];
+ self.previewImage.layer.borderWidth = 3.8f;
+ self.previewImage.layer.cornerRadius = 14;
+
+ if (IS_IPAD()) {
+ [self.tableView setBackgroundColorForAnyTable:[UIColor darkBlueColorTransparent]];
+ self.tableView.layer.borderColor = [[UIColor darkYellowColor] CGColor];
+ self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+ } else {
+ [self.tableView setBackgroundColorForAnyTable:[UIColor blackColorTransparent]];
+ self.tableView.layer.borderColor = [[UIColor whiteColor] CGColor];
+ self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
+ }
+ self.tableView.layer.borderWidth = 2.4f;
+ self.tableView.layer.cornerRadius = 8;
+ self.tableView.separatorColor = [UIColor whiteColor];
+
+ self.descriptionLabel.textColor = [UIColor lightYellowColor];
+ [super viewDidLoad];
+}
+
+-(void) viewWillAppear:(BOOL)animated {
+ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:random()%[self.listOfMissions count] inSection:0];
+ [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
+ [self tableView:self.tableView didSelectRowAtIndexPath:indexPath];
+ [super viewWillAppear:animated];
+}
+
+-(IBAction) buttonPressed:(id) sender {
+ UIButton *button = (UIButton *)sender;
+
+ if (button.tag == 0) {
+ [AudioManagerController playBackSound];
+ [[self parentViewController] dismissModalViewControllerAnimated:YES];
+ } else {
+ GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self];
+ [bridge startMissionGame:self.missionName];
+ [bridge release];
+ }
+}
+
+#pragma mark -
+#pragma mark override setters/getters for better memory handling
+-(NSArray *)listOfMissions {
+ if (listOfMissions == nil)
+ self.listOfMissions = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:TRAININGS_DIRECTORY() error:NULL];
+ return listOfMissions;
+}
+
+-(NSArray *)listOfDescriptions {
+ if (listOfDescriptions == nil) {
+ NSString *descLocation = [[NSString alloc] initWithFormat:@"%@/missions_en.txt",LOCALE_DIRECTORY()];
+ NSString *descComplete = [[NSString alloc] initWithContentsOfFile:descLocation encoding:NSUTF8StringEncoding error:NULL];
+ [descLocation release];
+ NSArray *descArray = [descComplete componentsSeparatedByString:@"\n"];
+ NSMutableArray *filteredArray = [[NSMutableArray alloc] initWithCapacity:[descArray count]];
+ [descComplete release];
+ // sanity check to avoid having missions and descriptions conflicts
+ for (int i = 0; i < [self.listOfMissions count]; i++) {
+ NSString *desc = [[self.listOfMissions objectAtIndex:i] stringByDeletingPathExtension];
+ for (NSString *str in descArray)
+ if ([str hasPrefix:desc]) {
+ NSArray *descriptionText = [str componentsSeparatedByString:@"\""];
+ [filteredArray insertObject:[descriptionText objectAtIndex:1] atIndex:i];
+ break;
+ }
+ }
+ self.listOfDescriptions = filteredArray;
+ [filteredArray release];
+ }
+ return listOfDescriptions;
+}
+
+#pragma mark -
+#pragma mark Table view data source
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+ return 1;
+}
+
+-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ return [self.listOfMissions count];
+}
+
+-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+ return (IS_IPAD()) ? self.tableView.rowHeight : 80;
+}
+
+-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *CellIdentifier = @"CellTr";
+ NSInteger row = [indexPath row];
+
+ UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil)
+ cell = [[[UITableViewCell alloc] initWithStyle:(IS_IPAD()) ? UITableViewCellStyleDefault : UITableViewCellStyleSubtitle
+ reuseIdentifier:CellIdentifier] autorelease];
+
+ cell.textLabel.text = [[[self.listOfMissions objectAtIndex:row] stringByDeletingPathExtension]
+ stringByReplacingOccurrencesOfString:@"_" withString:@" "];
+ cell.textLabel.textColor = [UIColor lightYellowColor];
+ //cell.textLabel.font = [UIFont fontWithName:@"Bradley Hand Bold" size:[UIFont labelFontSize]];
+ cell.textLabel.textAlignment = (IS_IPAD()) ? UITextAlignmentCenter : UITextAlignmentLeft;
+ cell.textLabel.backgroundColor = [UIColor clearColor];
+ cell.textLabel.adjustsFontSizeToFitWidth = YES;
+ cell.detailTextLabel.text = (IS_IPAD()) ? nil : [self.listOfDescriptions objectAtIndex:row];
+ cell.detailTextLabel.textColor = [UIColor whiteColor];
+ cell.detailTextLabel.backgroundColor = [UIColor clearColor];
+ cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
+ cell.detailTextLabel.numberOfLines = ([cell.detailTextLabel.text length] % 40);
+ cell.detailTextLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
+
+ cell.backgroundColor = [UIColor blackColorTransparent];
+ return cell;
+}
+
+#pragma mark -
+#pragma mark Table view delegate
+-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ NSInteger row = [indexPath row];
+
+ self.missionName = [[self.listOfMissions objectAtIndex:row] stringByDeletingPathExtension];
+ NSString *size = IS_IPAD() ? @"@2x" : @"";
+ NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Missions/Training/%@%@.png",GRAPHICS_DIRECTORY(),self.missionName,size];
+ UIImage *img = [[UIImage alloc] initWithContentsOfFile:filePath];
+ [filePath release];
+ [self.previewImage setImage:img];
+ [img release];
+
+ self.descriptionLabel.text = [self.listOfDescriptions objectAtIndex:row];
+}
+
+#pragma mark -
+#pragma mark Memory management
+-(void) didReceiveMemoryWarning {
+ self.previewImage = nil;
+ self.missionName = nil;
+ self.listOfMissions = nil;
+ self.listOfDescriptions = nil;
+ // if you nil this one it won't get updated anymore
+ //self.previewImage = nil;
+ [super didReceiveMemoryWarning];
+}
+
+-(void) viewDidUnload {
+ self.listOfMissions = nil;
+ self.listOfDescriptions = nil;
+ self.previewImage = nil;
+ self.tableView = nil;
+ self.descriptionLabel = nil;
+ self.missionName = nil;
+ MSG_DIDUNLOAD();
+ [super viewDidUnload];
+}
+
+
+-(void) dealloc {
+ releaseAndNil(listOfMissions);
+ releaseAndNil(listOfDescriptions);
+ releaseAndNil(previewImage);
+ releaseAndNil(tableView);
+ releaseAndNil(descriptionLabel);
+ releaseAndNil(missionName);
+ [super dealloc];
+}
+
+
+@end
--- a/project_files/HedgewarsMobile/Classes/ObjcExports.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ObjcExports.h Fri Oct 28 18:26:17 2011 +0200
@@ -19,7 +19,15 @@
*/
-void objcExportsInit(void);
+@interface ObjcExports : NSObject {
+
+}
+
++(void) initialize;
+
+@end
+
+
BOOL isGameRunning(void);
void setGameRunning(BOOL value);
NSInteger cachedGrenadeTime(void);
--- a/project_files/HedgewarsMobile/Classes/ObjcExports.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ObjcExports.m Fri Oct 28 18:26:17 2011 +0200
@@ -23,27 +23,29 @@
#import "OverlayViewController.h"
#import "AmmoMenuViewController.h"
-#pragma mark -
-#pragma mark internal variables
+
// actual game started (controls should be enabled)
-BOOL gameRunning;
+static BOOL gameRunning;
// black screen present
-BOOL savedGame;
+static BOOL savedGame;
// cache the grenade time
-NSInteger grenadeTime;
+static NSInteger grenadeTime;
// the reference to the newMenu instance
-OverlayViewController *overlay_instance;
+static OverlayViewController *overlay_instance;
+@implementation ObjcExports
-#pragma mark -
-#pragma mark functions called like oop
-void objcExportsInit() {
++(void) initialize {
overlay_instance = [OverlayViewController mainOverlay];
gameRunning = NO;
savedGame = NO;
grenadeTime = 2;
}
+@end
+
+#pragma mark -
+#pragma mark functions called by objc code
BOOL inline isGameRunning() {
return gameRunning;
}
--- a/project_files/HedgewarsMobile/Classes/OverlayViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -23,11 +23,10 @@
#import "InGameMenuViewController.h"
#import "HelpPageViewController.h"
#import "AmmoMenuViewController.h"
-#import "PascalImports.h"
-#import "CommodityFunctions.h"
#import "CGPointUtils.h"
#import "ObjcExports.h"
+
#define HIDING_TIME_DEFAULT [NSDate dateWithTimeIntervalSinceNow:2.7]
#define HIDING_TIME_NEVER [NSDate dateWithTimeIntervalSinceNow:10000]
#define doDim() [dimTimer setFireDate: (IS_DUALHEAD()) ? HIDING_TIME_NEVER : HIDING_TIME_DEFAULT]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1014 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10H574</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIButton" id="584263820">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{0, 229}, {50, 50}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="969592940">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="708011311">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="280149554">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">arrowLeft.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="123494776">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{87, 229}, {50, 50}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">1</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">arrowRight.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="590902961">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{412, 236}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">5</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">joyButtonBackJump.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="132251648">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{365, 203}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">6</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">joyButtonForwardJump.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="752933969">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{354, 256}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">4</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">joyButtonAttack.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="261686746">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{44, 187}, {50, 50}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">2</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">arrowUp.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="81315603">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{44, 270}, {50, 50}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">3</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">arrowDown.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="309477778">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{341, 0}, {64, 50}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">10</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">cornerButton.png</string>
+ </object>
+ </object>
+ <object class="IBUIButton" id="50885250">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{402, 0}, {78, 50}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <int key="IBUITag">11</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="969592940"/>
+ <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
+ <object class="NSCustomResource" key="IBUINormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">ammoButton.png</string>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 320}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MSAwAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="584263820"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">1</int>
+ </object>
+ <int key="connectionID">8</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="584263820"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">9</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="584263820"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">10</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="584263820"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">8</int>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="123494776"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">8</int>
+ </object>
+ <int key="connectionID">13</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="123494776"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="123494776"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">1</int>
+ </object>
+ <int key="connectionID">15</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="123494776"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">16</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="261686746"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">18</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="261686746"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">1</int>
+ </object>
+ <int key="connectionID">19</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="261686746"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">8</int>
+ </object>
+ <int key="connectionID">20</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="261686746"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">21</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="81315603"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">8</int>
+ </object>
+ <int key="connectionID">23</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="81315603"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">24</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="81315603"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">1</int>
+ </object>
+ <int key="connectionID">25</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="81315603"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">26</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="590902961"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">44</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="590902961"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">1</int>
+ </object>
+ <int key="connectionID">45</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="590902961"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">8</int>
+ </object>
+ <int key="connectionID">46</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="590902961"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">47</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="752933969"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">8</int>
+ </object>
+ <int key="connectionID">49</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="752933969"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">50</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="752933969"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">51</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="752933969"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">1</int>
+ </object>
+ <int key="connectionID">52</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="132251648"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">54</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="132251648"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">55</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="132251648"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">1</int>
+ </object>
+ <int key="connectionID">56</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="132251648"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">8</int>
+ </object>
+ <int key="connectionID">57</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="309477778"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">60</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="50885250"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">68</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="50885250"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">9</int>
+ </object>
+ <int key="connectionID">69</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="590902961"/>
+ <reference ref="81315603"/>
+ <reference ref="584263820"/>
+ <reference ref="261686746"/>
+ <reference ref="123494776"/>
+ <reference ref="132251648"/>
+ <reference ref="752933969"/>
+ <reference ref="50885250"/>
+ <reference ref="309477778"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="584263820"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">left</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="123494776"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">right</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="261686746"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">up</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">22</int>
+ <reference key="object" ref="81315603"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">down</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">43</int>
+ <reference key="object" ref="590902961"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">push2</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">48</int>
+ <reference key="object" ref="752933969"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">push1</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">53</int>
+ <reference key="object" ref="132251648"/>
+ <reference key="parent" ref="191373211"/>
+ <string key="objectName">push3</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">58</int>
+ <reference key="object" ref="309477778"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">67</int>
+ <reference key="object" ref="50885250"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>12.IBPluginDependency</string>
+ <string>12.IBViewBoundsToFrameTransform</string>
+ <string>17.IBPluginDependency</string>
+ <string>22.IBPluginDependency</string>
+ <string>4.IBPluginDependency</string>
+ <string>43.IBPluginDependency</string>
+ <string>48.IBPluginDependency</string>
+ <string>53.IBPluginDependency</string>
+ <string>58.IBPluginDependency</string>
+ <string>67.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>OverlayViewController</string>
+ <string>UIResponder</string>
+ <string>{{690, 375}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCkAAAw5SAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">72</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">OverlayViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>buttonReleased:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>buttonReleased:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">buttonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">buttonReleased:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/OverlayViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="917531033">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="917531033"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>ammoButton.png</string>
+ <string>arrowDown.png</string>
+ <string>arrowLeft.png</string>
+ <string>arrowRight.png</string>
+ <string>arrowUp.png</string>
+ <string>cornerButton.png</string>
+ <string>joyButtonAttack.png</string>
+ <string>joyButtonBackJump.png</string>
+ <string>joyButtonForwardJump.png</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{78, 50}</string>
+ <string>{50, 50}</string>
+ <string>{50, 50}</string>
+ <string>{50, 50}</string>
+ <string>{50, 50}</string>
+ <string>{60, 50}</string>
+ <string>{64, 64}</string>
+ <string>{64, 64}</string>
+ <string>{64, 64}</string>
+ </object>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/RestoreViewController-iPad.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,616 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIButton" id="155385540">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">302</int>
+ <string key="NSFrame">{{84, 517}, {151, 37}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="204967016">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Dismiss</string>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="790402446">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor" id="829178890">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAuNTAxOTYwODE0AA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="644451038">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ </object>
+ <object class="IBUIButton" id="202794507">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">299</int>
+ <string key="NSFrame">{{308, 517}, {151, 37}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">1</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="204967016"/>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Restore</string>
+ <reference key="IBUIHighlightedTitleColor" ref="790402446"/>
+ <reference key="IBUINormalTitleColor" ref="829178890"/>
+ <reference key="IBUINormalTitleShadowColor" ref="644451038"/>
+ </object>
+ <object class="IBUILabel" id="655269955">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">315</int>
+ <string key="NSFrame">{{216, 35}, {108, 29}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Hmm...</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">24</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MSAwLjc4MDM5MjIyOTYgMAA</bytes>
+ </object>
+ <reference key="IBUIHighlightedColor" ref="790402446"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUILabel" id="19933541">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">307</int>
+ <string key="NSFrame">{{80, 375}, {380, 96}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">Would you like to restore it?</string>
+ <object class="NSFont" key="IBUIFont" id="276115526">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
+ </object>
+ <reference key="IBUIHighlightedColor" ref="790402446"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">4</int>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUILabel" id="151967545">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">307</int>
+ <string key="NSFrame">{{80, 87}, {380, 96}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <string key="IBUIText">It appears you didn't complete your last game!</string>
+ <reference key="IBUIFont" ref="276115526"/>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
+ </object>
+ <reference key="IBUIHighlightedColor" ref="790402446"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">4</int>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUIImageView" id="129485928">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">300</int>
+ <string key="NSFrame">{{150, 191}, {240, 160}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">denied.png</string>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{540, 640}</string>
+ <reference key="NSSuperview"/>
+ <reference key="IBUIBackgroundColor" ref="790402446"/>
+ <int key="IBUIContentMode">4</int>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="155385540"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">21</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="202794507"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">22</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="155385540"/>
+ <reference ref="202794507"/>
+ <reference ref="655269955"/>
+ <reference ref="19933541"/>
+ <reference ref="151967545"/>
+ <reference ref="129485928"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="155385540"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">16</int>
+ <reference key="object" ref="202794507"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="655269955"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="19933541"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">20</int>
+ <reference key="object" ref="129485928"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">23</int>
+ <reference key="object" ref="151967545"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>15.IBPluginDependency</string>
+ <string>15.IBViewBoundsToFrameTransform</string>
+ <string>16.IBPluginDependency</string>
+ <string>16.IBViewBoundsToFrameTransform</string>
+ <string>18.IBPluginDependency</string>
+ <string>18.IBViewBoundsToFrameTransform</string>
+ <string>19.IBPluginDependency</string>
+ <string>19.IBViewBoundsToFrameTransform</string>
+ <string>20.IBPluginDependency</string>
+ <string>20.IBViewBoundsToFrameTransform</string>
+ <string>23.IBPluginDependency</string>
+ <string>23.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>RestoreViewController</string>
+ <string>UIResponder</string>
+ <string>{{566, 244}, {540, 640}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDlIAAw2gAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABEAkAAw2gAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDXAAAw3UAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUKgAABDmYAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDFgAAw8cAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABCoAAAw9uAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">23</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">RestoreViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">buttonReleased:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">buttonReleased:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">buttonReleased:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/RestoreViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="749404015">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="749404015"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <string key="NS.key.0">denied.png</string>
+ <string key="NS.object.0">{240, 160}</string>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/RestoreViewController-iPhone.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,582 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="508553704">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">300</int>
+ <string key="NSFrame">{{20, 20}, {240, 160}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">denied.png</string>
+ </object>
+ </object>
+ <object class="IBUILabel" id="531154203">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">315</int>
+ <string key="NSFrame">{{310, 32}, {108, 29}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Hmm...</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">24</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MSAwLjgyNzQ1MTA1MDMgMAA</bytes>
+ </object>
+ <object class="NSColor" key="IBUIHighlightedColor" id="790402446">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUILabel" id="785455561">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">307</int>
+ <string key="NSFrame">{{268, 74}, {192, 96}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">It appears you didn't complete your last game! Would you like to restore it?</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
+ </object>
+ <reference key="IBUIHighlightedColor" ref="790402446"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUINumberOfLines">4</int>
+ <int key="IBUITextAlignment">1</int>
+ </object>
+ <object class="IBUIButton" id="472385208">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">302</int>
+ <string key="NSFrame">{{53, 229}, {151, 37}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <object class="NSFont" key="IBUIFont" id="204967016">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Dismiss</string>
+ <reference key="IBUIHighlightedTitleColor" ref="790402446"/>
+ <object class="NSColor" key="IBUINormalTitleColor" id="734262812">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAuNTAxOTYwODE0AA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="644451038">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ </object>
+ <object class="IBUIButton" id="923913762">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">299</int>
+ <string key="NSFrame">{{277, 229}, {151, 37}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <int key="IBUITag">1</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <reference key="IBUIFont" ref="204967016"/>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Restore</string>
+ <reference key="IBUIHighlightedTitleColor" ref="790402446"/>
+ <reference key="IBUINormalTitleColor" ref="734262812"/>
+ <reference key="IBUINormalTitleShadowColor" ref="644451038"/>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 320}</string>
+ <reference key="NSSuperview"/>
+ <reference key="IBUIBackgroundColor" ref="790402446"/>
+ <int key="IBUIContentMode">4</int>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="923913762"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonReleased:</string>
+ <reference key="source" ref="472385208"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">12</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="508553704"/>
+ <reference ref="923913762"/>
+ <reference ref="785455561"/>
+ <reference ref="531154203"/>
+ <reference ref="472385208"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="508553704"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="531154203"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="785455561"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="472385208"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="923913762"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>10.IBPluginDependency</string>
+ <string>10.IBViewBoundsToFrameTransform</string>
+ <string>5.IBPluginDependency</string>
+ <string>5.IBViewBoundsToFrameTransform</string>
+ <string>6.IBPluginDependency</string>
+ <string>6.IBViewBoundsToFrameTransform</string>
+ <string>7.IBPluginDependency</string>
+ <string>7.IBViewBoundsToFrameTransform</string>
+ <string>8.IBPluginDependency</string>
+ <string>8.IBViewBoundsToFrameTransform</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>RestoreViewController</string>
+ <string>UIResponder</string>
+ <string>{{206, 423}, {480, 320}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUOKgABDZQAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUGgAABBoAAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUObAABCAAAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUOGAABClAAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUJUAABDZQAAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">14</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">RestoreViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">buttonReleased:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">buttonReleased:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">buttonReleased:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/RestoreViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="749404015">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIButton</string>
+ <string key="superclassName">UIControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIControl</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIImageView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UILabel</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="749404015"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <string key="NS.key.0">denied.png</string>
+ <string key="NS.object.0">{240, 160}</string>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -21,7 +21,7 @@
#import "SavedGamesViewController.h"
#import "GameInterfaceBridge.h"
-#import "CommodityFunctions.h"
+
@implementation SavedGamesViewController
@synthesize tableView, listOfSavegames, interfaceBridge, numberOfItems;
@@ -44,11 +44,7 @@
if ([self.tableView respondsToSelector:@selector(setBackgroundView:)])
self.tableView.backgroundView = nil;
- NSString *imgName;
- if (IS_IPAD())
- imgName = @"mediumBackground~ipad.png";
- else
- imgName = @"smallerBackground~iphone.png";
+ NSString *imgName = (IS_IPAD()) ? @"mediumBackground~ipad.png" : @"smallerBackground~iphone.png";
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName];
self.view.backgroundColor = [UIColor colorWithPatternImage:img];
[img release];
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.xib Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,574 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">132</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="4"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ <object class="IBUIView" id="766721923">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIToolbar" id="832454237">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">290</int>
+ <string key="NSFrameSize">{768, 44}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <int key="IBUITag">458912</int>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableArray" key="IBUIItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIBarButtonItem" id="422926197">
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIStyle">1</int>
+ <reference key="IBUIToolbar" ref="832454237"/>
+ <int key="IBUISystemItemIdentifier">0</int>
+ </object>
+ <object class="IBUIBarButtonItem" id="881124109">
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <reference key="IBUIToolbar" ref="832454237"/>
+ <int key="IBUISystemItemIdentifier">5</int>
+ </object>
+ <object class="IBUIBarButtonItem" id="882246004">
+ <int key="IBUITag">1</int>
+ <string key="IBUITitle">Clear All</string>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <int key="IBUIStyle">1</int>
+ <reference key="IBUIToolbar" ref="832454237"/>
+ </object>
+ </object>
+ </object>
+ <object class="IBUITableView" id="399289716">
+ <reference key="NSNextResponder" ref="766721923"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{0, 44}, {768, 724}}</string>
+ <reference key="NSSuperview" ref="766721923"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAgMAA</bytes>
+ </object>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIAlwaysBounceVertical">YES</bool>
+ <int key="IBUIStyle">1</int>
+ <int key="IBUISeparatorStyle">2</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">10</float>
+ <float key="IBUISectionFooterHeight">10</float>
+ </object>
+ </object>
+ <string key="NSFrameSize">{768, 768}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">3</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="766721923"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="422926197"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">6</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">dataSource</string>
+ <reference key="source" ref="399289716"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">8</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="399289716"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">9</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="399289716"/>
+ </object>
+ <int key="connectionID">10</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">buttonPressed:</string>
+ <reference key="source" ref="882246004"/>
+ <reference key="destination" ref="841351856"/>
+ </object>
+ <int key="connectionID">17</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="766721923"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="832454237"/>
+ <reference ref="399289716"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="832454237"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="422926197"/>
+ <reference ref="881124109"/>
+ <reference ref="882246004"/>
+ </object>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="422926197"/>
+ <reference key="parent" ref="832454237"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="399289716"/>
+ <reference key="parent" ref="766721923"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="881124109"/>
+ <reference key="parent" ref="832454237"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="882246004"/>
+ <reference key="parent" ref="832454237"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>13.IBPluginDependency</string>
+ <string>15.IBPluginDependency</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>4.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>SavedGamesViewController</string>
+ <string>UIResponder</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{467, 276}, {768, 768}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">17</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">SavedGamesViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>clearAll:</string>
+ <string>toggleEdit:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>buttonPressed:</string>
+ <string>clearAll:</string>
+ <string>toggleEdit:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">buttonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">clearAll:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleEdit:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">tableView</string>
+ <string key="NS.object.0">UITableView</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">tableView</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/SavedGamesViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarButtonItem</string>
+ <string key="superclassName">UIBarItem</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarItem</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIScrollView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UITableView</string>
+ <string key="superclassName">UIScrollView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIToolbar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1056" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">132</string>
+ </data>
+</archive>
--- a/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -41,6 +41,8 @@
action:@selector(toggleEdit:)];
self.navigationItem.rightBarButtonItem = editButton;
[editButton release];
+
+ self.navigationItem.title = @"List of schemes";
}
-(void) viewWillAppear:(BOOL) animated {
@@ -78,7 +80,7 @@
-(void) addScheme:(id) sender {
NSString *fileName = [[NSString alloc] initWithFormat:@"Scheme %u.plist", [self.listOfSchemes count]];
- createSchemeNamed([fileName stringByDeletingPathExtension], 0);
+ [CreationChamber createSchemeNamed:[fileName stringByDeletingPathExtension]];
[self.listOfSchemes addObject:fileName];
@@ -126,7 +128,7 @@
[schemeFile release];
[self.listOfSchemes removeObjectAtIndex:row];
- [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
+ [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
#pragma mark -
@@ -144,6 +146,7 @@
[childController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
[self.navigationController pushViewController:childController animated:YES];
+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -22,7 +22,9 @@
#import <UIKit/UIKit.h>
-@interface SchemeWeaponConfigViewController : UITableViewController {
+@interface SchemeWeaponConfigViewController : UIViewController <UITableViewDelegate,UITableViewDataSource> {
+ UITableView *tableView;
+
NSArray *listOfSchemes;
NSArray *listOfWeapons;
NSArray *listOfScripts;
@@ -37,9 +39,10 @@
NSString *scriptCommand;
UISegmentedControl *topControl;
- BOOL hideSections;
+ BOOL sectionsHidden;
}
+@property (nonatomic,retain) UITableView *tableView;
@property (nonatomic,retain) NSArray *listOfSchemes;
@property (nonatomic,retain) NSArray *listOfWeapons;
@property (nonatomic,retain) NSArray *listOfScripts;
@@ -51,9 +54,9 @@
@property (nonatomic,retain) NSString *selectedScript;
@property (nonatomic,retain) NSString *scriptCommand;
@property (nonatomic,retain) UISegmentedControl *topControl;
-@property (assign) BOOL hideSections;
+@property (nonatomic,assign) BOOL sectionsHidden;
--(void) fillSections;
--(void) emptySections;
++(void) fillInstanceSections;
++(void) emptyInstanceSections;
@end
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,80 +20,122 @@
#import "SchemeWeaponConfigViewController.h"
-#import "CommodityFunctions.h"
+#import <QuartzCore/QuartzCore.h>
+
#define LABEL_TAG 57423
+static SchemeWeaponConfigViewController *controllerInstance;
+
@implementation SchemeWeaponConfigViewController
-@synthesize listOfSchemes, listOfWeapons, listOfScripts, lastIndexPath_sc, lastIndexPath_we, lastIndexPath_lu,
- selectedScheme, selectedWeapon, selectedScript, scriptCommand, topControl, hideSections;
+@synthesize tableView, listOfSchemes, listOfWeapons, listOfScripts, lastIndexPath_sc, lastIndexPath_we, lastIndexPath_lu,
+ selectedScheme, selectedWeapon, selectedScript, scriptCommand, topControl, sectionsHidden;
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
+#pragma mark custom setters/getters
+-(NSString *)selectedScheme {
+ if (selectedScheme == nil)
+ self.selectedScheme = @"Default.plist";
+ return selectedScheme;
+}
+
+-(NSString *)selectedWeapon {
+ if (selectedWeapon == nil)
+ self.selectedWeapon = @"Default.plist";
+ return selectedWeapon;
+}
+
+-(NSString *)selectedScript {
+ if (selectedScript == nil)
+ self.selectedScript = @"Normal.plist";
+ return selectedScript;
+}
+
+-(NSString *)scriptCommand {
+ if (scriptCommand == nil)
+ self.scriptCommand = @"";
+ return scriptCommand;
+}
+
+-(NSArray *)listOfSchemes {
+ if (listOfSchemes == nil)
+ self.listOfSchemes = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL];
+ return listOfSchemes;
+}
+
+-(NSArray *)listOfWeapons {
+ if (listOfWeapons == nil)
+ self.listOfWeapons = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL];
+ return listOfWeapons;
+}
+
+-(NSArray *)listOfScripts {
+ if (listOfScripts == nil)
+ self.listOfScripts = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCRIPTS_DIRECTORY() error:NULL];
+ return listOfScripts;
+}
+
+-(UISegmentedControl *)topControl {
+ if (topControl == nil) {
+ NSArray *array = [[NSArray alloc] initWithObjects:
+ NSLocalizedString(@"Scheme",@""),
+ NSLocalizedString(@"Weapon",@""),
+ NSLocalizedString(@"Style",@""),nil];
+ UISegmentedControl *controller = [[UISegmentedControl alloc] initWithItems:array];
+ [array release];
+ controller.segmentedControlStyle = UISegmentedControlStyleBar;
+ controller.tintColor = [UIColor lightGrayColor];
+ controller.selectedSegmentIndex = 0;
+ self.topControl = controller;
+ [controller addTarget:self.tableView action:@selector(reloadData) forControlEvents:UIControlEventValueChanged];
+ [controller release];
+ }
+ return topControl;
+}
+
+#pragma mark -
#pragma mark View lifecycle
-(void) viewDidLoad {
- [super viewDidLoad];
-
- CGSize screenSize = [[UIScreen mainScreen] bounds].size;
- self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44);
-
- self.selectedScheme = nil;
- self.selectedWeapon = nil;
- self.selectedScript = nil;
- self.scriptCommand = nil;
+ self.sectionsHidden = NO;
- if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
- if (IS_IPAD())
- [self.tableView setBackgroundView:nil];
- else {
- UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:@"background~iphone.png"];
- UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
- [backgroundImage release];
- [self.tableView setBackgroundView:background];
- [background release];
- }
+ UITableView *aTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)
+ style:UITableViewStyleGrouped];
+ aTableView.delegate = self;
+ aTableView.dataSource = self;
+ if (IS_IPAD()) {
+ [aTableView setBackgroundColorForAnyTable:[UIColor darkBlueColorTransparent]];
+ aTableView.layer.borderColor = [[UIColor darkYellowColor] CGColor];
+ aTableView.layer.borderWidth = 2.7f;
+ aTableView.layer.cornerRadius = 8;
+ aTableView.contentInset = UIEdgeInsetsMake(5, 0, 5, 0);
} else {
- self.view.backgroundColor = [UIColor blackColor];
+ UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:@"background~iphone.png"];
+ UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
+ [backgroundImage release];
+ [self.view addSubview:background];
+ [background release];
+ [aTableView setBackgroundColorForAnyTable:[UIColor clearColor]];
}
- self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
- self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
-}
-
--(void) viewWillAppear:(BOOL) animated {
- [super viewWillAppear:animated];
-
- NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL];
- self.listOfSchemes = contentsOfDir;
+ aTableView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
+ aTableView.separatorColor = [UIColor whiteColor];
+ aTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+ self.tableView = aTableView;
+ [aTableView release];
+ [self.view addSubview:self.tableView];
- if (self.selectedScheme == nil && [listOfSchemes containsObject:@"Default.plist"])
- self.selectedScheme = @"Default.plist";
-
- contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL];
- self.listOfWeapons = contentsOfDir;
-
- if (self.selectedWeapon == nil && [listOfWeapons containsObject:@"Default.plist"])
- self.selectedWeapon = @"Default.plist";
-
- contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCRIPTS_DIRECTORY() error:NULL];
- self.listOfScripts = contentsOfDir;
- self.selectedScript = @"Normal.plist";
- self.scriptCommand = @"";
-
- [self.tableView reloadData];
+ [super viewDidLoad];
+ controllerInstance = self;
}
-
#pragma mark -
#pragma mark Table view data source
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
- if (hideSections)
- return 0;
- else
- return 1;
+ return (self.sectionsHidden ? 0 : 1);
}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
@@ -106,12 +148,12 @@
}
// Customize the appearance of table view cells.
--(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
NSInteger index = self.topControl.selectedSegmentIndex;
NSInteger row = [indexPath row];
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
@@ -154,8 +196,8 @@
}
}
- cell.backgroundColor = UICOLOR_HW_ALMOSTBLACK;
- cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
+ cell.backgroundColor = [UIColor blackColorTransparent];
+ cell.textLabel.textColor = [UIColor lightYellowColor];
cell.detailTextLabel.textColor = [UIColor whiteColor];
cell.textLabel.adjustsFontSizeToFitWidth = YES;
cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
@@ -167,20 +209,9 @@
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
- if (self.topControl == nil) {
- NSArray *array = [[NSArray alloc] initWithObjects:NSLocalizedString(@"Scheme",@""),NSLocalizedString(@"Weapon",@""),
- NSLocalizedString(@"Style",@""),nil];
- self.topControl = [[UISegmentedControl alloc] initWithItems:array];
- [array release];
- [self.topControl addTarget:self.tableView action:@selector(reloadData) forControlEvents:UIControlEventValueChanged];
- self.topControl.segmentedControlStyle = UISegmentedControlStyleBar;
- self.topControl.frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
- self.topControl.center = CGPointMake(self.view.frame.size.width/2, 24);
- self.topControl.tintColor = [UIColor lightGrayColor];
- self.topControl.selectedSegmentIndex = 0;
- }
-
UIView *theView = [[[UIView alloc] init] autorelease];
+ self.topControl.frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
+ self.topControl.center = CGPointMake(self.view.frame.size.width/2, 24);
[theView addSubview:self.topControl];
return theView;
}
@@ -213,6 +244,7 @@
self.lastIndexPath_sc = indexPath;
self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
+ // also set weaponset when selecting scheme, if set
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
if ([[settings objectForKey:@"sync_ws"] boolValue]) {
for (NSString *str in self.listOfWeapons) {
@@ -220,7 +252,6 @@
int index = [self.listOfSchemes indexOfObject:str];
self.selectedWeapon = str;
self.lastIndexPath_we = [NSIndexPath indexPathForRow:index inSection:1];
- [self.tableView reloadData];
break;
}
}
@@ -232,7 +263,8 @@
self.lastIndexPath_lu = indexPath;
self.selectedScript = [self.listOfScripts objectAtIndex:newRow];
- NSString *path = [[NSString alloc] initWithFormat:@"%@/%@",SCRIPTS_DIRECTORY(),selectedScript];
+ // some styles disable or force the choice of a particular scheme/weaponset
+ NSString *path = [[NSString alloc] initWithFormat:@"%@/%@",SCRIPTS_DIRECTORY(),self.selectedScript];
NSDictionary *scriptDict = [[NSDictionary alloc] initWithContentsOfFile:path];
[path release];
self.scriptCommand = [scriptDict objectForKey:@"command"];
@@ -262,64 +294,61 @@
[aTableView deselectRowAtIndexPath:indexPath animated:YES];
}
--(void) fillSections {
- if (hideSections == YES) {
- hideSections = NO;
- NSRange range;
- range.location = 0;
- range.length = 1;
- NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
- [self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
- self.selectedScheme = @"Default.plist";
- self.selectedWeapon = @"Default.plist";
- self.selectedScript = @"Normal.plist";
+#pragma mark -
+#pragma mark called externally to empty or fill the sections completely
++(void) fillInstanceSections {
+ if (controllerInstance.sectionsHidden == YES) {
+ controllerInstance.sectionsHidden = NO;
+ NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 1)];
+ [controllerInstance.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
+ controllerInstance.tableView.scrollEnabled = YES;
- self.tableView.scrollEnabled = YES;
-
- [[self.view viewWithTag:LABEL_TAG] removeFromSuperview];
+ [[controllerInstance.view viewWithTag:LABEL_TAG] removeFromSuperview];
}
}
--(void) emptySections {
- hideSections = YES;
- NSRange range;
- range.location = 0;
- range.length = 1;
- NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
- [self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
- self.selectedScheme = @"Default.plist";
- self.selectedWeapon = @"Default.plist";
- self.selectedScript = @"Normal.plist";
++(void) emptyInstanceSections {
+ if (controllerInstance.sectionsHidden == NO) {
+ controllerInstance.sectionsHidden = YES;
+ NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 1)];
+ [controllerInstance.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
+ controllerInstance.tableView.scrollEnabled = NO;
- self.tableView.scrollEnabled = NO;
+ CGRect frame = CGRectMake(0, 0, controllerInstance.view.frame.size.width * 80/100, 60);
+ UILabel *theLabel = [[UILabel alloc] initWithFrame:frame
+ andTitle:NSLocalizedString(@"Missions don't need further configuration",@"")];
+ theLabel.center = CGPointMake(controllerInstance.view.frame.size.width/2, controllerInstance.view.frame.size.height/2);
+ theLabel.numberOfLines = 2;
+ theLabel.tag = LABEL_TAG;
- CGRect frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 60);
- UILabel *theLabel = createBlueLabel(NSLocalizedString(@"Missions don't need further configuration",@""), frame);
- theLabel.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
- theLabel.numberOfLines = 2;
- theLabel.tag = LABEL_TAG;
-
- [self.view addSubview:theLabel];
- [theLabel release];
+ [controllerInstance.view addSubview:theLabel];
+ [theLabel release];
+ }
}
#pragma mark -
#pragma mark Memory management
-(void) didReceiveMemoryWarning {
if ([[HedgewarsAppDelegate sharedAppDelegate] isInGame]) {
+ self.tableView = nil;
self.lastIndexPath_sc = nil;
self.lastIndexPath_we = nil;
self.lastIndexPath_lu = nil;
- self.listOfSchemes = nil;
- self.listOfWeapons = nil;
- self.listOfScripts = nil;
+ self.selectedScheme = nil;
+ self.selectedWeapon = nil;
+ self.selectedScript = nil;
+ self.scriptCommand = nil;
self.topControl = nil;
- MSG_MEMCLEAN();
}
+ self.listOfSchemes = nil;
+ self.listOfWeapons = nil;
+ self.listOfScripts = nil;
+ MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
-(void) viewDidUnload {
+ self.tableView = nil;
self.listOfSchemes = nil;
self.listOfWeapons = nil;
self.listOfScripts = nil;
@@ -335,8 +364,8 @@
[super viewDidUnload];
}
-
-(void) dealloc {
+ releaseAndNil(tableView);
releaseAndNil(listOfSchemes);
releaseAndNil(listOfWeapons);
releaseAndNil(listOfScripts);
--- a/project_files/HedgewarsMobile/Classes/ServerSetup.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ServerSetup.h Fri Oct 28 18:26:17 2011 +0200
@@ -28,6 +28,9 @@
TCPsocket sd; // External socket descriptor
}
++(NSInteger) randomPort;
++(BOOL) isNetworkReachable;
+
@property (nonatomic, retain) NSDictionary *systemSettings;
@end
--- a/project_files/HedgewarsMobile/Classes/ServerSetup.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ServerSetup.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,8 +20,9 @@
#import "ServerSetup.h"
-#import "PascalImports.h"
-#import "CommodityFunctions.h"
+#import <netinet/in.h>
+#import <SystemConfiguration/SCNetworkReachability.h>
+
#import "hwconsts.h"
#define BUFFER_SIZE 256
@@ -29,6 +30,47 @@
@implementation ServerSetup
@synthesize systemSettings;
+
++(NSInteger) randomPort {
+ srandom(time(NULL));
+ NSInteger res = (random() % 64511) + 1024;
+ return (res == NETGAME_DEFAULT_PORT) ? [ServerSetup randomPort] : res;
+}
+
++(BOOL) isNetworkReachable {
+ // Create zero addy
+ struct sockaddr_in zeroAddress;
+ bzero(&zeroAddress, sizeof(zeroAddress));
+ zeroAddress.sin_len = sizeof(zeroAddress);
+ zeroAddress.sin_family = AF_INET;
+
+ // Recover reachability flags
+ SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
+ SCNetworkReachabilityFlags flags;
+
+ BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
+ CFRelease(defaultRouteReachability);
+
+ if (!didRetrieveFlags) {
+ NSLog(@"Error. Could not recover network reachability flags");
+ return NO;
+ }
+
+ BOOL isReachable = flags & kSCNetworkFlagsReachable;
+ BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
+ BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
+
+ NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
+ NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL
+ cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
+ timeoutInterval:20.0];
+ NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:nil];
+ BOOL testResult = testConnection ? YES : NO;
+ [testConnection release];
+
+ return ((isReachable && !needsConnection) || nonWiFi) ? testResult : NO;
+}
+
-(id) init {
if (self = [super init]) {
self.systemSettings = nil; //nsuserdefault
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,50 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 27/03/2010.
+ */
+
+
+#import <UIKit/UIKit.h>
+
+
+@class GeneralSettingsViewController;
+@class TeamSettingsViewController;
+@class WeaponSettingsViewController;
+@class SchemeSettingsViewController;
+@class SupportViewController;
+
+@interface SettingsBaseViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UITabBarControllerDelegate> {
+ UIViewController *targetController;
+ NSArray *controllerNames;
+ NSIndexPath *lastIndexPath;
+ UITabBarController *tabController;
+ GeneralSettingsViewController *generalSettingsViewController;
+ TeamSettingsViewController *teamSettingsViewController;
+ WeaponSettingsViewController *weaponSettingsViewController;
+ SchemeSettingsViewController *schemeSettingsViewController;
+ SupportViewController *supportViewController;
+}
+
+@property (nonatomic, retain) UIViewController *targetController;
+@property (nonatomic, retain) NSArray *controllerNames;
+@property (nonatomic, retain) NSIndexPath *lastIndexPath;
+@property (nonatomic, retain) UITabBarController *tabController;
+
+-(void) dismissSplitView;
+
+@end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,288 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 27/03/2010.
+ */
+
+
+#import "SettingsBaseViewController.h"
+#import "GeneralSettingsViewController.h"
+#import "TeamSettingsViewController.h"
+#import "WeaponSettingsViewController.h"
+#import "SchemeSettingsViewController.h"
+#import "SupportViewController.h"
+
+@implementation SettingsBaseViewController
+@synthesize tabController, targetController, controllerNames, lastIndexPath;
+
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+ return rotationManager(interfaceOrientation);
+}
+
+
+#pragma mark -
+#pragma mark View lifecycle
+-(void) viewDidLoad {
+ // the list of available controllers
+ NSArray *array = [[NSArray alloc] initWithObjects:NSLocalizedString(@"General",@""),
+ NSLocalizedString(@"Teams",@""),
+ NSLocalizedString(@"Weapons",@""),
+ NSLocalizedString(@"Schemes",@""),
+ NSLocalizedString(@"Support",@""),
+ nil];
+ self.controllerNames = array;
+ [array release];
+
+ UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
+ target:self
+ action:@selector(dismissSplitView)];
+ if (IS_IPAD()) {
+ // this class gets loaded twice, we tell the difference by looking at targetController
+ if (self.targetController != nil) {
+ UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
+ tableView.delegate = self;
+ tableView.dataSource = self;
+ [tableView reloadData];
+ [self.view addSubview:tableView];
+ [self tableView:tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
+ [tableView release];
+ self.navigationItem.leftBarButtonItem = doneButton;
+ }
+ } else {
+ // this class just loads all controllers and set up tabbar and navigation controllers
+ NSMutableArray *tabBarNavigationControllers = [[NSMutableArray alloc] initWithCapacity:5];
+ UINavigationController *navController = nil;
+
+ if (nil == generalSettingsViewController) {
+ generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ generalSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:0];
+ generalSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/TargetBee.png",GRAPHICS_DIRECTORY()]];
+ navController = [[UINavigationController alloc] initWithRootViewController:generalSettingsViewController];
+ generalSettingsViewController.navigationItem.backBarButtonItem = doneButton;
+ generalSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
+ [generalSettingsViewController release];
+ [tabBarNavigationControllers addObject:navController];
+ releaseAndNil(navController);
+ }
+ if (nil == teamSettingsViewController) {
+ teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ teamSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:1];
+ teamSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Egg.png",GRAPHICS_DIRECTORY()]];
+ navController = [[UINavigationController alloc] initWithRootViewController:teamSettingsViewController];
+ teamSettingsViewController.navigationItem.backBarButtonItem = doneButton;
+ teamSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
+ [tabBarNavigationControllers addObject:navController];
+ releaseAndNil(navController);
+ }
+ if (nil == weaponSettingsViewController) {
+ weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ weaponSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:2];
+ weaponSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/cheese.png",GRAPHICS_DIRECTORY()]];
+ navController = [[UINavigationController alloc] initWithRootViewController:weaponSettingsViewController];
+ weaponSettingsViewController.navigationItem.backBarButtonItem = doneButton;
+ weaponSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
+ [tabBarNavigationControllers addObject:navController];
+ releaseAndNil(navController);
+ }
+ if (nil == schemeSettingsViewController) {
+ schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ schemeSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:3];
+ schemeSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Targetp.png",GRAPHICS_DIRECTORY()]];
+ navController = [[UINavigationController alloc] initWithRootViewController:schemeSettingsViewController];
+ schemeSettingsViewController.navigationItem.backBarButtonItem = doneButton;
+ schemeSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
+ [tabBarNavigationControllers addObject:navController];
+ releaseAndNil(navController);
+ }
+ if (nil == supportViewController) {
+ supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ supportViewController.tabBarItem.title = [self.controllerNames objectAtIndex:4];
+ supportViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Seduction.png",GRAPHICS_DIRECTORY()]];
+ navController = [[UINavigationController alloc] initWithRootViewController:supportViewController];
+ supportViewController.navigationItem.backBarButtonItem = doneButton;
+ supportViewController.navigationItem.leftBarButtonItem = doneButton;
+ [tabBarNavigationControllers addObject:navController];
+ releaseAndNil(navController);
+ }
+
+ self.tabController = [[UITabBarController alloc] init];
+ self.tabController.viewControllers = tabBarNavigationControllers;
+ self.tabController.delegate = self;
+
+ [self.view addSubview:self.tabController.view];
+ }
+ [doneButton release];
+ [super viewDidLoad];
+}
+
+-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
+ [viewController viewWillAppear:NO];
+}
+
+-(void) dismissSplitView {
+ [AudioManagerController playBackSound];
+ [[[HedgewarsAppDelegate sharedAppDelegate] mainViewController] dismissModalViewControllerAnimated:YES];
+}
+
+#pragma mark -
+#pragma mark Table view data source
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+ return 1;
+}
+
+-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ return [self.controllerNames count];
+}
+
+// Customize the appearance of table view cells.
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *CellIdentifier = @"Cell";
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil)
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+
+ NSString *iconStr = nil;
+ switch ([indexPath row]) {
+ case 0:
+ iconStr = [NSString stringWithFormat:@"%@/TargetBee.png",GRAPHICS_DIRECTORY()];
+ break;
+ case 1:
+ iconStr = [NSString stringWithFormat:@"%@/Egg.png",GRAPHICS_DIRECTORY()];
+ break;
+ case 2:
+ iconStr = [NSString stringWithFormat:@"%@/cheese.png",GRAPHICS_DIRECTORY()];
+ break;
+ case 3:
+ iconStr = [NSString stringWithFormat:@"%@/Target.png",GRAPHICS_DIRECTORY()];
+ break;
+ case 4:
+ iconStr = [NSString stringWithFormat:@"%@/Seduction.png",GRAPHICS_DIRECTORY()];
+ break;
+ default:
+ DLog(@"Nope");
+ break;
+ }
+
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ cell.textLabel.text = [controllerNames objectAtIndex:[indexPath row]];
+ UIImage *icon = [[UIImage alloc] initWithContentsOfFile:iconStr];
+ cell.imageView.image = icon;
+ [icon release];
+
+ return cell;
+}
+
+#pragma mark -
+#pragma mark Table view delegate
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ int newRow = [indexPath row];
+ int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
+ UIViewController *nextController = nil;
+
+ if (newRow != oldRow) {
+ [tableView deselectRowAtIndexPath:lastIndexPath animated:YES];
+ [targetController.navigationController popToRootViewControllerAnimated:NO];
+
+ switch (newRow) {
+ case 0:
+ if (nil == generalSettingsViewController)
+ generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ nextController = generalSettingsViewController;
+ break;
+ case 1:
+ if (nil == teamSettingsViewController)
+ teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ nextController = teamSettingsViewController;
+ break;
+ case 2:
+ if (nil == weaponSettingsViewController)
+ weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ nextController = weaponSettingsViewController;
+ break;
+ case 3:
+ if (nil == schemeSettingsViewController)
+ schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ nextController = schemeSettingsViewController;
+ break;
+ case 4:
+ if (nil == supportViewController)
+ supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ nextController = supportViewController;
+ break;
+ }
+
+ self.lastIndexPath = indexPath;
+ [tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
+
+ nextController.navigationItem.hidesBackButton = YES;
+ [nextController viewWillAppear:NO];
+ [targetController.navigationController pushViewController:nextController animated:NO];
+ [AudioManagerController playClickSound];
+ }
+}
+
+
+#pragma mark -
+#pragma mark Memory management
+-(void) didReceiveMemoryWarning {
+ if (generalSettingsViewController.view.superview == nil)
+ generalSettingsViewController = nil;
+ if (teamSettingsViewController.view.superview == nil)
+ teamSettingsViewController = nil;
+ if (weaponSettingsViewController.view.superview == nil)
+ weaponSettingsViewController = nil;
+ if (schemeSettingsViewController.view.superview == nil)
+ schemeSettingsViewController = nil;
+ if (supportViewController.view.superview == nil)
+ supportViewController = nil;
+ if (tabController.view.superview == nil)
+ tabController = nil;
+ MSG_MEMCLEAN();
+ [super didReceiveMemoryWarning];
+}
+
+-(void) viewDidUnload {
+ self.controllerNames = nil;
+ self.lastIndexPath = nil;
+ self.targetController = nil;
+ self.tabController = nil;
+ generalSettingsViewController = nil;
+ teamSettingsViewController = nil;
+ weaponSettingsViewController = nil;
+ schemeSettingsViewController = nil;
+ supportViewController = nil;
+ MSG_DIDUNLOAD();
+ [super viewDidUnload];
+}
+
+-(void) dealloc {
+ releaseAndNil(targetController);
+ releaseAndNil(controllerNames);
+ releaseAndNil(lastIndexPath);
+ releaseAndNil(tabController);
+ releaseAndNil(generalSettingsViewController);
+ releaseAndNil(teamSettingsViewController);
+ releaseAndNil(weaponSettingsViewController);
+ releaseAndNil(schemeSettingsViewController);
+ releaseAndNil(supportViewController);
+ [super dealloc];
+}
+
+@end
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/SettingsContainerViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,36 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 27/03/2010.
+ */
+
+
+#import <UIKit/UIKit.h>
+
+@class SettingsBaseViewController;
+
+@interface SettingsContainerViewController : UIViewController {
+ SettingsBaseViewController *baseController;
+ UINavigationController *activeController;
+ UISplitViewController *splitViewRootController;
+}
+
+@property (nonatomic,retain) SettingsBaseViewController *baseController;
+@property (nonatomic,retain) UINavigationController *activeController;
+@property (nonatomic,retain) UISplitViewController *splitViewRootController;
+
+@end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/SettingsContainerViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,130 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 27/03/2010.
+ */
+
+
+#import "SettingsContainerViewController.h"
+#import "SettingsBaseViewController.h"
+
+
+@implementation SettingsContainerViewController
+@synthesize baseController, activeController, splitViewRootController;
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return rotationManager(interfaceOrientation);
+}
+
+
+-(void) viewDidLoad {
+ CGRect rect = [[UIScreen mainScreen] bounds];
+ self.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
+
+ if (IS_IPAD()) {
+ // the contents on the right of the splitview, setting targetController to nil to avoid creating the table
+ SettingsBaseViewController *rightController = [[SettingsBaseViewController alloc] init];
+ rightController.targetController = nil;
+ UINavigationController *rightNavController = [[UINavigationController alloc] initWithRootViewController:rightController];
+ [rightController release];
+
+ // the contens on the left of the splitview, setting targetController that will receive push/pop actions
+ SettingsBaseViewController *leftController = [[SettingsBaseViewController alloc] init];
+ leftController.targetController = rightNavController.topViewController;
+ UINavigationController *leftNavController = [[UINavigationController alloc] initWithRootViewController:leftController];
+ [leftController release];
+
+ self.activeController = rightNavController;
+ self.splitViewRootController = [[UISplitViewController alloc] init];
+ self.splitViewRootController.delegate = nil;
+ self.splitViewRootController.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
+ self.splitViewRootController.viewControllers = [NSArray arrayWithObjects: leftNavController, rightNavController, nil];
+ [leftNavController release];
+ [rightNavController release];
+
+ // add view to main controller
+ [self.view addSubview:self.splitViewRootController.view];
+ } else {
+ if (nil == self.baseController) {
+ SettingsBaseViewController *sbvc = [[SettingsBaseViewController alloc] init];
+ self.baseController = sbvc;
+ [sbvc release];
+ }
+ self.baseController.targetController = nil;
+ self.baseController.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
+
+ [self.view addSubview:self.baseController.view];
+ // here setting activeController is not needed as the event is kept active by the uitabbarcontroller
+ }
+
+ [super viewDidLoad];
+}
+
+#pragma mark -
+#pragma mark Memory management
+-(void) didReceiveMemoryWarning {
+ if (self.baseController.view.superview == nil)
+ self.baseController = nil;
+ if (self.activeController.view.superview == nil)
+ self.activeController = nil;
+ if (self.splitViewRootController.view.superview == nil)
+ self.splitViewRootController = nil;
+ MSG_MEMCLEAN();
+ [super didReceiveMemoryWarning];
+}
+
+-(void) viewDidUnload {
+ self.baseController = nil;
+ self.activeController = nil;
+ self.splitViewRootController = nil;
+ MSG_DIDUNLOAD();
+ [super viewDidUnload];
+}
+
+-(void) dealloc {
+ releaseAndNil(baseController);
+ releaseAndNil(activeController);
+ releaseAndNil(splitViewRootController);
+ [super dealloc];
+}
+
+
+#pragma mark -
+#pragma mark additional methods as we're using a UINavigationController programmatically
+// see http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/
+-(void) viewWillAppear:(BOOL)animated {
+ [super viewWillAppear:animated];
+ [self.activeController viewWillAppear:animated];
+}
+
+-(void) viewWillDisappear:(BOOL)animated {
+ [super viewWillDisappear:animated];
+ [self.activeController viewWillDisappear:animated];
+}
+
+-(void) viewDidAppear:(BOOL)animated {
+ [super viewDidLoad];
+ [self.activeController viewDidAppear:animated];
+}
+
+-(void) viewDidDisappear:(BOOL)animated {
+ [super viewDidUnload];
+ [self.activeController viewDidDisappear:animated];
+}
+
+
+@end
--- a/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -21,8 +21,7 @@
#import "SingleSchemeViewController.h"
#import <QuartzCore/QuartzCore.h>
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
+
#define LABEL_TAG 12345
#define SLIDER_TAG 54321
@@ -235,8 +234,8 @@
[[self.gameModifierArray objectAtIndex:row] objectForKey:@"image"]]];
cell.imageView.image = image;
[image release];
- [cell.imageView.layer setCornerRadius:7.0f];
- [cell.imageView.layer setMasksToBounds:YES];
+ cell.imageView.layer.cornerRadius = 6.0f;
+ cell.imageView.layer.masksToBounds = YES;
cell.textLabel.text = [[self.gameModifierArray objectAtIndex:row] objectForKey:@"title"];
cell.detailTextLabel.text = [[self.gameModifierArray objectAtIndex:row] objectForKey:@"description"];
cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
--- a/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -27,9 +27,7 @@
#import "FortsViewController.h"
#import "FlagsViewController.h"
#import "LevelViewController.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
-#import "PascalImports.h"
+
#define TEAMNAME_TAG 78789
@@ -264,8 +262,9 @@
accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png",
FLAGS_DIRECTORY(),[teamDictionary objectForKey:@"flag"]]];
cell.imageView.image = [accessoryImage scaleToSize:CGSizeMake(26, 18)];
- cell.imageView.layer.borderWidth = 0.3;
[accessoryImage release];
+ cell.imageView.layer.borderWidth = 1;
+ cell.imageView.layer.borderColor = [[UIColor blackColor] CGColor];
break;
case 4: // level
accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/bot%d.png",
--- a/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,9 +20,7 @@
#import "SingleWeaponViewController.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
-#import "PascalImports.h"
+
@implementation SingleWeaponViewController
@synthesize weaponName, description, ammoStoreImage;
@@ -165,10 +163,11 @@
weaponCell.delegate = self;
}
- int size = 32 * getScreenScale();
- int corners = 8 * getScreenScale();
- int x = ((row*size)/(int)(self.ammoStoreImage.size.height*getScreenScale()))*size;
- int y = (row*size)%(int)(self.ammoStoreImage.size.height*getScreenScale());
+ CGFloat theScale = [[UIScreen mainScreen] safeScale];
+ int size = 32 * theScale;
+ int corners = 8 * theScale;
+ int x = ((row*size)/(int)(self.ammoStoreImage.size.height * theScale))*size;
+ int y = (row*size)%(int)(self.ammoStoreImage.size.height * theScale);
UIImage *img = [[self.ammoStoreImage cutAt:CGRectMake(x, y, size, size)] makeRoundCornersOfSize:CGSizeMake(corners, corners)];
weaponCell.weaponIcon.image = img;
--- a/project_files/HedgewarsMobile/Classes/SplitViewRootController.h Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * File created on 27/03/2010.
- */
-
-
-#import <UIKit/UIKit.h>
-
-@class MasterViewController;
-
-@interface SplitViewRootController: UIViewController {
- MasterViewController *activeController;
- UINavigationController *rightNavController;
- UISplitViewController *splitViewRootController;
-}
-
-@property (nonatomic,retain) MasterViewController *activeController;
-@property (nonatomic,retain) UINavigationController *rightNavController;
-@property (nonatomic,retain) UISplitViewController *splitViewRootController;
-
-@end
--- a/project_files/HedgewarsMobile/Classes/SplitViewRootController.m Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * File created on 27/03/2010.
- */
-
-
-#import "SplitViewRootController.h"
-#import "MasterViewController.h"
-#import "CommodityFunctions.h"
-
-@implementation SplitViewRootController
-@synthesize activeController, rightNavController, splitViewRootController;
-
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- return rotationManager(interfaceOrientation);
-}
-
--(void) didReceiveMemoryWarning {
- if (self.activeController.view.superview == nil)
- self.activeController = nil;
- MSG_MEMCLEAN();
- [super didReceiveMemoryWarning];
-}
-
-// load the view programmatically; we need a splitViewController that handles a MasterViewController
-// (which is just a UITableViewController) and a DetailViewController where we present options
--(void) viewDidLoad {
- CGRect rect = [[UIScreen mainScreen] bounds];
- self.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
-
- if (self.activeController == nil) {
- MasterViewController *rightController = [[MasterViewController alloc] initWithStyle:UITableViewStyleGrouped];
- rightController.rootController = self;
- rightController.targetController = nil;
- self.activeController = rightController;
- [rightController release];
- }
- self.rightNavController = [[UINavigationController alloc] initWithRootViewController:self.activeController];
-
- if (IS_IPAD()) {
- MasterViewController *leftController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain];
- leftController.rootController = self;
- leftController.targetController = self.activeController;
- UINavigationController *leftNavController = [[UINavigationController alloc] initWithRootViewController:leftController];
- [leftController release];
-
- self.splitViewRootController = [[UISplitViewController alloc] init];
- self.splitViewRootController.delegate = nil;
- self.splitViewRootController.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
- self.splitViewRootController.viewControllers = [NSArray arrayWithObjects: leftNavController, self.rightNavController, nil];
- [leftNavController release];
- [self.rightNavController release];
-
- // add view to main controller
- [self.view addSubview:self.splitViewRootController.view];
- } else {
- self.rightNavController.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
- [self.view addSubview:self.rightNavController.view];
- }
-
- [super viewDidLoad];
-}
-
--(void) dismissModalViewControllerAnimated:(BOOL)animated {
- [AudioManagerController playBackSound];
- [self.parentViewController dismissModalViewControllerAnimated:YES];
-}
-
--(void) viewDidUnload {
- self.activeController = nil;
- self.rightNavController = nil;
- self.splitViewRootController = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(activeController);
- releaseAndNil(rightNavController);
- releaseAndNil(splitViewRootController);
- [super dealloc];
-}
-
-#pragma mark -
-#pragma mark additional methods as we're using a UINavigationController programmatically
-// see http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/
--(void) viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
- [self.activeController.navigationController viewWillAppear:animated];
-}
-
--(void) viewWillDisappear:(BOOL)animated {
- [super viewWillDisappear:animated];
- [self.activeController.navigationController viewWillDisappear:animated];
-}
-
--(void) viewDidAppear:(BOOL)animated {
- [super viewDidLoad];
- [self.activeController.navigationController viewDidAppear:animated];
-}
-
--(void) viewDidDisappear:(BOOL)animated {
- [super viewDidUnload];
- [self.activeController.navigationController viewDidDisappear:animated];
-}
-
-
-@end
--- a/project_files/HedgewarsMobile/Classes/SquareButtonView.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SquareButtonView.m Fri Oct 28 18:26:17 2011 +0200
@@ -21,8 +21,7 @@
#import "SquareButtonView.h"
#import <QuartzCore/QuartzCore.h>
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
+
@implementation SquareButtonView
@synthesize colorArray, selectedColor, ownerDictionary;
@@ -32,7 +31,7 @@
colorIndex = -1;
selectedColor = 0;
- self.colorArray = getAvailableColors();
+ self.colorArray = [HWUtils teamColors];
// set the color to the first available one
[self nextColor];
@@ -41,7 +40,7 @@
[self.layer setCornerRadius:7.0f];
[self.layer setMasksToBounds:YES];
[self.layer setBorderWidth:2];
- [self.layer setBorderColor:[UICOLOR_HW_YELLOW_BODER CGColor]];
+ [self.layer setBorderColor:[[UIColor darkYellowColor] CGColor]];
// this changes the color at button press
[self addTarget:self action:@selector(nextColor) forControlEvents:UIControlEventTouchUpInside];
@@ -67,7 +66,7 @@
-(void) selectColor:(NSUInteger) color {
if (color != selectedColor) {
selectedColor = color;
- colorIndex = [colorArray indexOfObject:[NSNumber numberWithUnsignedInt:color]];
+ colorIndex = [self.colorArray indexOfObject:[NSNumber numberWithUnsignedInt:color]];
self.backgroundColor = [UIColor colorWithRed:((color & 0x00FF0000) >> 16)/255.0f
green:((color & 0x0000FF00) >> 8)/255.0f
--- a/project_files/HedgewarsMobile/Classes/StatsPageViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/StatsPageViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,6 @@
#import "StatsPageViewController.h"
-#import "CommodityFunctions.h"
#import <QuartzCore/QuartzCore.h>
@implementation StatsPageViewController
@@ -49,7 +48,7 @@
} else
self.view.backgroundColor = [UIColor blackColor];
- self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
+ self.tableView.separatorColor = [UIColor darkYellowColor];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[super viewDidLoad];
@@ -85,7 +84,7 @@
imgName = @"star";
imgPath = [[NSBundle mainBundle] resourcePath];
cell.textLabel.text = [self.statsArray objectAtIndex:1];
- cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
+ cell.textLabel.textColor = [UIColor lightYellowColor];
} else if (section == 1) { // teams ranking
// color, # kills, teamname
NSArray *info = [[[self.statsArray objectAtIndex:0] objectAtIndex:row] componentsSeparatedByString:@" "];
@@ -99,7 +98,7 @@
} else if (section == 2) { // general info
imgName = @"iconDamage";
cell.textLabel.text = [self.statsArray objectAtIndex:row + 2];
- cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
+ cell.textLabel.textColor = [UIColor lightYellowColor];
}
NSString *imgString = [[NSString alloc] initWithFormat:@"%@/%@.png",imgPath,imgName];
@@ -155,9 +154,9 @@
[button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];
button.titleLabel.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
- button.backgroundColor = UICOLOR_HW_ALMOSTBLACK;
+ button.backgroundColor = [UIColor blackColorTransparent];
[button.layer setBorderWidth:1];
- [button.layer setBorderColor:UICOLOR_HW_YELLOW_BODER.CGColor];
+ [button.layer setBorderColor:[[UIColor darkYellowColor] CGColor]];
[button.layer setCornerRadius:9.0f];
[button.layer setMasksToBounds:YES];
[button addTarget:self action:@selector(dismissView) forControlEvents:UIControlEventTouchUpInside];
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,7 @@
#import "SupportViewController.h"
-#import "CommodityFunctions.h"
+
@implementation SupportViewController
@synthesize waysToSupport;
@@ -44,6 +44,7 @@
self.waysToSupport = array;
[array release];
+ self.navigationItem.title = @"♥";
self.tableView.rowHeight = 50;
}
--- a/project_files/HedgewarsMobile/Classes/TeamConfigViewController.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.h Fri Oct 28 18:26:17 2011 +0200
@@ -22,17 +22,23 @@
#import <UIKit/UIKit.h>
#import "HoldTableViewCell.h"
-@interface TeamConfigViewController : UITableViewController <HoldTableViewCellDelegate> {
+
+@interface TeamConfigViewController : UIViewController <UITableViewDelegate,UITableViewDataSource,HoldTableViewCellDelegate> {
+ UITableView *tableView;
+
NSInteger selectedTeamsCount;
NSInteger allTeamsCount;
NSMutableArray *listOfSelectedTeams;
- NSMutableArray *listOfTeams;
+ NSMutableArray *listOfAllTeams;
NSArray *cachedContentsOfDir;
}
-@property (nonatomic, retain) NSMutableArray *listOfTeams;
-@property (nonatomic, retain) NSMutableArray *listOfSelectedTeams;
-@property (nonatomic, retain) NSArray *cachedContentsOfDir;
+@property (nonatomic,retain) UITableView *tableView;
+@property (nonatomic,assign) NSInteger selectedTeamsCount;
+@property (nonatomic,assign) NSInteger allTeamsCount;
+@property (nonatomic,retain) NSMutableArray *listOfAllTeams;
+@property (nonatomic,retain) NSMutableArray *listOfSelectedTeams;
+@property (nonatomic,retain) NSArray *cachedContentsOfDir;
@end
--- a/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,44 +20,54 @@
#import "TeamConfigViewController.h"
-#import "CommodityFunctions.h"
+#import <QuartzCore/QuartzCore.h>
#import "SquareButtonView.h"
+
@implementation TeamConfigViewController
-@synthesize listOfTeams, listOfSelectedTeams, cachedContentsOfDir;
+@synthesize tableView, selectedTeamsCount, allTeamsCount, listOfAllTeams, listOfSelectedTeams, cachedContentsOfDir;
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return rotationManager(interfaceOrientation);
+}
#pragma mark -
#pragma mark View lifecycle
-(void) viewDidLoad {
- [super viewDidLoad];
-
- CGSize screenSize = [[UIScreen mainScreen] bounds].size;
- self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44);
+ UITableView *aTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)
+ style:UITableViewStyleGrouped];
+ aTableView.delegate = self;
+ aTableView.dataSource = self;
+ if (IS_IPAD()) {
+ [aTableView setBackgroundColorForAnyTable:[UIColor darkBlueColorTransparent]];
+ aTableView.layer.borderColor = [[UIColor darkYellowColor] CGColor];
+ aTableView.layer.borderWidth = 2.7f;
+ aTableView.layer.cornerRadius = 8;
+ aTableView.contentInset = UIEdgeInsetsMake(10, 0, 10, 0);
+ } else {
+ UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:@"background~iphone.png"];
+ UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
+ [backgroundImage release];
+ [self.view addSubview:background];
+ [background release];
+ [aTableView setBackgroundColorForAnyTable:[UIColor clearColor]];
+ }
- if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
- if (IS_IPAD())
- [self.tableView setBackgroundView:nil];
- else {
- UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:@"background~iphone.png"];
- UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
- [backgroundImage release];
- [self.tableView setBackgroundView:background];
- [background release];
- }
- } else
- self.view.backgroundColor = [UIColor blackColor];
+ aTableView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
+ aTableView.separatorColor = [UIColor whiteColor];
+ aTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+ self.tableView = aTableView;
+ [aTableView release];
- self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
- self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+ [self.view addSubview:self.tableView];
+ [super viewDidLoad];
}
-(void) viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
-
NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:TEAMS_DIRECTORY() error:NULL];
- // avoid overwriting selected teams when returning on this view
if ([self.cachedContentsOfDir isEqualToArray:contentsOfDir] == NO) {
- NSArray *colors = getAvailableColors();
+ self.cachedContentsOfDir = contentsOfDir;
+ NSArray *colors = [HWUtils teamColors];
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:[contentsOfDir count]];
for (int i = 0; i < [contentsOfDir count]; i++) {
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
@@ -67,25 +77,19 @@
[array addObject:dict];
[dict release];
}
- self.listOfTeams = array;
+ self.listOfAllTeams = array;
[array release];
NSMutableArray *emptyArray = [[NSMutableArray alloc] initWithObjects:nil];
self.listOfSelectedTeams = emptyArray;
[emptyArray release];
- selectedTeamsCount = [self.listOfSelectedTeams count];
- allTeamsCount = [self.listOfTeams count];
+ self.selectedTeamsCount = [self.listOfSelectedTeams count];
+ self.allTeamsCount = [self.listOfAllTeams count];
+ [self.tableView reloadData];
+ }
- NSArray *contents = [[NSArray alloc] initWithArray:contentsOfDir copyItems:YES];
- self.cachedContentsOfDir = contents;
- [contents release];
- }
- [self.tableView reloadData];
-}
-
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- return rotationManager(interfaceOrientation);
+ [super viewWillAppear:animated];
}
-(NSInteger) filterNumberOfHogs:(NSInteger) hogs {
@@ -101,39 +105,6 @@
return numberOfHogs;
}
--(UIImage *)drawHogsRepeated:(NSInteger) manyTimes {
- NSString *imgString = [[NSString alloc] initWithFormat:@"%@/hedgehog.png",[[NSBundle mainBundle] resourcePath]];
- UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:imgString];
- [imgString release];
- CGFloat screenScale = getScreenScale();
- int w = hogSprite.size.width * screenScale;
- int h = hogSprite.size.height * screenScale;
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- CGContextRef context = CGBitmapContextCreate(NULL, w * 3, h, 8, 4 * w * 3, colorSpace, kCGImageAlphaPremultipliedFirst);
-
- // draw the two images in the current context
- for (int i = 0; i < manyTimes; i++)
- CGContextDrawImage(context, CGRectMake(i*8*screenScale, 0, w, h), [hogSprite CGImage]);
- [hogSprite release];
-
- // Create bitmap image info from pixel data in current context
- CGImageRef imageRef = CGBitmapContextCreateImage(context);
-
- // Create a new UIImage object
- UIImage *resultImage;
- if ([self respondsToSelector:@selector(imageWithCGImage:scale:orientation:)])
- resultImage = [UIImage imageWithCGImage:imageRef scale:screenScale orientation:UIImageOrientationUp];
- else
- resultImage = [UIImage imageWithCGImage:imageRef];
-
- // Release colorspace, context and bitmap information
- CGColorSpaceRelease(colorSpace);
- CGContextRelease(context);
- CFRelease(imageRef);
-
- return resultImage;
-}
-
#pragma mark -
#pragma mark Table view data source
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
@@ -141,10 +112,7 @@
}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- if (section == 0)
- return selectedTeamsCount;
- else
- return allTeamsCount;
+ return (section == 0 ? self.selectedTeamsCount : self.allTeamsCount);
}
// Customize the appearance of table view cells.
@@ -174,14 +142,14 @@
[squareButton setTitle:[hogNumber stringValue] forState:UIControlStateNormal];
squareButton.ownerDictionary = selectedRow;
- cell.imageView.image = [self drawHogsRepeated:[hogNumber intValue]];
+ cell.imageView.image = [UIImage drawHogsRepeated:[hogNumber intValue]];
((HoldTableViewCell *)cell).delegate = self;
} else {
cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease];
- cell.textLabel.text = [[[listOfTeams objectAtIndex:[indexPath row]] objectForKey:@"team"] stringByDeletingPathExtension];
+ cell.textLabel.text = [[[self.listOfAllTeams objectAtIndex:[indexPath row]] objectForKey:@"team"] stringByDeletingPathExtension];
cell.textLabel.backgroundColor = [UIColor clearColor];
NSString *teamPath = [NSString stringWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),cell.textLabel.text];
@@ -199,25 +167,21 @@
cell.accessoryView = nil;
}
- cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
- cell.backgroundColor = UICOLOR_HW_ALMOSTBLACK;
+ cell.textLabel.textColor = [UIColor lightYellowColor];
+ cell.backgroundColor = [UIColor blackColorTransparent];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
- return 40.0;
+ return 45.0;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
CGRect frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
- NSString *text;
- if (section == 0)
- text = NSLocalizedString(@"Playing Teams",@"");
- else
- text = NSLocalizedString(@"Available Teams",@"");
- UILabel *theLabel = createBlueLabel(text, frame);
+ NSString *text = (section == 0) ? NSLocalizedString(@"Playing Teams",@"") : NSLocalizedString(@"Available Teams",@"");
+ UILabel *theLabel = [[UILabel alloc] initWithFrame:frame andTitle:text];
theLabel.center = CGPointMake(self.view.frame.size.width/2, 20);
UIView *theView = [[[UIView alloc] init] autorelease];
@@ -230,13 +194,13 @@
return IS_IPAD() ? 40 : 20;
}
--(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {
+-(UIView *)tableView:(UITableView *)aTableView viewForFooterInSection:(NSInteger) section {
NSInteger height = IS_IPAD() ? 40 : 20;
- UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, height)];
+ UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, aTableView.frame.size.width, height)];
footer.backgroundColor = [UIColor clearColor];
- UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width*80/100, height)];
- label.center = CGPointMake(self.tableView.frame.size.width/2, height/2);
+ UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, aTableView.frame.size.width*80/100, height)];
+ label.center = CGPointMake(aTableView.frame.size.width/2, height/2);
label.textAlignment = UITextAlignmentCenter;
label.font = [UIFont italicSystemFontOfSize:12];
label.textColor = [UIColor whiteColor];
@@ -259,9 +223,9 @@
NSInteger row = [indexPath row];
NSInteger section = [indexPath section];
- if (section == 1 && [self.listOfTeams count] > row) {
- [self.listOfSelectedTeams addObject:[self.listOfTeams objectAtIndex:row]];
- [self.listOfTeams removeObjectAtIndex:row];
+ if (section == 1 && [self.listOfAllTeams count] > row) {
+ [self.listOfSelectedTeams addObject:[self.listOfAllTeams objectAtIndex:row]];
+ [self.listOfAllTeams removeObjectAtIndex:row];
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:selectedTeamsCount inSection:0];
allTeamsCount--;
@@ -281,11 +245,11 @@
[squareButton setTitle:[newNumber stringValue] forState:UIControlStateNormal];
[selectedRow setObject:newNumber forKey:@"number"];
- cell.imageView.image = [self drawHogsRepeated:[newNumber intValue]];
+ cell.imageView.image = [UIImage drawHogsRepeated:[newNumber intValue]];
}
}
--(void) holdAction:(NSString *)content {
+-(void) holdAction:(NSString *)content onTable:(UITableView *)aTableView {
NSInteger row;
for (row = 0; row < [self.listOfSelectedTeams count]; row++) {
NSDictionary *dict = [self.listOfSelectedTeams objectAtIndex:row];
@@ -293,28 +257,33 @@
break;
}
- [self.listOfTeams addObject:[self.listOfSelectedTeams objectAtIndex:row]];
+ [self.listOfAllTeams addObject:[self.listOfSelectedTeams objectAtIndex:row]];
[self.listOfSelectedTeams removeObjectAtIndex:row];
- [self.tableView beginUpdates];
- [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];
- [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:allTeamsCount inSection:1]] withRowAnimation:UITableViewRowAnimationLeft];
- allTeamsCount++;
- selectedTeamsCount--;
- [self.tableView endUpdates];
+ [aTableView beginUpdates];
+ [aTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];
+ [aTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:allTeamsCount inSection:1]] withRowAnimation:UITableViewRowAnimationLeft];
+ self.allTeamsCount++;
+ self.selectedTeamsCount--;
+ [aTableView endUpdates];
}
#pragma mark -
#pragma mark Memory management
-(void) didReceiveMemoryWarning {
- // Relinquish ownership any cached data, images, etc that aren't in use.
+ if ([[HedgewarsAppDelegate sharedAppDelegate] isInGame]) {
+ self.listOfSelectedTeams = nil;
+ self.listOfAllTeams = nil;
+ self.tableView = nil;
+ }
self.cachedContentsOfDir = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
-(void) viewDidUnload {
- self.listOfTeams = nil;
+ self.tableView = nil;
+ self.listOfAllTeams = nil;
self.listOfSelectedTeams = nil;
self.cachedContentsOfDir = nil;
MSG_DIDUNLOAD();
@@ -323,7 +292,8 @@
-(void) dealloc {
- releaseAndNil(listOfTeams);
+ releaseAndNil(tableView);
+ releaseAndNil(listOfAllTeams);
releaseAndNil(listOfSelectedTeams);
releaseAndNil(cachedContentsOfDir);
[super dealloc];
--- a/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -43,6 +43,8 @@
action:@selector(toggleEdit:)];
self.navigationItem.rightBarButtonItem = editButton;
[editButton release];
+
+ self.navigationItem.title = @"List of teams";
}
// load the list of teams in the teams directory
@@ -82,7 +84,7 @@
-(void) addTeam:(id) sender {
NSString *fileName = [[NSString alloc] initWithFormat:@"Default Team %u.plist", [self.listOfTeams count]];
- createTeamNamed([fileName stringByDeletingPathExtension]);
+ [CreationChamber createTeamNamed:[fileName stringByDeletingPathExtension]];
[self.listOfTeams addObject:fileName];
@@ -131,7 +133,7 @@
[teamFile release];
[self.listOfTeams removeObjectAtIndex:row];
- [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
+ [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
@@ -150,6 +152,7 @@
[childController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
[self.navigationController pushViewController:childController animated:YES];
+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
--- a/project_files/HedgewarsMobile/Classes/UIImageExtra.h Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/UIImageExtra.h Fri Oct 28 18:26:17 2011 +0200
@@ -24,7 +24,9 @@
@interface UIImage (extra)
-CGFloat getScreenScale(void);
++(UIImage *)whiteImage:(CGSize) ofSize;
++(UIImage *)drawHogsRepeated:(NSInteger) manyTimes;
++(CGSize) imageSizeFromMetadataOf:(NSString *)aFileName;
-(UIImage *)scaleToSize:(CGSize) size;
-(UIImage *)mergeWith:(UIImage *)secondImage atPoint:(CGPoint) secondImagePoint;
@@ -34,6 +36,5 @@
-(UIImage *)convertToNegative;
-(UIImage *)maskImageWith:(UIImage *)maskImage;
-(UIImage *)makeRoundCornersOfSize:(CGSize) sizewh;
-+(UIImage *)whiteImage:(CGSize) ofSize;
@end
--- a/project_files/HedgewarsMobile/Classes/UIImageExtra.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/UIImageExtra.m Fri Oct 28 18:26:17 2011 +0200
@@ -24,63 +24,21 @@
@implementation UIImage (extra)
-CGFloat getScreenScale(void) {
- float scale = 1.0f;
- if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
- scale = [[UIScreen mainScreen] scale];
- return scale;
-}
-
-(UIImage *)scaleToSize:(CGSize) size {
- DLog(@"warning - this is a very expensive operation, you should avoid using it");
-
- // Create a bitmap graphics context; this will also set it as the current context
- if (UIGraphicsBeginImageContextWithOptions != NULL)
- UIGraphicsBeginImageContextWithOptions(size, NO, getScreenScale());
- else
- UIGraphicsBeginImageContext(size);
-
- // Draw the scaled image in the current context
- [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
-
- // Create a new image from current context
- UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
-
- // Pop the current context from the stack
- UIGraphicsEndImageContext();
-
- // Return our new scaled image (autoreleased)
- return scaledImage;
-}
-
--(UIImage *)mergeWith:(UIImage *)secondImage atPoint:(CGPoint) secondImagePoint {
- if (secondImage == nil) {
- DLog(@"Warning, secondImage == nil");
- return self;
- }
- CGFloat screenScale = getScreenScale();
- int w = self.size.width * screenScale;
- int h = self.size.height * screenScale;
-
- if (w == 0 || h == 0) {
- DLog(@"Can have 0 dimesions");
- return self;
- }
-
// Create a bitmap graphics context; this will also set it as the current context
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
-
- // draw the two images in the current context
- CGContextDrawImage(context, CGRectMake(0, 0, self.size.width*screenScale, self.size.height*screenScale), [self CGImage]);
- CGContextDrawImage(context, CGRectMake(secondImagePoint.x*screenScale, secondImagePoint.y*screenScale, secondImage.size.width*screenScale, secondImage.size.height*screenScale), [secondImage CGImage]);
-
+ CGContextRef context = CGBitmapContextCreate(NULL, size.width, size.height, 8, 4 * size.width, colorSpace, kCGImageAlphaPremultipliedFirst);
+
+ // draw the image inside the context
+ CGFloat screenScale = [[UIScreen mainScreen] safeScale];
+ CGContextDrawImage(context, CGRectMake(0, 0, size.width*screenScale, size.height*screenScale), self.CGImage);
+
// Create bitmap image info from pixel data in current context
CGImageRef imageRef = CGBitmapContextCreateImage(context);
-
+
// Create a new UIImage object
UIImage *resultImage;
- if ([self respondsToSelector:@selector(imageWithCGImage:scale:orientation:)])
+ if ([UIImage respondsToSelector:@selector(imageWithCGImage:scale:orientation:)])
resultImage = [UIImage imageWithCGImage:imageRef scale:screenScale orientation:UIImageOrientationUp];
else
resultImage = [UIImage imageWithCGImage:imageRef];
@@ -89,7 +47,48 @@
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);
CFRelease(imageRef);
-
+
+ return resultImage;
+}
+
+-(UIImage *)mergeWith:(UIImage *)secondImage atPoint:(CGPoint) secondImagePoint {
+ if (secondImage == nil) {
+ DLog(@"Warning, secondImage == nil");
+ return self;
+ }
+ CGFloat screenScale = [[UIScreen mainScreen] safeScale];
+ int w = self.size.width * screenScale;
+ int h = self.size.height * screenScale;
+ int yOffset = self.size.height - secondImage.size.height + secondImagePoint.y;
+
+ if (w == 0 || h == 0) {
+ DLog(@"Cannot have 0 dimesions");
+ return self;
+ }
+
+ // Create a bitmap graphics context; this will also set it as the current context
+ CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
+ CGContextRef context = CGBitmapContextCreate(NULL, w, h+yOffset, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
+
+ // draw the two images in the current context
+ CGContextDrawImage(context, CGRectMake(0, 0, self.size.width*screenScale, self.size.height*screenScale), [self CGImage]);
+ CGContextDrawImage(context, CGRectMake(secondImagePoint.x*screenScale, secondImagePoint.y*screenScale, secondImage.size.width*screenScale, secondImage.size.height*screenScale), [secondImage CGImage]);
+
+ // Create bitmap image info from pixel data in current context
+ CGImageRef imageRef = CGBitmapContextCreateImage(context);
+
+ // Create a new UIImage object
+ UIImage *resultImage;
+ if ([UIImage respondsToSelector:@selector(imageWithCGImage:scale:orientation:)])
+ resultImage = [UIImage imageWithCGImage:imageRef scale:screenScale orientation:UIImageOrientationUp];
+ else
+ resultImage = [UIImage imageWithCGImage:imageRef];
+
+ // Release colorspace, context and bitmap information
+ CGColorSpaceRelease(colorSpace);
+ CGContextRelease(context);
+ CFRelease(imageRef);
+
return resultImage;
}
@@ -203,7 +202,7 @@
-(UIImage *)makeRoundCornersOfSize:(CGSize) sizewh {
CGFloat cornerWidth = sizewh.width;
CGFloat cornerHeight = sizewh.height;
- CGFloat screenScale = getScreenScale();
+ CGFloat screenScale = [[UIScreen mainScreen] safeScale];
CGFloat w = self.size.width * screenScale;
CGFloat h = self.size.height * screenScale;
@@ -222,15 +221,14 @@
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
- UIImage *newImage;
- if ([self respondsToSelector:@selector(imageWithCGImage:scale:orientation:)])
- newImage = [UIImage imageWithCGImage:imageMasked scale:screenScale orientation:UIImageOrientationUp];
+ UIImage *resultImage;
+ if ([UIImage respondsToSelector:@selector(imageWithCGImage:scale:orientation:)])
+ resultImage = [UIImage imageWithCGImage:imageMasked scale:screenScale orientation:UIImageOrientationUp];
else
- newImage = [UIImage imageWithCGImage:imageMasked];
-
+ resultImage = [UIImage imageWithCGImage:imageMasked];
CGImageRelease(imageMasked);
- return newImage;
+ return resultImage;
}
// by http://www.sixtemia.com/journal/2010/06/23/uiimage-negative-color-effect/
@@ -268,4 +266,81 @@
return bkgImg;
}
++(UIImage *)drawHogsRepeated:(NSInteger) manyTimes {
+ NSString *imgString = [[NSString alloc] initWithFormat:@"%@/hedgehog.png",[[NSBundle mainBundle] resourcePath]];
+ UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:imgString];
+ [imgString release];
+ CGFloat screenScale = [[UIScreen mainScreen] safeScale];
+ int w = hogSprite.size.width * screenScale;
+ int h = hogSprite.size.height * screenScale;
+ CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
+ CGContextRef context = CGBitmapContextCreate(NULL, w * 3, h, 8, 4 * w * 3, colorSpace, kCGImageAlphaPremultipliedFirst);
+
+ // draw the two images in the current context
+ for (int i = 0; i < manyTimes; i++)
+ CGContextDrawImage(context, CGRectMake(i*8*screenScale, 0, w, h), [hogSprite CGImage]);
+ [hogSprite release];
+
+ // Create bitmap image info from pixel data in current context
+ CGImageRef imageRef = CGBitmapContextCreateImage(context);
+
+ // Create a new UIImage object
+ UIImage *resultImage;
+ if ([UIImage respondsToSelector:@selector(imageWithCGImage:scale:orientation:)])
+ resultImage = [UIImage imageWithCGImage:imageRef scale:screenScale orientation:UIImageOrientationUp];
+ else
+ resultImage = [UIImage imageWithCGImage:imageRef];
+
+ // Release colorspace, context and bitmap information
+ CGColorSpaceRelease(colorSpace);
+ CGContextRelease(context);
+ CFRelease(imageRef);
+
+ return resultImage;
+}
+
+// this routine checks for the PNG size without loading it in memory
+// https://github.com/steipete/PSFramework/blob/master/PSFramework%20Version%200.3/PhotoshopFramework/PSMetaDataFunctions.m
++(CGSize) imageSizeFromMetadataOf:(NSString *)aFileName {
+ // File Name to C String.
+ const char *fileName = [aFileName UTF8String];
+ // source file
+ FILE *infile = fopen(fileName, "rb");
+ if (infile == NULL) {
+ DLog(@"Can't open the file: %@", aFileName);
+ return CGSizeZero;
+ }
+
+ // Bytes Buffer.
+ unsigned char buffer[30];
+ // Grab Only First Bytes.
+ fread(buffer, 1, 30, infile);
+ // Close File.
+ fclose(infile);
+
+ // PNG Signature.
+ unsigned char png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
+
+ // Compare File signature.
+ if ((int)(memcmp(&buffer[0], &png_signature[0], 8))) {
+ DLog(@"The file (%@) is not a PNG file", aFileName);
+ return CGSizeZero;
+ }
+
+ // Calc Sizes. Isolate only four bytes of each size (width, height).
+ int width[4];
+ int height[4];
+ for (int d = 16; d < (16 + 4); d++) {
+ width[d-16] = buffer[d];
+ height[d-16] = buffer[d+4];
+ }
+
+ // Convert bytes to Long (Integer)
+ long resultWidth = (width[0] << (int)24) | (width[1] << (int)16) | (width[2] << (int)8) | width[3];
+ long resultHeight = (height[0] << (int)24) | (height[1] << (int)16) | (height[2] << (int)8) | height[3];
+
+ // Return Size.
+ return CGSizeMake(resultWidth,resultHeight);
+}
+
@end
--- a/project_files/HedgewarsMobile/Classes/VoicesViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/VoicesViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,7 @@
#import "VoicesViewController.h"
-#import "CommodityFunctions.h"
+
@implementation VoicesViewController
@synthesize teamDictionary, voiceArray, lastIndexPath;
--- a/project_files/HedgewarsMobile/Classes/WeaponCellView.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/WeaponCellView.m Fri Oct 28 18:26:17 2011 +0200
@@ -20,7 +20,7 @@
#import "WeaponCellView.h"
-#import "CommodityFunctions.h"
+
@implementation WeaponCellView
@synthesize delegate, weaponName, weaponIcon, initialSli, probabilitySli, delaySli, crateSli, helpLabel,
@@ -102,9 +102,9 @@
helpLabel = [[UILabel alloc] init];
helpLabel.backgroundColor = [UIColor clearColor];
- helpLabel.textColor = [UIColor grayColor];
+ helpLabel.textColor = [UIColor darkGrayColor];
helpLabel.textAlignment = UITextAlignmentRight;
- helpLabel.font = [UIFont italicSystemFontOfSize:[UIFont smallSystemFontSize]];
+ helpLabel.font = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[self.contentView addSubview:weaponName];
[self.contentView addSubview:weaponIcon];
--- a/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m Fri Oct 28 18:26:17 2011 +0200
@@ -42,6 +42,7 @@
self.navigationItem.rightBarButtonItem = editButton;
[editButton release];
+ self.navigationItem.title = @"List of weapons";
}
-(void) viewWillAppear:(BOOL) animated {
@@ -79,7 +80,7 @@
-(void) addWeapon:(id) sender {
NSString *fileName = [[NSString alloc] initWithFormat:@"Weapon %u.plist", [self.listOfWeapons count]];
- createWeaponNamed([fileName stringByDeletingPathExtension], 0);
+ [CreationChamber createWeaponNamed:[fileName stringByDeletingPathExtension]];
[self.listOfWeapons addObject:fileName];
@@ -127,7 +128,7 @@
[schemeFile release];
[self.listOfWeapons removeObjectAtIndex:row];
- [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
+ [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
#pragma mark -
@@ -145,6 +146,7 @@
[childController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
[self.navigationController pushViewController:childController animated:YES];
+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/ExtraCategories.h Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,64 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 25/10/2011.
+ */
+
+
+#import <Foundation/Foundation.h>
+
+
+@interface UIScreen (safe)
+
+-(CGFloat) safeScale;
+
+@end
+
+
+@interface UITableView (backgroundColor)
+
+-(void) setBackgroundColorForAnyTable:(UIColor *)color;
+
+@end
+
+
+@interface UIColor (HWColors)
+
++(UIColor *)darkYellowColor;
++(UIColor *)lightYellowColor;
++(UIColor *)darkBlueColor;
++(UIColor *)darkBlueColorTransparent;
++(UIColor *)blackColorTransparent;
+
+@end
+
+
+@interface UILabel (quickStyle)
+
+-(UILabel *)initWithFrame:(CGRect)frame andTitle:(NSString *)title;
+-(UILabel *)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth;
+-(UILabel *)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth
+ withBorderColor:(UIColor *)borderColor withBackgroundColor:(UIColor *)backColor;
+
+@end
+
+
+@interface NSString (MD5)
+
+-(NSString *)MD5hash;
+
+@end
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/ExtraCategories.m Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,141 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 25/10/2011.
+ */
+
+
+#import "ExtraCategories.h"
+#import <QuartzCore/QuartzCore.h>
+#import <CommonCrypto/CommonDigest.h>
+
+
+@implementation UIScreen (safe)
+
+-(CGFloat) safeScale {
+ CGFloat theScale = 1.0f;
+ if ([self respondsToSelector:@selector(scale)])
+ theScale = [self scale];
+ return theScale;
+}
+
+@end
+
+
+@implementation UITableView (backgroundColor)
+
+-(void) setBackgroundColorForAnyTable:(UIColor *) color {
+ if ([self respondsToSelector:@selector(backgroundView)]) {
+ UIView *backView = [[UIView alloc] initWithFrame:self.frame];
+ backView.backgroundColor = color;
+ self.backgroundView = backView;
+ [backView release];
+ self.backgroundColor = [UIColor clearColor];
+ } else
+ self.backgroundColor = color;
+}
+
+@end
+
+
+@implementation UIColor (HWColors)
+
++(UIColor *)darkYellowColor {
+ return [UIColor colorWithRed:(CGFloat)0xFE/255 green:(CGFloat)0xC0/255 blue:0 alpha:1];
+}
+
++(UIColor *)lightYellowColor {
+ return [UIColor colorWithRed:(CGFloat)0xF0/255 green:(CGFloat)0xD0/255 blue:0 alpha:1];
+}
+
++(UIColor *)darkBlueColor {
+ return [UIColor colorWithRed:(CGFloat)0x0F/255 green:0 blue:(CGFloat)0x42/255 alpha:1];
+}
+
+// older devices don't get any transparency for performance reasons
++(UIColor *)darkBlueColorTransparent {
+ return [UIColor colorWithRed:(CGFloat)0x0F/255
+ green:0
+ blue:(CGFloat)0x55/255
+ alpha:IS_NOT_POWERFUL([HWUtils modelType]) ? 1 : 0.6f];
+}
+
++(UIColor *)blackColorTransparent {
+ return [UIColor colorWithRed:0
+ green:0
+ blue:0
+ alpha:IS_NOT_POWERFUL([HWUtils modelType]) ? 1 : 0.65f];
+}
+
+@end
+
+
+@implementation UILabel (quickStyle)
+
+-(UILabel *)initWithFrame:(CGRect)frame andTitle:(NSString *)title {
+ return [self initWithFrame:frame
+ andTitle:title
+ withBorderWidth:1.5f
+ withBorderColor:[UIColor darkYellowColor]
+ withBackgroundColor:[UIColor darkBlueColor]];
+}
+
+-(UILabel *)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth {
+ return [self initWithFrame:frame
+ andTitle:title
+ withBorderWidth:borderWidth
+ withBorderColor:[UIColor darkYellowColor]
+ withBackgroundColor:[UIColor darkBlueColorTransparent]];
+}
+
+-(UILabel *)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth
+ withBorderColor:(UIColor *)borderColor withBackgroundColor:(UIColor *)backColor{
+ UILabel *theLabel = [self initWithFrame:frame];
+ theLabel.backgroundColor = backColor;
+
+ if (title != nil) {
+ theLabel.text = title;
+ theLabel.textColor = [UIColor lightYellowColor];
+ theLabel.textAlignment = UITextAlignmentCenter;
+ theLabel.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]*80/100];
+ }
+
+ [theLabel.layer setBorderWidth:borderWidth];
+ [theLabel.layer setBorderColor:borderColor.CGColor];
+ [theLabel.layer setCornerRadius:8.0f];
+ [theLabel.layer setMasksToBounds:YES];
+
+ return theLabel;
+}
+
+@end
+
+
+@implementation NSString (MD5)
+
+-(NSString *)MD5hash {
+ const char *cStr = [self UTF8String];
+ unsigned char result[16];
+ CC_MD5( cStr, strlen(cStr), result );
+ return [NSString stringWithFormat:
+ @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
+ result[0], result[1], result[2], result[3], result[4], result[5],
+ result[6], result[7], result[8], result[9], result[10], result[11],
+ result[12], result[13], result[14], result[15]];
+}
+
+@end
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Fri Oct 28 18:26:17 2011 +0200
@@ -26,6 +26,11 @@
28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; };
28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD15070DC6FC5B0079059D /* QuartzCore.framework */; settings = {ATTRIBUTES = (Required, ); }; };
61006F95128DE31F00EBA7F7 /* CreationChamber.m in Sources */ = {isa = PBXBuildFile; fileRef = 61006F94128DE31F00EBA7F7 /* CreationChamber.m */; };
+ 61077E87143FB09800645B29 /* MissionTrainingViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61077E86143FB09800645B29 /* MissionTrainingViewController-iPad.xib */; };
+ 6107802A143FCCC800645B29 /* startGameButton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 61078029143FCCC800645B29 /* startGameButton@2x.png */; };
+ 610782961440EE5C00645B29 /* basicFlags.plist in Resources */ = {isa = PBXBuildFile; fileRef = 610782931440EE5C00645B29 /* basicFlags.plist */; };
+ 610782971440EE5C00645B29 /* credits.plist in Resources */ = {isa = PBXBuildFile; fileRef = 610782941440EE5C00645B29 /* credits.plist */; };
+ 610782981440EE5C00645B29 /* gameMods.plist in Resources */ = {isa = PBXBuildFile; fileRef = 610782951440EE5C00645B29 /* gameMods.plist */; };
610D5FB21270E2660033333A /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F7A43411E290650040BA66 /* Icon-Small@2x.png */; };
610D5FB31270E26C0033333A /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F7A43611E290650040BA66 /* Icon@2x.png */; };
61188BF212A6FE530026C5DA /* ammoButton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6103D399129B350700911D8D /* ammoButton@2x.png */; };
@@ -74,7 +79,7 @@
61370653117B1D50004EE44A /* Entitlements-Distribution.plist in Resources */ = {isa = PBXBuildFile; fileRef = 61370652117B1D50004EE44A /* Entitlements-Distribution.plist */; };
61399013125D19C0003C2DC0 /* uMobile.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61399012125D19C0003C2DC0 /* uMobile.pas */; };
6147DAD31253DCDE0010357E /* savesButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 6147DAD21253DCDE0010357E /* savesButton.png */; };
- 61536DF411CEAE7100D87A7E /* GameConfigViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924A11CA9CB400D6E256 /* GameConfigViewController.xib */; };
+ 61536DF411CEAE7100D87A7E /* GameConfigViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924A11CA9CB400D6E256 /* GameConfigViewController-iPhone.xib */; };
615AD96212073B4D00F2FF04 /* startGameButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD96112073B4D00F2FF04 /* startGameButton.png */; };
615AD9E9120764CA00F2FF04 /* backButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD9E8120764CA00F2FF04 /* backButton.png */; };
615AD9EB1207654E00F2FF04 /* helpButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD9EA1207654E00F2FF04 /* helpButton.png */; };
@@ -91,20 +96,20 @@
6165921411CA9BA200D6E256 /* LevelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591EF11CA9BA200D6E256 /* LevelViewController.m */; };
6165921511CA9BA200D6E256 /* MainMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591F111CA9BA200D6E256 /* MainMenuViewController.m */; };
6165921611CA9BA200D6E256 /* MapConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591F311CA9BA200D6E256 /* MapConfigViewController.m */; };
- 6165921711CA9BA200D6E256 /* MasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591F511CA9BA200D6E256 /* MasterViewController.m */; };
+ 6165921711CA9BA200D6E256 /* SettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591F511CA9BA200D6E256 /* SettingsBaseViewController.m */; };
6165921811CA9BA200D6E256 /* OverlayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591F711CA9BA200D6E256 /* OverlayViewController.m */; };
6165921911CA9BA200D6E256 /* InGameMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591F911CA9BA200D6E256 /* InGameMenuViewController.m */; };
6165921A11CA9BA200D6E256 /* SchemeSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591FB11CA9BA200D6E256 /* SchemeSettingsViewController.m */; };
6165921B11CA9BA200D6E256 /* SchemeWeaponConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591FD11CA9BA200D6E256 /* SchemeWeaponConfigViewController.m */; };
6165921C11CA9BA200D6E256 /* SingleSchemeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591FF11CA9BA200D6E256 /* SingleSchemeViewController.m */; };
6165921D11CA9BA200D6E256 /* SingleTeamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920111CA9BA200D6E256 /* SingleTeamViewController.m */; };
- 6165921E11CA9BA200D6E256 /* SplitViewRootController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920311CA9BA200D6E256 /* SplitViewRootController.m */; };
+ 6165921E11CA9BA200D6E256 /* SettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920311CA9BA200D6E256 /* SettingsContainerViewController.m */; };
6165921F11CA9BA200D6E256 /* TeamConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920511CA9BA200D6E256 /* TeamConfigViewController.m */; };
6165922011CA9BA200D6E256 /* TeamSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920711CA9BA200D6E256 /* TeamSettingsViewController.m */; };
6165922111CA9BA200D6E256 /* VoicesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920911CA9BA200D6E256 /* VoicesViewController.m */; };
6165922211CA9BA200D6E256 /* WeaponSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920B11CA9BA200D6E256 /* WeaponSettingsViewController.m */; };
6165922E11CA9BD500D6E256 /* CGPointUtils.c in Sources */ = {isa = PBXBuildFile; fileRef = 6165922311CA9BD500D6E256 /* CGPointUtils.c */; };
- 6165922F11CA9BD500D6E256 /* CommodityFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165922611CA9BD500D6E256 /* CommodityFunctions.m */; };
+ 6165922F11CA9BD500D6E256 /* HWUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165922611CA9BD500D6E256 /* HWUtils.m */; };
6165923111CA9BD500D6E256 /* SquareButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165922B11CA9BD500D6E256 /* SquareButtonView.m */; };
6165923211CA9BD500D6E256 /* UIImageExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165922D11CA9BD500D6E256 /* UIImageExtra.m */; };
6165925311CA9CB400D6E256 /* MainMenuViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924B11CA9CB400D6E256 /* MainMenuViewController-iPad.xib */; };
@@ -178,8 +183,9 @@
61842B24122B619D0096E335 /* HelpPageInGameViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61842B23122B619D0096E335 /* HelpPageInGameViewController-iPad.xib */; };
61842B3E122B65BD0096E335 /* helpabove.png in Resources */ = {isa = PBXBuildFile; fileRef = 61842B3D122B65BD0096E335 /* helpabove.png */; };
61842B40122B66280096E335 /* helpleft.png in Resources */ = {isa = PBXBuildFile; fileRef = 61842B3F122B66280096E335 /* helpleft.png */; };
- 6187AEBD120781B900B31A27 /* Settings in Resources */ = {isa = PBXBuildFile; fileRef = 6187AEA5120781B900B31A27 /* Settings */; };
61889985129995B500D55FD6 /* title~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 61889984129995B500D55FD6 /* title~ipad.png */; };
+ 61915D5B143A4E2C00299991 /* MissionTrainingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 61915D59143A4E2C00299991 /* MissionTrainingViewController.m */; };
+ 61915D5C143A4E2C00299991 /* MissionTrainingViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61915D5A143A4E2C00299991 /* MissionTrainingViewController-iPhone.xib */; };
6195981F1364BCEF00B429B6 /* libTremor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6195981D1364BCD200B429B6 /* libTremor.a */; };
619599451364C83D00B429B6 /* libLua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 619599441364C82B00B429B6 /* libLua.a */; };
619599C01364E66B00B429B6 /* libFreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 619599BF1364E65900B429B6 /* libFreetype.a */; };
@@ -214,9 +220,11 @@
61B7A61712FA13B00051E14E /* libSDL_mixer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B7A56012FA12BF0051E14E /* libSDL_mixer.a */; };
61B7A61812FA13B00051E14E /* libSDL_net.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B7A56812FA12D00051E14E /* libSDL_net.a */; };
61B7A61912FA13B00051E14E /* libSDL_ttf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B7A59012FA13330051E14E /* libSDL_ttf.a */; };
+ 61B9A86814423A9D001541C1 /* GameConfigViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61B9A86714423A9D001541C1 /* GameConfigViewController-iPad.xib */; };
61C079E411F35A300072BF46 /* EditableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61C079E311F35A300072BF46 /* EditableCellView.m */; };
61C28D3F142D380400DA16C2 /* AudioManagerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 61C28D3E142D380400DA16C2 /* AudioManagerController.m */; };
- 61CADE331402EE290030C3EB /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61CADE321402EE290030C3EB /* ImageIO.framework */; };
+ 61CADE331402EE290030C3EB /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61CADE321402EE290030C3EB /* ImageIO.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
+ 61D0BDF91457508C0011A899 /* ExtraCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D0BDF81457508C0011A899 /* ExtraCategories.m */; };
61D205A1127CDD1100ABD83E /* ObjcExports.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D205A0127CDD1100ABD83E /* ObjcExports.m */; };
61D3D2A51290E03A003CE7C3 /* irc.png in Resources */ = {isa = PBXBuildFile; fileRef = 61D3D2A41290E03A003CE7C3 /* irc.png */; };
61DE8F221257EB1100B80214 /* AmmoMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 61DE8F211257EB1100B80214 /* AmmoMenuViewController.m */; };
@@ -359,9 +367,14 @@
6103D39D129B350700911D8D /* arrowUp@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "arrowUp@2x.png"; path = "Resources/Overlay/arrowUp@2x.png"; sourceTree = "<group>"; };
6103D39E129B350700911D8D /* cornerButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "cornerButton@2x.png"; path = "Resources/Overlay/cornerButton@2x.png"; sourceTree = "<group>"; };
611D7A4F142FDCD3006E0798 /* uTouch.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uTouch.pas; path = ../../hedgewars/uTouch.pas; sourceTree = SOURCE_ROOT; };
+ 61077E86143FB09800645B29 /* MissionTrainingViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "MissionTrainingViewController-iPad.xib"; sourceTree = "<group>"; };
+ 61078029143FCCC800645B29 /* startGameButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "startGameButton@2x.png"; path = "Resources/Frontend/startGameButton@2x.png"; sourceTree = "<group>"; };
+ 610782931440EE5C00645B29 /* basicFlags.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = basicFlags.plist; path = Resources/basicFlags.plist; sourceTree = "<group>"; };
+ 610782941440EE5C00645B29 /* credits.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = credits.plist; path = Resources/credits.plist; sourceTree = "<group>"; };
+ 610782951440EE5C00645B29 /* gameMods.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = gameMods.plist; path = Resources/gameMods.plist; sourceTree = "<group>"; };
611D9BF812497E9800008271 /* SavedGamesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SavedGamesViewController.h; sourceTree = "<group>"; };
611D9BF912497E9800008271 /* SavedGamesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SavedGamesViewController.m; sourceTree = "<group>"; };
- 611D9BFA12497E9800008271 /* SavedGamesViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = SavedGamesViewController.xib; path = ../Resources/SavedGamesViewController.xib; sourceTree = "<group>"; };
+ 611D9BFA12497E9800008271 /* SavedGamesViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SavedGamesViewController.xib; sourceTree = "<group>"; };
611E0EE511FB20610077A41E /* ammoButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ammoButton.png; path = Resources/Overlay/ammoButton.png; sourceTree = "<group>"; };
611E0EE611FB20610077A41E /* cornerButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = cornerButton.png; path = Resources/Overlay/cornerButton.png; sourceTree = "<group>"; };
611E12FE117BBBDA0044B62F /* Entitlements-Development.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Entitlements-Development.plist"; sourceTree = "<group>"; };
@@ -370,7 +383,7 @@
611EE9D8122AA10A00DF6938 /* selSound.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = selSound.wav; path = Resources/selSound.wav; sourceTree = "<group>"; };
611EEAEB122B2A4D00DF6938 /* HelpPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelpPageViewController.h; sourceTree = "<group>"; };
611EEAEC122B2A4D00DF6938 /* HelpPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HelpPageViewController.m; sourceTree = "<group>"; };
- 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageLobbyViewController-iPad.xib"; path = "../Resources/HelpPageLobbyViewController-iPad.xib"; sourceTree = "<group>"; };
+ 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "HelpPageLobbyViewController-iPad.xib"; sourceTree = "<group>"; };
611EEBC0122B34A800DF6938 /* helpingame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpingame.png; path = Resources/Overlay/helpingame.png; sourceTree = "<group>"; };
611EEBC2122B355700DF6938 /* helpbottom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpbottom.png; path = Resources/Overlay/helpbottom.png; sourceTree = "<group>"; };
611EEBC3122B355700DF6938 /* helpright.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpright.png; path = Resources/Overlay/helpright.png; sourceTree = "<group>"; };
@@ -385,6 +398,7 @@
61399012125D19C0003C2DC0 /* uMobile.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uMobile.pas; path = ../../hedgewars/uMobile.pas; sourceTree = SOURCE_ROOT; };
6147DAD21253DCDE0010357E /* savesButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = savesButton.png; path = Resources/Frontend/savesButton.png; sourceTree = "<group>"; };
614E333D11DE9A93009DBA4E /* VGSHandlers.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = VGSHandlers.inc; path = ../../hedgewars/VGSHandlers.inc; sourceTree = SOURCE_ROOT; };
+ 61589C5A144B4322007BFAA4 /* config.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = config.inc; sourceTree = "<group>"; };
615AD96112073B4D00F2FF04 /* startGameButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = startGameButton.png; path = Resources/Frontend/startGameButton.png; sourceTree = "<group>"; };
615AD9E8120764CA00F2FF04 /* backButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backButton.png; path = Resources/Frontend/backButton.png; sourceTree = "<group>"; };
615AD9EA1207654E00F2FF04 /* helpButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpButton.png; path = Resources/Frontend/helpButton.png; sourceTree = "<group>"; };
@@ -394,6 +408,7 @@
615FEAE012A2A6640098EE92 /* localplayButton~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "localplayButton~iphone.png"; path = "Resources/Frontend/localplayButton~iphone.png"; sourceTree = "<group>"; };
6163EE7C11CC2600001C0453 /* SingleWeaponViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SingleWeaponViewController.h; sourceTree = "<group>"; };
6163EE7D11CC2600001C0453 /* SingleWeaponViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SingleWeaponViewController.m; sourceTree = "<group>"; };
+ 61641FE31437CDAA006E049C /* DefinesAndMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefinesAndMacros.h; path = Classes/DefinesAndMacros.h; sourceTree = "<group>"; };
616591E011CA9BA200D6E256 /* FlagsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlagsViewController.h; sourceTree = "<group>"; };
616591E111CA9BA200D6E256 /* FlagsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FlagsViewController.m; sourceTree = "<group>"; };
616591E211CA9BA200D6E256 /* FortsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FortsViewController.h; sourceTree = "<group>"; };
@@ -414,8 +429,8 @@
616591F111CA9BA200D6E256 /* MainMenuViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainMenuViewController.m; sourceTree = "<group>"; };
616591F211CA9BA200D6E256 /* MapConfigViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapConfigViewController.h; sourceTree = "<group>"; };
616591F311CA9BA200D6E256 /* MapConfigViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapConfigViewController.m; sourceTree = "<group>"; };
- 616591F411CA9BA200D6E256 /* MasterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MasterViewController.h; sourceTree = "<group>"; };
- 616591F511CA9BA200D6E256 /* MasterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MasterViewController.m; sourceTree = "<group>"; };
+ 616591F411CA9BA200D6E256 /* SettingsBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsBaseViewController.h; sourceTree = "<group>"; };
+ 616591F511CA9BA200D6E256 /* SettingsBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsBaseViewController.m; sourceTree = "<group>"; };
616591F611CA9BA200D6E256 /* OverlayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OverlayViewController.h; sourceTree = "<group>"; };
616591F711CA9BA200D6E256 /* OverlayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OverlayViewController.m; sourceTree = "<group>"; };
616591F811CA9BA200D6E256 /* InGameMenuViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InGameMenuViewController.h; sourceTree = "<group>"; };
@@ -428,8 +443,8 @@
616591FF11CA9BA200D6E256 /* SingleSchemeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SingleSchemeViewController.m; sourceTree = "<group>"; };
6165920011CA9BA200D6E256 /* SingleTeamViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SingleTeamViewController.h; sourceTree = "<group>"; };
6165920111CA9BA200D6E256 /* SingleTeamViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SingleTeamViewController.m; sourceTree = "<group>"; };
- 6165920211CA9BA200D6E256 /* SplitViewRootController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplitViewRootController.h; sourceTree = "<group>"; };
- 6165920311CA9BA200D6E256 /* SplitViewRootController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SplitViewRootController.m; sourceTree = "<group>"; };
+ 6165920211CA9BA200D6E256 /* SettingsContainerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsContainerViewController.h; sourceTree = "<group>"; };
+ 6165920311CA9BA200D6E256 /* SettingsContainerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsContainerViewController.m; sourceTree = "<group>"; };
6165920411CA9BA200D6E256 /* TeamConfigViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamConfigViewController.h; sourceTree = "<group>"; };
6165920511CA9BA200D6E256 /* TeamConfigViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamConfigViewController.m; sourceTree = "<group>"; };
6165920611CA9BA200D6E256 /* TeamSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamSettingsViewController.h; sourceTree = "<group>"; };
@@ -440,25 +455,25 @@
6165920B11CA9BA200D6E256 /* WeaponSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeaponSettingsViewController.m; sourceTree = "<group>"; };
6165922311CA9BD500D6E256 /* CGPointUtils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CGPointUtils.c; path = Classes/CGPointUtils.c; sourceTree = "<group>"; };
6165922411CA9BD500D6E256 /* CGPointUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CGPointUtils.h; path = Classes/CGPointUtils.h; sourceTree = "<group>"; };
- 6165922511CA9BD500D6E256 /* CommodityFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommodityFunctions.h; path = Classes/CommodityFunctions.h; sourceTree = "<group>"; };
- 6165922611CA9BD500D6E256 /* CommodityFunctions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommodityFunctions.m; path = Classes/CommodityFunctions.m; sourceTree = "<group>"; };
+ 6165922511CA9BD500D6E256 /* HWUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HWUtils.h; path = Classes/HWUtils.h; sourceTree = "<group>"; };
+ 6165922611CA9BD500D6E256 /* HWUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HWUtils.m; path = Classes/HWUtils.m; sourceTree = "<group>"; };
6165922911CA9BD500D6E256 /* PascalImports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PascalImports.h; path = Classes/PascalImports.h; sourceTree = "<group>"; };
6165922A11CA9BD500D6E256 /* SquareButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SquareButtonView.h; path = Classes/SquareButtonView.h; sourceTree = "<group>"; };
6165922B11CA9BD500D6E256 /* SquareButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SquareButtonView.m; path = Classes/SquareButtonView.m; sourceTree = "<group>"; };
6165922C11CA9BD500D6E256 /* UIImageExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UIImageExtra.h; path = Classes/UIImageExtra.h; sourceTree = "<group>"; };
6165922D11CA9BD500D6E256 /* UIImageExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UIImageExtra.m; path = Classes/UIImageExtra.m; sourceTree = "<group>"; };
- 6165924A11CA9CB400D6E256 /* GameConfigViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = GameConfigViewController.xib; path = Resources/GameConfigViewController.xib; sourceTree = SOURCE_ROOT; };
- 6165924B11CA9CB400D6E256 /* MainMenuViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "MainMenuViewController-iPad.xib"; path = "Resources/MainMenuViewController-iPad.xib"; sourceTree = SOURCE_ROOT; };
- 6165924C11CA9CB400D6E256 /* MainMenuViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "MainMenuViewController-iPhone.xib"; path = "Resources/MainMenuViewController-iPhone.xib"; sourceTree = SOURCE_ROOT; };
- 6165924D11CA9CB400D6E256 /* MapConfigViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "MapConfigViewController-iPad.xib"; path = "Resources/MapConfigViewController-iPad.xib"; sourceTree = SOURCE_ROOT; };
- 6165924E11CA9CB400D6E256 /* MapConfigViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "MapConfigViewController-iPhone.xib"; path = "Resources/MapConfigViewController-iPhone.xib"; sourceTree = SOURCE_ROOT; };
- 6165925011CA9CB400D6E256 /* OverlayViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = OverlayViewController.xib; path = Resources/OverlayViewController.xib; sourceTree = SOURCE_ROOT; };
+ 6165924A11CA9CB400D6E256 /* GameConfigViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "GameConfigViewController-iPhone.xib"; sourceTree = "<group>"; };
+ 6165924B11CA9CB400D6E256 /* MainMenuViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "MainMenuViewController-iPad.xib"; sourceTree = "<group>"; };
+ 6165924C11CA9CB400D6E256 /* MainMenuViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "MainMenuViewController-iPhone.xib"; sourceTree = "<group>"; };
+ 6165924D11CA9CB400D6E256 /* MapConfigViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "MapConfigViewController-iPad.xib"; sourceTree = "<group>"; };
+ 6165924E11CA9CB400D6E256 /* MapConfigViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "MapConfigViewController-iPhone.xib"; sourceTree = "<group>"; };
+ 6165925011CA9CB400D6E256 /* OverlayViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = OverlayViewController.xib; sourceTree = "<group>"; };
6165929C11CA9E2F00D6E256 /* HedgewarsAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HedgewarsAppDelegate.h; path = Classes/HedgewarsAppDelegate.h; sourceTree = "<group>"; };
6165929D11CA9E2F00D6E256 /* HedgewarsAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HedgewarsAppDelegate.m; path = Classes/HedgewarsAppDelegate.m; sourceTree = "<group>"; };
6167A6731391514600AA6D07 /* RestoreViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RestoreViewController.h; sourceTree = "<group>"; };
6167A6741391514600AA6D07 /* RestoreViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RestoreViewController.m; sourceTree = "<group>"; };
- 6167A6751391514600AA6D07 /* RestoreViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "RestoreViewController-iPhone.xib"; path = "../Resources/RestoreViewController-iPhone.xib"; sourceTree = "<group>"; };
- 6167A72C13919E6800AA6D07 /* RestoreViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "RestoreViewController-iPad.xib"; path = "../Resources/RestoreViewController-iPad.xib"; sourceTree = "<group>"; };
+ 6167A6751391514600AA6D07 /* RestoreViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "RestoreViewController-iPhone.xib"; sourceTree = "<group>"; };
+ 6167A72C13919E6800AA6D07 /* RestoreViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "RestoreViewController-iPad.xib"; sourceTree = "<group>"; };
6167C87314294727003DD50F /* surprise@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "surprise@2x.png"; path = "Resources/surprise@2x.png"; sourceTree = "<group>"; };
6167C88B14294738003DD50F /* denied@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "denied@2x.png"; path = "Resources/denied@2x.png"; sourceTree = "<group>"; };
6167C8EF1429502C003DD50F /* hedgehog.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = hedgehog.png; path = Resources/Icons/hedgehog.png; sourceTree = "<group>"; };
@@ -528,7 +543,6 @@
6179880C114AA34C00BA94A9 /* uTeams.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uTeams.pas; path = ../../hedgewars/uTeams.pas; sourceTree = SOURCE_ROOT; };
6179880E114AA34C00BA94A9 /* uVisualGears.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uVisualGears.pas; path = ../../hedgewars/uVisualGears.pas; sourceTree = SOURCE_ROOT; };
6179880F114AA34C00BA94A9 /* uWorld.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uWorld.pas; path = ../../hedgewars/uWorld.pas; sourceTree = SOURCE_ROOT; };
- 61798852114AA44900BA94A9 /* config.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = config.inc; path = ../../hedgewars/config.inc; sourceTree = SOURCE_ROOT; };
617988D3114AAA3900BA94A9 /* SDLiPhoneOS.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDLiPhoneOS.xcodeproj; path = "../../../Library/SDL/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj"; sourceTree = SOURCE_ROOT; };
61798934114AB25F00BA94A9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
6179898B114AB3FA00BA94A9 /* SDL_mixer.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL_mixer.xcodeproj; path = "../../../Library/SDL_mixer/Xcode-iPhoneOS/SDL_mixer.xcodeproj"; sourceTree = SOURCE_ROOT; };
@@ -536,13 +550,15 @@
61798A5E114AE08600BA94A9 /* Data */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Data; path = ../../../trunk/project_files/HedgewarsMobile/Data; sourceTree = "<group>"; };
6183D83C11E2BCE200A88903 /* Default-ipad-Landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-ipad-Landscape.png"; path = "Resources/Icons/Default-ipad-Landscape.png"; sourceTree = "<group>"; };
6183D83D11E2BCE200A88903 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = Resources/Icons/Default.png; sourceTree = "<group>"; };
- 61842B23122B619D0096E335 /* HelpPageInGameViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageInGameViewController-iPad.xib"; path = "../Resources/HelpPageInGameViewController-iPad.xib"; sourceTree = "<group>"; };
+ 61842B23122B619D0096E335 /* HelpPageInGameViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "HelpPageInGameViewController-iPad.xib"; sourceTree = "<group>"; };
61842B3D122B65BD0096E335 /* helpabove.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpabove.png; path = Resources/Overlay/helpabove.png; sourceTree = "<group>"; };
61842B3F122B66280096E335 /* helpleft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpleft.png; path = Resources/Overlay/helpleft.png; sourceTree = "<group>"; };
- 6187AEA5120781B900B31A27 /* Settings */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Settings; path = Resources/Settings; sourceTree = "<group>"; };
618899811299516000D55FD6 /* title@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "title@2x~iphone.png"; path = "Resources/Frontend/title@2x~iphone.png"; sourceTree = "<group>"; };
61889984129995B500D55FD6 /* title~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "title~ipad.png"; path = "Resources/Frontend/title~ipad.png"; sourceTree = "<group>"; };
618E27B612A2C30700C20EF0 /* SDL_net.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL_net.xcodeproj; path = "../../../Library/SDL_net/Xcode-iPhoneOS/SDL_net.xcodeproj"; sourceTree = SOURCE_ROOT; };
+ 61915D58143A4E2C00299991 /* MissionTrainingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MissionTrainingViewController.h; sourceTree = "<group>"; };
+ 61915D59143A4E2C00299991 /* MissionTrainingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MissionTrainingViewController.m; sourceTree = "<group>"; };
+ 61915D5A143A4E2C00299991 /* MissionTrainingViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "MissionTrainingViewController-iPhone.xib"; sourceTree = "<group>"; };
619598181364BCD200B429B6 /* Tremor.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Tremor.xcodeproj; path = ../../misc/libtremor/Xcode/Tremor.xcodeproj; sourceTree = SOURCE_ROOT; };
6195993F1364C82B00B429B6 /* Lua.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Lua.xcodeproj; path = ../../misc/liblua/Xcode/Lua.xcodeproj; sourceTree = SOURCE_ROOT; };
619599BA1364E65900B429B6 /* Freetype.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Freetype.xcodeproj; path = "../../misc/libfreetype/Xcode-iPhoneOS/Freetype.xcodeproj"; sourceTree = SOURCE_ROOT; };
@@ -573,18 +589,21 @@
61AC067312B2E32D000B52A2 /* Appirater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Appirater.m; path = Classes/Appirater.m; sourceTree = "<group>"; };
61B7A33612CC21080086B604 /* StatsPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StatsPageViewController.h; sourceTree = "<group>"; };
61B7A33712CC21080086B604 /* StatsPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StatsPageViewController.m; sourceTree = "<group>"; };
+ 61B9A86714423A9D001541C1 /* GameConfigViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "GameConfigViewController-iPad.xib"; sourceTree = "<group>"; };
61C079E211F35A300072BF46 /* EditableCellView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditableCellView.h; path = Classes/EditableCellView.h; sourceTree = "<group>"; };
61C079E311F35A300072BF46 /* EditableCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditableCellView.m; path = Classes/EditableCellView.m; sourceTree = "<group>"; };
61C28D3D142D380400DA16C2 /* AudioManagerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioManagerController.h; path = Classes/AudioManagerController.h; sourceTree = "<group>"; };
61C28D3E142D380400DA16C2 /* AudioManagerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AudioManagerController.m; path = Classes/AudioManagerController.m; sourceTree = "<group>"; };
61CADE321402EE290030C3EB /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; };
+ 61D0BDF71457508C0011A899 /* ExtraCategories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtraCategories.h; sourceTree = "<group>"; };
+ 61D0BDF81457508C0011A899 /* ExtraCategories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExtraCategories.m; sourceTree = "<group>"; };
61D2059F127CDD1100ABD83E /* ObjcExports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ObjcExports.h; path = Classes/ObjcExports.h; sourceTree = "<group>"; };
61D205A0127CDD1100ABD83E /* ObjcExports.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ObjcExports.m; path = Classes/ObjcExports.m; sourceTree = "<group>"; };
61D3D2A41290E03A003CE7C3 /* irc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = irc.png; path = Resources/Icons/irc.png; sourceTree = "<group>"; };
61DE8F201257EB1100B80214 /* AmmoMenuViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AmmoMenuViewController.h; sourceTree = "<group>"; };
61DE8F211257EB1100B80214 /* AmmoMenuViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AmmoMenuViewController.m; sourceTree = "<group>"; };
- 61DF0EDB1284DF2300F3F10B /* HelpPageLobbyViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageLobbyViewController-iPhone.xib"; path = "../Resources/HelpPageLobbyViewController-iPhone.xib"; sourceTree = "<group>"; };
- 61DF0F201284F72A00F3F10B /* HelpPageInGameViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageInGameViewController-iPhone.xib"; path = "Resources/HelpPageInGameViewController-iPhone.xib"; sourceTree = SOURCE_ROOT; };
+ 61DF0EDB1284DF2300F3F10B /* HelpPageLobbyViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "HelpPageLobbyViewController-iPhone.xib"; sourceTree = "<group>"; };
+ 61DF0F201284F72A00F3F10B /* HelpPageInGameViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "HelpPageInGameViewController-iPhone.xib"; sourceTree = "<group>"; };
61E1F4F711D004240016A5AA /* adler32.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = adler32.pas; path = ../../hedgewars/adler32.pas; sourceTree = SOURCE_ROOT; };
61E2E12C12BAAEE30051B659 /* ServerSetup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerSetup.h; sourceTree = "<group>"; };
61E2E12D12BAAEE30051B659 /* ServerSetup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerSetup.m; sourceTree = "<group>"; };
@@ -603,7 +622,7 @@
61EF920B11DF57AC003441C4 /* joyButtonForwardJump.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = joyButtonForwardJump.png; path = Resources/Overlay/joyButtonForwardJump.png; sourceTree = "<group>"; };
61F2E7CB1205EDE0005734F7 /* AboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutViewController.h; sourceTree = "<group>"; };
61F2E7CC1205EDE0005734F7 /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutViewController.m; sourceTree = "<group>"; };
- 61F2E7CD1205EDE0005734F7 /* AboutViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = AboutViewController.xib; path = ../Resources/AboutViewController.xib; sourceTree = "<group>"; };
+ 61F2E7CD1205EDE0005734F7 /* AboutViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AboutViewController.xib; sourceTree = "<group>"; };
61F2E7EB12060E31005734F7 /* checkbox.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = checkbox.png; path = Resources/Icons/checkbox.png; sourceTree = "<group>"; };
61F544C512AF1748007FD913 /* HoldTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HoldTableViewCell.h; path = Classes/HoldTableViewCell.h; sourceTree = "<group>"; };
61F544C612AF1748007FD913 /* HoldTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HoldTableViewCell.m; path = Classes/HoldTableViewCell.m; sourceTree = "<group>"; };
@@ -657,14 +676,14 @@
080E96DDFE201D6D7F000001 /* Classes */ = {
isa = PBXGroup;
children = (
- 6163EE4D11CC247D001C0453 /* Game Config */,
- 6163EE4C11CC2478001C0453 /* Settings Pages */,
- 611D9BF312497B7700008271 /* Other Controllers */,
+ 6163EE4D11CC247D001C0453 /* Game Configuration */,
+ 6163EE4C11CC2478001C0453 /* Settings Page */,
+ 611D9BF312497B7700008271 /* Satellite Controllers */,
6163EE6C11CC253F001C0453 /* Overlay */,
616591F011CA9BA200D6E256 /* MainMenuViewController.h */,
616591F111CA9BA200D6E256 /* MainMenuViewController.m */,
+ 6165924C11CA9CB400D6E256 /* MainMenuViewController-iPhone.xib */,
6165924B11CA9CB400D6E256 /* MainMenuViewController-iPad.xib */,
- 6165924C11CA9CB400D6E256 /* MainMenuViewController-iPhone.xib */,
61EDB5AE135B3F97009B29A6 /* GameInterfaceBridge.h */,
61EDB5AF135B3F97009B29A6 /* GameInterfaceBridge.m */,
616591E611CA9BA200D6E256 /* EngineProtocolNetwork.h */,
@@ -702,26 +721,19 @@
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
isa = PBXGroup;
children = (
+ 61F8535314578999002CA294 /* Helpers */,
+ 61641FE21437CD8F006E049C /* Headers */,
61DE91561258B76800B80214 /* Custom UIs */,
61AC067212B2E32D000B52A2 /* Appirater.h */,
61AC067312B2E32D000B52A2 /* Appirater.m */,
- 61C28D3D142D380400DA16C2 /* AudioManagerController.h */,
- 61C28D3E142D380400DA16C2 /* AudioManagerController.m */,
6165929C11CA9E2F00D6E256 /* HedgewarsAppDelegate.h */,
6165929D11CA9E2F00D6E256 /* HedgewarsAppDelegate.m */,
- 32CA4F630368D1EE00C91783 /* Hedgewars_Prefix.pch */,
- 61A97F0E136F675A00DD9878 /* hwconsts.h */,
- 6165922911CA9BD500D6E256 /* PascalImports.h */,
61D2059F127CDD1100ABD83E /* ObjcExports.h */,
61D205A0127CDD1100ABD83E /* ObjcExports.m */,
- 6165922511CA9BD500D6E256 /* CommodityFunctions.h */,
- 6165922611CA9BD500D6E256 /* CommodityFunctions.m */,
61006F93128DE31F00EBA7F7 /* CreationChamber.h */,
61006F94128DE31F00EBA7F7 /* CreationChamber.m */,
6165922411CA9BD500D6E256 /* CGPointUtils.h */,
6165922311CA9BD500D6E256 /* CGPointUtils.c */,
- 6165922C11CA9BD500D6E256 /* UIImageExtra.h */,
- 6165922D11CA9BD500D6E256 /* UIImageExtra.m */,
);
name = "Other Sources";
sourceTree = "<group>";
@@ -744,8 +756,10 @@
61F903FA11DF58680068B24D /* Frontend */,
6179936611501D1E00BA94A9 /* Overlay */,
61798A5E114AE08600BA94A9 /* Data */,
- 6187AEA5120781B900B31A27 /* Settings */,
8D1107310486CEB800E47090 /* Info.plist */,
+ 610782931440EE5C00645B29 /* basicFlags.plist */,
+ 610782941440EE5C00645B29 /* credits.plist */,
+ 610782951440EE5C00645B29 /* gameMods.plist */,
);
name = Resources;
sourceTree = "<group>";
@@ -776,7 +790,7 @@
name = Frameworks;
sourceTree = "<group>";
};
- 611D9BF312497B7700008271 /* Other Controllers */ = {
+ 611D9BF312497B7700008271 /* Satellite Controllers */ = {
isa = PBXGroup;
children = (
61F2E7CB1205EDE0005734F7 /* AboutViewController.h */,
@@ -791,8 +805,12 @@
611D9BFA12497E9800008271 /* SavedGamesViewController.xib */,
61B7A33612CC21080086B604 /* StatsPageViewController.h */,
61B7A33712CC21080086B604 /* StatsPageViewController.m */,
+ 61915D58143A4E2C00299991 /* MissionTrainingViewController.h */,
+ 61915D59143A4E2C00299991 /* MissionTrainingViewController.m */,
+ 61915D5A143A4E2C00299991 /* MissionTrainingViewController-iPhone.xib */,
+ 61077E86143FB09800645B29 /* MissionTrainingViewController-iPad.xib */,
);
- name = "Other Controllers";
+ name = "Satellite Controllers";
sourceTree = "<group>";
};
612CABCA1391D3D1005E9596 /* Sounds */ = {
@@ -806,26 +824,27 @@
name = Sounds;
sourceTree = "<group>";
};
- 6163EE4C11CC2478001C0453 /* Settings Pages */ = {
+ 6163EE4C11CC2478001C0453 /* Settings Page */ = {
isa = PBXGroup;
children = (
- 6165920211CA9BA200D6E256 /* SplitViewRootController.h */,
- 6165920311CA9BA200D6E256 /* SplitViewRootController.m */,
- 616591F411CA9BA200D6E256 /* MasterViewController.h */,
- 616591F511CA9BA200D6E256 /* MasterViewController.m */,
+ 6165920211CA9BA200D6E256 /* SettingsContainerViewController.h */,
+ 6165920311CA9BA200D6E256 /* SettingsContainerViewController.m */,
+ 616591F411CA9BA200D6E256 /* SettingsBaseViewController.h */,
+ 616591F511CA9BA200D6E256 /* SettingsBaseViewController.m */,
6163EE4E11CC248D001C0453 /* First Level */,
6163EE4F11CC2497001C0453 /* Second Level */,
6163EE5011CC24A1001C0453 /* Third Level */,
);
- name = "Settings Pages";
+ name = "Settings Page";
sourceTree = "<group>";
};
- 6163EE4D11CC247D001C0453 /* Game Config */ = {
+ 6163EE4D11CC247D001C0453 /* Game Configuration */ = {
isa = PBXGroup;
children = (
616591E411CA9BA200D6E256 /* GameConfigViewController.h */,
616591E511CA9BA200D6E256 /* GameConfigViewController.m */,
- 6165924A11CA9CB400D6E256 /* GameConfigViewController.xib */,
+ 61B9A86714423A9D001541C1 /* GameConfigViewController-iPad.xib */,
+ 6165924A11CA9CB400D6E256 /* GameConfigViewController-iPhone.xib */,
6165920411CA9BA200D6E256 /* TeamConfigViewController.h */,
6165920511CA9BA200D6E256 /* TeamConfigViewController.m */,
616591FC11CA9BA200D6E256 /* SchemeWeaponConfigViewController.h */,
@@ -835,7 +854,7 @@
6165924D11CA9CB400D6E256 /* MapConfigViewController-iPad.xib */,
6165924E11CA9CB400D6E256 /* MapConfigViewController-iPhone.xib */,
);
- name = "Game Config";
+ name = "Game Configuration";
sourceTree = "<group>";
};
6163EE4E11CC248D001C0453 /* First Level */ = {
@@ -907,10 +926,21 @@
name = Overlay;
sourceTree = "<group>";
};
+ 61641FE21437CD8F006E049C /* Headers */ = {
+ isa = PBXGroup;
+ children = (
+ 61641FE31437CDAA006E049C /* DefinesAndMacros.h */,
+ 32CA4F630368D1EE00C91783 /* Hedgewars_Prefix.pch */,
+ 61A97F0E136F675A00DD9878 /* hwconsts.h */,
+ 6165922911CA9BD500D6E256 /* PascalImports.h */,
+ );
+ name = Headers;
+ sourceTree = "<group>";
+ };
61798892114AA56300BA94A9 /* inc */ = {
isa = PBXGroup;
children = (
- 61798852114AA44900BA94A9 /* config.inc */,
+ 61589C5A144B4322007BFAA4 /* config.inc */,
617987EB114AA34C00BA94A9 /* options.inc */,
617987E4114AA34C00BA94A9 /* GSHandlers.inc */,
617987E5114AA34C00BA94A9 /* HHHandlers.inc */,
@@ -1071,6 +1101,21 @@
name = Icons;
sourceTree = "<group>";
};
+ 61F8535314578999002CA294 /* Helpers */ = {
+ isa = PBXGroup;
+ children = (
+ 61C28D3D142D380400DA16C2 /* AudioManagerController.h */,
+ 61C28D3E142D380400DA16C2 /* AudioManagerController.m */,
+ 61D0BDF71457508C0011A899 /* ExtraCategories.h */,
+ 61D0BDF81457508C0011A899 /* ExtraCategories.m */,
+ 6165922511CA9BD500D6E256 /* HWUtils.h */,
+ 6165922611CA9BD500D6E256 /* HWUtils.m */,
+ 6165922C11CA9BD500D6E256 /* UIImageExtra.h */,
+ 6165922D11CA9BD500D6E256 /* UIImageExtra.m */,
+ );
+ name = Helpers;
+ sourceTree = "<group>";
+ };
61F903FA11DF58680068B24D /* Frontend */ = {
isa = PBXGroup;
children = (
@@ -1082,6 +1127,7 @@
615AD9E8120764CA00F2FF04 /* backButton.png */,
6172FED31298CE6600D73365 /* backButton@2x.png */,
615AD96112073B4D00F2FF04 /* startGameButton.png */,
+ 61078029143FCCC800645B29 /* startGameButton@2x.png */,
615FEADE12A2A6640098EE92 /* localplayButton@2x~iphone.png */,
615FEAE012A2A6640098EE92 /* localplayButton~iphone.png */,
615FEADF12A2A6640098EE92 /* localplayButton~ipad.png */,
@@ -1333,7 +1379,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 61536DF411CEAE7100D87A7E /* GameConfigViewController.xib in Resources */,
+ 61536DF411CEAE7100D87A7E /* GameConfigViewController-iPhone.xib in Resources */,
61370653117B1D50004EE44A /* Entitlements-Distribution.plist in Resources */,
611E12FF117BBBDA0044B62F /* Entitlements-Development.plist in Resources */,
6165925311CA9CB400D6E256 /* MainMenuViewController-iPad.xib in Resources */,
@@ -1362,7 +1408,6 @@
615AD96212073B4D00F2FF04 /* startGameButton.png in Resources */,
615AD9E9120764CA00F2FF04 /* backButton.png in Resources */,
615AD9EB1207654E00F2FF04 /* helpButton.png in Resources */,
- 6187AEBD120781B900B31A27 /* Settings in Resources */,
611EE974122A9C4100DF6938 /* clickSound.wav in Resources */,
611EE9DA122AA10A00DF6938 /* selSound.wav in Resources */,
611EEAEF122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib in Resources */,
@@ -1445,6 +1490,13 @@
6167CA42142A6ED7003DD50F /* bot5@2x.png in Resources */,
6167CB48142A8769003DD50F /* basehat-hedgehog.png in Resources */,
6167CB49142A8769003DD50F /* basehat-hedgehog@2x.png in Resources */,
+ 61915D5C143A4E2C00299991 /* MissionTrainingViewController-iPhone.xib in Resources */,
+ 61077E87143FB09800645B29 /* MissionTrainingViewController-iPad.xib in Resources */,
+ 6107802A143FCCC800645B29 /* startGameButton@2x.png in Resources */,
+ 610782961440EE5C00645B29 /* basicFlags.plist in Resources */,
+ 610782971440EE5C00645B29 /* credits.plist in Resources */,
+ 610782981440EE5C00645B29 /* gameMods.plist in Resources */,
+ 61B9A86814423A9D001541C1 /* GameConfigViewController-iPad.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1462,7 +1514,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\n#create config.inc\necho \"Updating config file...\"\nPROTO=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep HEDGEWARS_PROTO_VER | cut -d ' ' -f 2 | cut -d ')' -f 1`\nMAJN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MAJOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nMINN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MINOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nPATN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_PATCH | xargs | cut -d ' ' -f 2 |cut -d '$' -f 1`\nREVN=-`/usr/local/bin/hg id -n ${PROJECT_DIR}/../../`\necho \"const cNetProtoVersion = $PROTO; const cVersionString = '${MAJN}.${MINN}.${PATN}${REVN}'; const cLuaLibrary = '';\" > ${PROJECT_DIR}/../../hedgewars/config.inc\n\necho \"Copying Data...\"\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\necho \"Fetching additional graphics from QTfrontend...\"\nmkdir ${PROJECT_DIR}/Data/Graphics/Icons\ncp ${PROJECT_DIR}/../../QTfrontend/res/{btn*,icon*,StatsMedal*,ammopic*}.png ${PROJECT_DIR}/Data/Graphics/Icons/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg* -delete\nfind ${PROJECT_DIR}/Data -name *.psd -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\nfind ${PROJECT_DIR}/Data -name *.ts -delete\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/test*\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps and WIP themes (remember to check that no Map uses them)\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\n#delete all names, reserved hats and unused fonts\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\necho \"Handling audio files...\"\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n#copy mono audio\ncp -R ${PROJECT_DIR}/Audio/* ${PROJECT_DIR}/Data/\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Justyouwait,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nfor i in `ls ${PROJECT_DIR}/Data/Maps/`; do if [[ `ls -f ${PROJECT_DIR}/Data/Maps/$i/map.lua 2> /dev/null` != '' ]]; then mv ${PROJECT_DIR}/Data/Maps/$i ${PROJECT_DIR}/Data/Missions/Maps/; fi; done;\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n#remove cfg files since we have plists\nfind ${PROJECT_DIR}/Data/Scripts -name *.cfg -delete\nif ((`ls ${PROJECT_DIR}/Data/Scripts/Multiplayer/*.lua|wc -l` >= `ls ${PROJECT_DIR}/Data/Scripts/plist/*.plist|wc -l` ))\nthen\necho \"${PROJECT_DIR}/Data/Scripts/Multiplayer/Normal.plist:0: warning, missing plist implementation of a Multiplayer script file\"\nfi\n\n#reduce the number of flakes for City\nsed -ie 's/1500/50/' ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\necho \"Done\"";
+ shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\n#create config.inc\necho \"Updating config file...\"\nPROTO=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep HEDGEWARS_PROTO_VER | cut -d ' ' -f 2 | cut -d ')' -f 1`\nMAJN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MAJOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nMINN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MINOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nPATN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_PATCH | xargs | cut -d ' ' -f 2 |cut -d '$' -f 1`\nREVN=-`/usr/local/bin/hg id -n ${PROJECT_DIR}/../../`\necho \"const cNetProtoVersion = $PROTO; const cVersionString = '${MAJN}.${MINN}.${PATN}${REVN}'; const cLuaLibrary = '';\" > ${PROJECT_DIR}/config.inc\n\necho \"Copying Data...\"\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\necho \"Fetching additional graphics from QTfrontend...\"\nmkdir ${PROJECT_DIR}/Data/Graphics/Icons\ncp ${PROJECT_DIR}/../../QTfrontend/res/{btn*,icon*,StatsMedal*,ammopic*}.png ${PROJECT_DIR}/Data/Graphics/Icons/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg* -delete\nfind ${PROJECT_DIR}/Data -name *.psd -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\nfind ${PROJECT_DIR}/Data -name *.ts -delete\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/test*\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps and WIP themes (remember to check that no Map uses them)\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\n#delete all names, reserved hats and unused fonts\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\necho \"Handling audio files...\"\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n#copy mono audio\ncp -R ${PROJECT_DIR}/Audio/* ${PROJECT_DIR}/Data/\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Justyouwait,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nfor i in `ls ${PROJECT_DIR}/Data/Maps/`; do if [[ `ls -f ${PROJECT_DIR}/Data/Maps/$i/map.lua 2> /dev/null` != '' ]]; then mv ${PROJECT_DIR}/Data/Maps/$i ${PROJECT_DIR}/Data/Missions/Maps/; fi; done;\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n#remove cfg files since we have plists\nfind ${PROJECT_DIR}/Data/Scripts -name *.cfg -delete\nif ((`ls ${PROJECT_DIR}/Data/Scripts/Multiplayer/*.lua|wc -l` >= `ls ${PROJECT_DIR}/Data/Scripts/plist/*.plist|wc -l` ))\nthen\necho \"${PROJECT_DIR}/Data/Scripts/Multiplayer/Normal.plist:0: warning, missing plist implementation of a Multiplayer script file\"\nfi\n\n#reduce the number of flakes for City\nsed -i -e 's/1500/50/' ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n#cleanup missions/trainings info\nsed -i -e -n '/\"/p' ${PROJECT_DIR}/Data/Locale/missions_en.txt\n\necho \"Done\"";
showEnvVarsInLog = 0;
};
9283011B0F10CB2D00CC5A3C /* Build libfpc.a */ = {
@@ -1545,20 +1597,20 @@
6165921411CA9BA200D6E256 /* LevelViewController.m in Sources */,
6165921511CA9BA200D6E256 /* MainMenuViewController.m in Sources */,
6165921611CA9BA200D6E256 /* MapConfigViewController.m in Sources */,
- 6165921711CA9BA200D6E256 /* MasterViewController.m in Sources */,
+ 6165921711CA9BA200D6E256 /* SettingsBaseViewController.m in Sources */,
6165921811CA9BA200D6E256 /* OverlayViewController.m in Sources */,
6165921911CA9BA200D6E256 /* InGameMenuViewController.m in Sources */,
6165921A11CA9BA200D6E256 /* SchemeSettingsViewController.m in Sources */,
6165921B11CA9BA200D6E256 /* SchemeWeaponConfigViewController.m in Sources */,
6165921C11CA9BA200D6E256 /* SingleSchemeViewController.m in Sources */,
6165921D11CA9BA200D6E256 /* SingleTeamViewController.m in Sources */,
- 6165921E11CA9BA200D6E256 /* SplitViewRootController.m in Sources */,
+ 6165921E11CA9BA200D6E256 /* SettingsContainerViewController.m in Sources */,
6165921F11CA9BA200D6E256 /* TeamConfigViewController.m in Sources */,
6165922011CA9BA200D6E256 /* TeamSettingsViewController.m in Sources */,
6165922111CA9BA200D6E256 /* VoicesViewController.m in Sources */,
6165922211CA9BA200D6E256 /* WeaponSettingsViewController.m in Sources */,
6165922E11CA9BD500D6E256 /* CGPointUtils.c in Sources */,
- 6165922F11CA9BD500D6E256 /* CommodityFunctions.m in Sources */,
+ 6165922F11CA9BD500D6E256 /* HWUtils.m in Sources */,
6165923111CA9BD500D6E256 /* SquareButtonView.m in Sources */,
6165923211CA9BD500D6E256 /* UIImageExtra.m in Sources */,
6165929E11CA9E2F00D6E256 /* HedgewarsAppDelegate.m in Sources */,
@@ -1599,6 +1651,8 @@
6167A6761391514600AA6D07 /* RestoreViewController.m in Sources */,
61C28D3F142D380400DA16C2 /* AudioManagerController.m in Sources */,
611D7A50142FDCD3006E0798 /* uTouch.pas in Sources */,
+ 61915D5B143A4E2C00299991 /* MissionTrainingViewController.m in Sources */,
+ 61D0BDF91457508C0011A899 /* ExtraCategories.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1644,7 +1698,7 @@
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Fi${PROJECT_DIR}";
FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/2.7.1;
FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
@@ -1667,7 +1721,7 @@
"\"$(SRCROOT)/../../../Library/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
LLVM_LTO = NO;
ONLY_ACTIVE_ARCH = NO;
OTHER_CODE_SIGN_FLAGS = "";
@@ -1727,7 +1781,7 @@
CODE_SIGN_ENTITLEMENTS = "Entitlements-Distribution.plist";
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Fi${PROJECT_DIR}";
FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/2.7.1;
FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
@@ -1750,7 +1804,7 @@
"\"$(SRCROOT)/../../../Library/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
@@ -1852,7 +1906,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Fi${PROJECT_DIR}";
FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/2.5.1;
FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
@@ -1875,7 +1929,7 @@
"\"$(SRCROOT)/../../../Library/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
@@ -1899,7 +1953,7 @@
CODE_SIGN_ENTITLEMENTS = "Entitlements-Development.plist";
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Fi${PROJECT_DIR}";
FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/2.7.1;
FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
@@ -1922,7 +1976,7 @@
"\"$(SRCROOT)/../../../Library/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
LLVM_LTO = NO;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
--- a/project_files/HedgewarsMobile/Hedgewars_Prefix.pch Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/HedgewarsMobile/Hedgewars_Prefix.pch Fri Oct 28 18:26:17 2011 +0200
@@ -14,50 +14,21 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 25/04/2010.
*/
-// some macros by http://www.cimgf.com/2010/05/02/my-current-prefix-pch-file/
-// and http://blog.coriolis.ch/2009/01/05/macros-for-xcode/
-
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import <UIKit/UIKit.h>
#import "PascalImports.h"
#import "UIImageExtra.h"
-#import "CommodityFunctions.h"
+#import "DefinesAndMacros.h"
#import "HedgewarsAppDelegate.h"
#import "AudioManagerController.h"
+#import "HWUtils.h"
+#import "ExtraCategories.h"
#endif
-
-#ifdef DEBUG
- #define DLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
- #define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
- #define releaseAndNil(x) [x release]
-#else
- #define DLog(...) do { } while (0)
- #ifndef NS_BLOCK_ASSERTIONS
- #define NS_BLOCK_ASSERTIONS
- #endif
- #define ALog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
- #define releaseAndNil(x) [x release], x = nil
-#endif
-
-
-#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)
-#define rotationManager(x) (x == UIInterfaceOrientationLandscapeRight) || (x == UIInterfaceOrientationLandscapeLeft)
-
-#define START_TIMER NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];
-#define END_TIMER(msg) NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate]; CMLog([NSString stringWithFormat:@"%@ Time = %f", msg, stop-start]);
-
-
-#if !__IPHONE_3_2
-typedef enum {
- UIUserInterfaceIdiomPhone, // iPhone and iPod touch style UI
- UIUserInterfaceIdiomPad, // iPad style UI
-} UIUserInterfaceIdiom;
-#define UI_USER_INTERFACE_IDIOM() UIUserInterfaceIdiomPhone
-#define UIPopoverController id
-#endif // ifndef __IPHONE_3_2
--- a/project_files/HedgewarsMobile/Resources/AboutViewController.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,658 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1024</int>
- <string key="IBDocument.SystemVersion">10F569</string>
- <string key="IBDocument.InterfaceBuilderVersion">804</string>
- <string key="IBDocument.AppKitVersion">1038.29</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">123</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBProxyObject" id="606714003">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBUIView" id="766721923">
- <nil key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUINavigationBar" id="241300702">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">290</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUISegmentedControl" id="674364401">
- <reference key="NSNextResponder" ref="241300702"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{127, 7}, {289, 30}}</string>
- <reference key="NSSuperview" ref="241300702"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBSegmentControlStyle">2</int>
- <int key="IBNumberOfSegments">5</int>
- <int key="IBSelectedSegmentIndex">0</int>
- <object class="NSArray" key="IBSegmentTitles">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>Code</string>
- <string>Art</string>
- <string>Sound</string>
- <string>Locale</string>
- <string>Special</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentWidths">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentEnabledStates">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentContentOffsets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentImages">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSNull" id="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- </object>
- </object>
- </object>
- <string key="NSFrameSize">{543, 44}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSArray" key="IBUIItems">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUINavigationItem" id="824792699">
- <reference key="IBUINavigationBar" ref="241300702"/>
- <object class="IBUIBarButtonItem" key="IBUILeftBarButtonItem" id="322694234">
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIStyle">1</int>
- <reference key="IBUINavigationItem" ref="824792699"/>
- <int key="IBUISystemItemIdentifier">0</int>
- </object>
- <reference key="IBUITitleView" ref="674364401"/>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- </object>
- <object class="IBUITableView" id="411460868">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">274</int>
- <string key="NSFrame">{{0, 44}, {543, 577}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAgMAA</bytes>
- </object>
- <bool key="IBUIClipsSubviews">YES</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <bool key="IBUIAlwaysBounceVertical">YES</bool>
- <int key="IBUIStyle">1</int>
- <int key="IBUISeparatorStyle">2</int>
- <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
- <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
- <float key="IBUIRowHeight">44</float>
- <float key="IBUISectionHeaderHeight">10</float>
- <float key="IBUISectionFooterHeight">10</float>
- </object>
- </object>
- <string key="NSFrameSize">{543, 621}</string>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="766721923"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="322694234"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">8</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">dataSource</string>
- <reference key="source" ref="411460868"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">12</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="411460868"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">13</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">tableView</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="411460868"/>
- </object>
- <int key="connectionID">14</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">segmentedControlChanged:</string>
- <reference key="source" ref="674364401"/>
- <reference key="destination" ref="841351856"/>
- <int key="IBEventType">13</int>
- </object>
- <int key="connectionID">15</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">segmentedControl</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="674364401"/>
- </object>
- <int key="connectionID">16</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="841351856"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="606714003"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2</int>
- <reference key="object" ref="766721923"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="241300702"/>
- <reference ref="411460868"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">5</int>
- <reference key="object" ref="241300702"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="824792699"/>
- </object>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">6</int>
- <reference key="object" ref="824792699"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="322694234"/>
- <reference ref="674364401"/>
- </object>
- <reference key="parent" ref="241300702"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">7</int>
- <reference key="object" ref="322694234"/>
- <reference key="parent" ref="824792699"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">10</int>
- <reference key="object" ref="411460868"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">11</int>
- <reference key="object" ref="674364401"/>
- <reference key="parent" ref="824792699"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>10.IBPluginDependency</string>
- <string>11.IBPluginDependency</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>5.IBPluginDependency</string>
- <string>6.IBPluginDependency</string>
- <string>7.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>AboutViewController</string>
- <string>UIResponder</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>{{376, 170}, {543, 621}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">16</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">AboutViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>segmentedControlChanged:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>segmentedControlChanged:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBActionInfo">
- <string key="name">buttonPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">segmentedControlChanged:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="outlets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>segmentedControl</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>UISegmentedControl</string>
- <string>UITableView</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>segmentedControl</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBToOneOutletInfo">
- <string key="name">segmentedControl</string>
- <string key="candidateClassName">UISegmentedControl</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">tableView</string>
- <string key="candidateClassName">UITableView</string>
- </object>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/AboutViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarButtonItem</string>
- <string key="superclassName">UIBarItem</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarItem</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UINavigationBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="802309264">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UINavigationItem</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="802309264"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="786211723"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIScrollView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISegmentedControl</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UITableView</string>
- <string key="superclassName">UIScrollView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1024" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">123</string>
- </data>
-</archive>
Binary file project_files/HedgewarsMobile/Resources/Frontend/helpButton.png has changed
Binary file project_files/HedgewarsMobile/Resources/Frontend/startGameButton@2x.png has changed
--- a/project_files/HedgewarsMobile/Resources/GameConfigViewController.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,608 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10K540</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.36</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="2"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="606714003">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="766721923">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIToolbar" id="836721772">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">266</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUISegmentedControl" id="563596142">
- <reference key="NSNextResponder" ref="836721772"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{96, 8}, {270, 30}}</string>
- <reference key="NSSuperview" ref="836721772"/>
- <bool key="IBUIOpaque">NO</bool>
- <int key="IBUITag">12345</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBSegmentControlStyle">2</int>
- <int key="IBNumberOfSegments">4</int>
- <int key="IBSelectedSegmentIndex">0</int>
- <object class="NSArray" key="IBSegmentTitles">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>Map</string>
- <string>Teams</string>
- <string>Details</string>
- <string>Help</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentWidths">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentEnabledStates">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentContentOffsets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentImages">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSNull" id="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- </object>
- <object class="NSColor" key="IBTintColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC42IDAuNiAwLjYAA</bytes>
- </object>
- </object>
- </object>
- <string key="NSFrame">{{0, 276}, {480, 44}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIBarStyle">1</int>
- <object class="NSMutableArray" key="IBUIItems">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIBarButtonItem" id="80281356">
- <string key="IBUITitle">Back</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIStyle">1</int>
- <reference key="IBUIToolbar" ref="836721772"/>
- </object>
- <object class="IBUIBarButtonItem" id="716161941">
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <reference key="IBUIToolbar" ref="836721772"/>
- <int key="IBUISystemItemIdentifier">5</int>
- </object>
- <object class="IBUIBarButtonItem" id="530186890">
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <reference key="IBUICustomView" ref="563596142"/>
- <reference key="IBUIToolbar" ref="836721772"/>
- </object>
- <object class="IBUIBarButtonItem" id="188600069">
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <reference key="IBUIToolbar" ref="836721772"/>
- <int key="IBUISystemItemIdentifier">5</int>
- </object>
- <object class="IBUIBarButtonItem" id="919181414">
- <int key="IBUITag">1</int>
- <string key="IBUITitle">Start</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <float key="IBUIWidth">68</float>
- <int key="IBUIStyle">2</int>
- <reference key="IBUIToolbar" ref="836721772"/>
- </object>
- </object>
- </object>
- </object>
- <string key="NSFrameSize">{480, 320}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="766721923"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="80281356"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">17</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="919181414"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">23</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">segmentPressed:</string>
- <reference key="source" ref="563596142"/>
- <reference key="destination" ref="841351856"/>
- <int key="IBEventType">13</int>
- </object>
- <int key="connectionID">29</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="841351856"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="606714003"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2</int>
- <reference key="object" ref="766721923"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="836721772"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">15</int>
- <reference key="object" ref="836721772"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="80281356"/>
- <reference ref="919181414"/>
- <reference ref="188600069"/>
- <reference ref="530186890"/>
- <reference ref="716161941"/>
- </object>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">16</int>
- <reference key="object" ref="80281356"/>
- <reference key="parent" ref="836721772"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">18</int>
- <reference key="object" ref="919181414"/>
- <reference key="parent" ref="836721772"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">19</int>
- <reference key="object" ref="188600069"/>
- <reference key="parent" ref="836721772"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">21</int>
- <reference key="object" ref="530186890"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="563596142"/>
- </object>
- <reference key="parent" ref="836721772"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">20</int>
- <reference key="object" ref="563596142"/>
- <reference key="parent" ref="530186890"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">22</int>
- <reference key="object" ref="716161941"/>
- <reference key="parent" ref="836721772"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>15.IBPluginDependency</string>
- <string>15.IBViewBoundsToFrameTransform</string>
- <string>16.IBPluginDependency</string>
- <string>18.IBPluginDependency</string>
- <string>19.IBPluginDependency</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>20.IBPluginDependency</string>
- <string>22.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>GameConfigViewController</string>
- <string>UIResponder</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw58AAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>{{131, 321}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">29</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">GameConfigViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>segmentPressed:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>segmentPressed:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBActionInfo">
- <string key="name">buttonPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">segmentPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/GameConfigViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarButtonItem</string>
- <string key="superclassName">UIBarItem</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarItem</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="786211723"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISegmentedControl</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIToolbar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/HelpPageInGameViewController-iPad.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,889 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1024</int>
- <string key="IBDocument.SystemVersion">10F569</string>
- <string key="IBDocument.InterfaceBuilderVersion">788</string>
- <string key="IBDocument.AppKitVersion">1038.29</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">117</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="2"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBProxyObject" id="606714003">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBUIView" id="766721923">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIImageView" id="625666841">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{0, -1}, {1024, 768}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpingame.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="271354909">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{79, 473}, {150, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Direction buttons</string>
- <object class="NSFont" key="IBUIFont" id="583365693">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor" id="283637272">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAAA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="1061067446">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{79, 491}, {203, 85}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">With these buttons you can move your hog, aim and control certain weapons.</string>
- <object class="NSFont" key="IBUIFont" id="818038162">
- <string key="NSName">Helvetica</string>
- <double key="NSSize">16</double>
- <int key="NSfFlags">16</int>
- </object>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="435000744">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{53, 97}, {186, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Timer</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="580244456">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{53, 118}, {187, 43}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Don't let your turn time run out!</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="162303877">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{780, 248}, {240, 128}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpright.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="323588470">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{790, 256}, {109, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Ammo Menu</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="687330896">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{790, 282}, {214, 84}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">This menu contains all the weapons you can use. Drag your finger on a weapon for more details on what it does!</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="697316303">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{780, 97}, {186, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Pause / Open ammos</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="859729380">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{782, 118}, {187, 43}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Tap to pause or open the ammo menu.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="1045445495">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{418, 73}, {186, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Wind bar</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="635730473">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{418, 89}, {191, 63}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Some weapons are affected by the wind and their direction may shift.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="701155026">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{447, 573}, {203, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Teams flags and health</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="929603608">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{447, 592}, {203, 85}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">These bars report the team name, the team flags and the global health status of every hog.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">4</int>
- </object>
- <object class="IBUILabel" id="157896337">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{741, 501}, {135, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Joypad buttons</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="213370333">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{741, 520}, {211, 85}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Press X to jump forward, Y to jump backwards (double tap to jump twice) and Missile to attack or use items.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="533288614">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{67, 238}, {240, 128}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpplain.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="203633929">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{72, 246}, {229, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Tap to return to game</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="345016434">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{72, 268}, {229, 87}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Pan to move camera, pinch to zoom, double tap to center hog, and a single touch to interact with weapons and much more!</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- </object>
- <string key="NSFrameSize">{1024, 768}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MCAwLjQAA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="766721923"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">dismiss</string>
- <reference key="source" ref="766721923"/>
- <reference key="destination" ref="841351856"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">16</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="841351856"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="606714003"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2</int>
- <reference key="object" ref="766721923"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="625666841"/>
- <reference ref="162303877"/>
- <reference ref="323588470"/>
- <reference ref="697316303"/>
- <reference ref="859729380"/>
- <reference ref="1045445495"/>
- <reference ref="635730473"/>
- <reference ref="435000744"/>
- <reference ref="580244456"/>
- <reference ref="271354909"/>
- <reference ref="1061067446"/>
- <reference ref="701155026"/>
- <reference ref="157896337"/>
- <reference ref="533288614"/>
- <reference ref="203633929"/>
- <reference ref="345016434"/>
- <reference ref="213370333"/>
- <reference ref="929603608"/>
- <reference ref="687330896"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">5</int>
- <reference key="object" ref="625666841"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">6</int>
- <reference key="object" ref="162303877"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">7</int>
- <reference key="object" ref="323588470"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">8</int>
- <reference key="object" ref="687330896"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">9</int>
- <reference key="object" ref="697316303"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">10</int>
- <reference key="object" ref="859729380"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">11</int>
- <reference key="object" ref="1045445495"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">12</int>
- <reference key="object" ref="635730473"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">13</int>
- <reference key="object" ref="435000744"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">14</int>
- <reference key="object" ref="580244456"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">17</int>
- <reference key="object" ref="271354909"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">18</int>
- <reference key="object" ref="1061067446"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">21</int>
- <reference key="object" ref="701155026"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">22</int>
- <reference key="object" ref="929603608"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">23</int>
- <reference key="object" ref="157896337"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">24</int>
- <reference key="object" ref="213370333"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">25</int>
- <reference key="object" ref="533288614"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">26</int>
- <reference key="object" ref="203633929"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">27</int>
- <reference key="object" ref="345016434"/>
- <reference key="parent" ref="766721923"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>10.IBPluginDependency</string>
- <string>11.IBPluginDependency</string>
- <string>12.IBPluginDependency</string>
- <string>13.IBPluginDependency</string>
- <string>14.IBPluginDependency</string>
- <string>17.IBPluginDependency</string>
- <string>18.IBPluginDependency</string>
- <string>2.CustomClassName</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>21.IBPluginDependency</string>
- <string>22.IBPluginDependency</string>
- <string>23.IBPluginDependency</string>
- <string>24.IBPluginDependency</string>
- <string>25.IBPluginDependency</string>
- <string>26.IBPluginDependency</string>
- <string>27.IBPluginDependency</string>
- <string>5.IBPluginDependency</string>
- <string>6.IBPluginDependency</string>
- <string>7.IBPluginDependency</string>
- <string>8.IBPluginDependency</string>
- <string>9.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>HelpPageViewController</string>
- <string>UIResponder</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>UIControl</string>
- <string>{{288, 355}, {1024, 768}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">27</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">HelpPageViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">dismiss</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">dismiss</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">dismiss</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/HelpPageViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="786211723"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1024" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>helpingame.png</string>
- <string>helpplain.png</string>
- <string>helpright.png</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{1024, 768}</string>
- <string>{296, 138}</string>
- <string>{308, 144}</string>
- </object>
- </object>
- <string key="IBCocoaTouchPluginVersion">117</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/HelpPageInGameViewController-iPhone.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1014 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10H574</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="2"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="606714003">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="766721923">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIScrollView" id="480371523">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">274</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUILabel" id="806535969">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 283}, {150, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Direction buttons</string>
- <object class="NSFont" key="IBUIFont" id="583365693">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor" id="283637272">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAAA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="837055082">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 292}, {203, 85}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">With these buttons you can move your hog, aim and control certain weapons.</string>
- <object class="NSFont" key="IBUIFont" id="818038162">
- <string key="NSName">Helvetica</string>
- <double key="NSSize">16</double>
- <int key="NSfFlags">16</int>
- </object>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="669645325">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 13}, {186, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Timer</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="392421036">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 34}, {187, 43}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Don't let your turn time run out!</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="709427542">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{217, 308}, {243, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Touch interface</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">2</int>
- </object>
- <object class="IBUILabel" id="748437184">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{231, 328}, {229, 87}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Pan to move camera, pinch to zoom, double tap to center hog, and a single touch to interact with weapons and much more!</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- <int key="IBUITextAlignment">2</int>
- </object>
- <object class="IBUILabel" id="941791832">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 85}, {186, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Wind bar</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="26100154">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 101}, {191, 63}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Some weapons are affected by the wind and their direction may shift.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="413836006">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 172}, {203, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Teams flags and health</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="579557686">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 191}, {203, 85}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">These bars report the team name, the team flags and the global health status of every hog.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">4</int>
- </object>
- <object class="IBUILabel" id="740577465">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{274, 13}, {186, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Pause / Open ammos</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">2</int>
- </object>
- <object class="IBUILabel" id="347724774">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{273, 35}, {187, 43}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Tap to pause or open the ammo menu.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- <int key="IBUITextAlignment">2</int>
- </object>
- <object class="IBUILabel" id="318624215">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{351, 82}, {109, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Ammo Menu</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">2</int>
- </object>
- <object class="IBUILabel" id="145842014">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{246, 105}, {214, 84}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">This menu contains all the weapons you can use. Drag your finger on a weapon for more details on what it does!</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- <int key="IBUITextAlignment">2</int>
- </object>
- <object class="IBUILabel" id="415037922">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{325, 197}, {135, 22}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Joypad buttons</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">2</int>
- </object>
- <object class="IBUILabel" id="499026341">
- <reference key="NSNextResponder" ref="480371523"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{249, 217}, {211, 85}}</string>
- <reference key="NSSuperview" ref="480371523"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Press X to jump forward, Y to jump backwards (double tap to jump twice) and Missile to attack or use items.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- <int key="IBUITextAlignment">2</int>
- </object>
- </object>
- <string key="NSFrame">{{-5, 44}, {489, 332}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIClipsSubviews">YES</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">1</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUINavigationBar" id="126317414">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">290</int>
- <string key="NSFrame">{{-1, 0}, {481, 44}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSArray" key="IBUIItems">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUINavigationItem" id="477618874">
- <reference key="IBUINavigationBar" ref="126317414"/>
- <string key="IBUITitle">Help page</string>
- <object class="IBUIBarButtonItem" key="IBUILeftBarButtonItem" id="843591489">
- <string key="IBUITitle">Back</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIStyle">1</int>
- <reference key="IBUINavigationItem" ref="477618874"/>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- </object>
- </object>
- <string key="NSFrameSize">{480, 320}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuOTg4MjM1MzU0NCAxAA</bytes>
- </object>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="766721923"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">dismiss</string>
- <reference key="source" ref="843591489"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">141</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">scrollView</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="480371523"/>
- </object>
- <int key="connectionID">142</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="841351856"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="606714003"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2</int>
- <reference key="object" ref="766721923"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="126317414"/>
- <reference ref="480371523"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">118</int>
- <reference key="object" ref="126317414"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="477618874"/>
- </object>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">121</int>
- <reference key="object" ref="480371523"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="709427542"/>
- <reference ref="392421036"/>
- <reference ref="669645325"/>
- <reference ref="941791832"/>
- <reference ref="26100154"/>
- <reference ref="806535969"/>
- <reference ref="837055082"/>
- <reference ref="413836006"/>
- <reference ref="579557686"/>
- <reference ref="748437184"/>
- <reference ref="740577465"/>
- <reference ref="347724774"/>
- <reference ref="318624215"/>
- <reference ref="145842014"/>
- <reference ref="415037922"/>
- <reference ref="499026341"/>
- </object>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">122</int>
- <reference key="object" ref="709427542"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">124</int>
- <reference key="object" ref="392421036"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">125</int>
- <reference key="object" ref="669645325"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">126</int>
- <reference key="object" ref="941791832"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">127</int>
- <reference key="object" ref="26100154"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">128</int>
- <reference key="object" ref="806535969"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">129</int>
- <reference key="object" ref="837055082"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">130</int>
- <reference key="object" ref="413836006"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">131</int>
- <reference key="object" ref="579557686"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">132</int>
- <reference key="object" ref="748437184"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">133</int>
- <reference key="object" ref="740577465"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">134</int>
- <reference key="object" ref="347724774"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">135</int>
- <reference key="object" ref="318624215"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">136</int>
- <reference key="object" ref="145842014"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">137</int>
- <reference key="object" ref="415037922"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">138</int>
- <reference key="object" ref="499026341"/>
- <reference key="parent" ref="480371523"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">119</int>
- <reference key="object" ref="477618874"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="843591489"/>
- </object>
- <reference key="parent" ref="126317414"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">140</int>
- <reference key="object" ref="843591489"/>
- <reference key="parent" ref="477618874"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>118.IBPluginDependency</string>
- <string>118.IBViewBoundsToFrameTransform</string>
- <string>119.IBPluginDependency</string>
- <string>121.IBEditorWindowLastContentRect</string>
- <string>121.IBPluginDependency</string>
- <string>121.IBViewBoundsToFrameTransform</string>
- <string>122.IBPluginDependency</string>
- <string>122.IBViewBoundsToFrameTransform</string>
- <string>124.IBPluginDependency</string>
- <string>124.IBViewBoundsToFrameTransform</string>
- <string>125.IBPluginDependency</string>
- <string>125.IBViewBoundsToFrameTransform</string>
- <string>126.IBPluginDependency</string>
- <string>126.IBViewBoundsToFrameTransform</string>
- <string>127.IBPluginDependency</string>
- <string>127.IBViewBoundsToFrameTransform</string>
- <string>128.IBPluginDependency</string>
- <string>128.IBViewBoundsToFrameTransform</string>
- <string>129.IBPluginDependency</string>
- <string>129.IBViewBoundsToFrameTransform</string>
- <string>130.IBPluginDependency</string>
- <string>130.IBViewBoundsToFrameTransform</string>
- <string>131.IBPluginDependency</string>
- <string>131.IBViewBoundsToFrameTransform</string>
- <string>132.IBPluginDependency</string>
- <string>132.IBViewBoundsToFrameTransform</string>
- <string>133.IBPluginDependency</string>
- <string>133.IBViewBoundsToFrameTransform</string>
- <string>134.IBPluginDependency</string>
- <string>134.IBViewBoundsToFrameTransform</string>
- <string>135.IBPluginDependency</string>
- <string>135.IBViewBoundsToFrameTransform</string>
- <string>136.IBPluginDependency</string>
- <string>136.IBViewBoundsToFrameTransform</string>
- <string>137.IBPluginDependency</string>
- <string>137.IBViewBoundsToFrameTransform</string>
- <string>138.IBPluginDependency</string>
- <string>138.IBViewBoundsToFrameTransform</string>
- <string>140.IBPluginDependency</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>2.IBViewBoundsToFrameTransform</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>HelpPageViewController</string>
- <string>UIResponder</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AQAAAADAQAAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>{{589, 578}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AcCgAABCMAAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDZwAAw7aAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABCVAAAwx8AAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAwnQAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABCxgAAwtYAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABCxgAAwyQAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw+SAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAxARAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw6aAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw8+AAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDZwAAw+EAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDiQAAwmwAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDiIAAwswAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDr4AAwwUAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDdgAAw1oAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDooAAw3gAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDeQAAw6aAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>{{165, 514}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw4kAAA</bytes>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">142</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">HelpPageViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">dismiss</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">dismiss</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">dismiss</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">scrollView</string>
- <string key="NS.object.0">UIScrollView</string>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">scrollView</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">scrollView</string>
- <string key="candidateClassName">UIScrollView</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/HelpPageViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarButtonItem</string>
- <string key="superclassName">UIBarItem</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarItem</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UINavigationBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="847596400">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UINavigationItem</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="847596400"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="786211723"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIScrollView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/HelpPageLobbyViewController-iPad.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1024</int>
- <string key="IBDocument.SystemVersion">10F569</string>
- <string key="IBDocument.InterfaceBuilderVersion">804</string>
- <string key="IBDocument.AppKitVersion">1038.29</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">123</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBProxyObject" id="606714003">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBUIView" id="766721923">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIImageView" id="1011244481">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{742, 389}, {240, 102}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage" id="468391955">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpabove.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="636170775">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{753, 408}, {109, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Map theme</string>
- <object class="NSFont" key="IBUIFont" id="583365693">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor" id="283637272">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAAA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="552788325">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{753, 425}, {218, 66}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Here you can choose how your map will appear in game.</string>
- <object class="NSFont" key="IBUIFont" id="818038162">
- <string key="NSName">Helvetica</string>
- <double key="NSSize">16</double>
- <int key="NSfFlags">16</int>
- </object>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="379980516">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{653, 202}, {240, 146}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <reference key="IBUIImage" ref="468391955"/>
- </object>
- <object class="IBUILabel" id="901581152">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{664, 223}, {109, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Map type</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="595424508">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{664, 244}, {218, 99}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="162303877">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{494, 20}, {240, 101}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpright.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="323588470">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{502, 25}, {109, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Map preview</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="687330896">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{502, 46}, {218, 65}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">This is a small preview of your next map. Tap to select / generate a new map.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="713859408">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{391, 389}, {242, 171}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <reference key="IBUIImage" ref="468391955"/>
- </object>
- <object class="IBUILabel" id="896727228">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{401, 413}, {109, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Teams</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="704238452">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{400, 434}, {232, 120}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="993770514">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{142, 125}, {240, 104}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage" id="63133621">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpleft.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="488737408">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{162, 133}, {204, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Schemes and Weapons</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="463058693">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{162, 152}, {210, 71}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Here you can choose which rules and which weapon set will be applied in game.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="845663511">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{155, 8}, {278, 50}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <reference key="IBUIImage" ref="63133621"/>
- </object>
- <object class="IBUILabel" id="823916653">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{177, 6}, {248, 54}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Did you know you can customize almost everything in the settings page?</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Oblique</string>
- <double key="NSSize">14</double>
- <int key="NSfFlags">16</int>
- </object>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="678356402">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{686, 583}, {240, 117}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage" id="835742298">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpbottom.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="1068254353">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{697, 592}, {138, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Max hedgehogs</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="1023832701">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{697, 609}, {218, 73}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">This number is the maximum size for all the hogs playing (in every team).</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="261734864">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 587}, {240, 109}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <reference key="IBUIImage" ref="835742298"/>
- </object>
- <object class="IBUILabel" id="578857422">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{30, 592}, {138, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Size slider</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="972150858">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{30, 608}, {218, 73}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">For Random and Maze maps you can decide to generate only maps of a certain size.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="533288614">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{45, 318}, {240, 128}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpplain.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="203633929">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{50, 326}, {229, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Tap anywhere to dismiss</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="345016434">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{52, 348}, {224, 87}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUIImageView" id="109182727">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{344, 635}, {240, 61}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <reference key="IBUIImage" ref="835742298"/>
- </object>
- <object class="IBUILabel" id="815146899">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{353, 637}, {138, 22}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Start button</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="379008984">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{354, 650}, {218, 46}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <reference key="NSWindow"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">This button starts the game.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- </object>
- <string key="NSFrameSize">{1024, 768}</string>
- <reference key="NSSuperview"/>
- <reference key="NSWindow"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MCAwLjQAA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="766721923"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">dismiss</string>
- <reference key="source" ref="766721923"/>
- <reference key="destination" ref="841351856"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">16</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="841351856"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="606714003"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2</int>
- <reference key="object" ref="766721923"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="162303877"/>
- <reference ref="323588470"/>
- <reference ref="687330896"/>
- <reference ref="1011244481"/>
- <reference ref="552788325"/>
- <reference ref="636170775"/>
- <reference ref="1023832701"/>
- <reference ref="1068254353"/>
- <reference ref="261734864"/>
- <reference ref="578857422"/>
- <reference ref="972150858"/>
- <reference ref="713859408"/>
- <reference ref="896727228"/>
- <reference ref="704238452"/>
- <reference ref="533288614"/>
- <reference ref="203633929"/>
- <reference ref="345016434"/>
- <reference ref="109182727"/>
- <reference ref="379008984"/>
- <reference ref="815146899"/>
- <reference ref="379980516"/>
- <reference ref="901581152"/>
- <reference ref="595424508"/>
- <reference ref="678356402"/>
- <reference ref="993770514"/>
- <reference ref="488737408"/>
- <reference ref="463058693"/>
- <reference ref="845663511"/>
- <reference ref="823916653"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">6</int>
- <reference key="object" ref="162303877"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">7</int>
- <reference key="object" ref="323588470"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">8</int>
- <reference key="object" ref="687330896"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">25</int>
- <reference key="object" ref="533288614"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">26</int>
- <reference key="object" ref="203633929"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">27</int>
- <reference key="object" ref="345016434"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">28</int>
- <reference key="object" ref="1011244481"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">29</int>
- <reference key="object" ref="636170775"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">30</int>
- <reference key="object" ref="552788325"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">34</int>
- <reference key="object" ref="678356402"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">35</int>
- <reference key="object" ref="1068254353"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">36</int>
- <reference key="object" ref="1023832701"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">37</int>
- <reference key="object" ref="261734864"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">38</int>
- <reference key="object" ref="578857422"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">39</int>
- <reference key="object" ref="972150858"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">40</int>
- <reference key="object" ref="993770514"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">41</int>
- <reference key="object" ref="488737408"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">42</int>
- <reference key="object" ref="463058693"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">43</int>
- <reference key="object" ref="713859408"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">44</int>
- <reference key="object" ref="896727228"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">45</int>
- <reference key="object" ref="704238452"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">49</int>
- <reference key="object" ref="109182727"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">50</int>
- <reference key="object" ref="815146899"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">51</int>
- <reference key="object" ref="379008984"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">52</int>
- <reference key="object" ref="379980516"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">53</int>
- <reference key="object" ref="901581152"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">54</int>
- <reference key="object" ref="595424508"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">58</int>
- <reference key="object" ref="845663511"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">59</int>
- <reference key="object" ref="823916653"/>
- <reference key="parent" ref="766721923"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>2.CustomClassName</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>25.IBPluginDependency</string>
- <string>26.IBPluginDependency</string>
- <string>27.IBPluginDependency</string>
- <string>28.IBPluginDependency</string>
- <string>29.IBPluginDependency</string>
- <string>30.IBPluginDependency</string>
- <string>34.IBPluginDependency</string>
- <string>35.IBPluginDependency</string>
- <string>36.IBPluginDependency</string>
- <string>37.IBPluginDependency</string>
- <string>38.IBPluginDependency</string>
- <string>39.IBPluginDependency</string>
- <string>40.IBPluginDependency</string>
- <string>41.IBPluginDependency</string>
- <string>42.IBPluginDependency</string>
- <string>43.IBPluginDependency</string>
- <string>44.IBPluginDependency</string>
- <string>45.IBPluginDependency</string>
- <string>49.IBPluginDependency</string>
- <string>50.IBPluginDependency</string>
- <string>51.IBPluginDependency</string>
- <string>52.IBPluginDependency</string>
- <string>53.IBPluginDependency</string>
- <string>54.IBPluginDependency</string>
- <string>58.IBPluginDependency</string>
- <string>59.IBPluginDependency</string>
- <string>6.IBPluginDependency</string>
- <string>7.IBPluginDependency</string>
- <string>8.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>HelpPageViewController</string>
- <string>UIResponder</string>
- <string>UIControl</string>
- <string>{{273, 125}, {1024, 768}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">59</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">HelpPageViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">dismiss</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">dismiss</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">dismiss</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/HelpPageViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="786211723"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1024" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>helpabove.png</string>
- <string>helpbottom.png</string>
- <string>helpleft.png</string>
- <string>helpplain.png</string>
- <string>helpright.png</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{295, 156}</string>
- <string>{295, 156}</string>
- <string>{308, 144}</string>
- <string>{296, 138}</string>
- <string>{308, 144}</string>
- </object>
- </object>
- <string key="IBCocoaTouchPluginVersion">123</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/HelpPageLobbyViewController-iPhone.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,907 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1024</int>
- <string key="IBDocument.SystemVersion">10F569</string>
- <string key="IBDocument.InterfaceBuilderVersion">804</string>
- <string key="IBDocument.AppKitVersion">1038.29</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">123</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="2"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="606714003">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="766721923">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIScrollView" id="451725730">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">268</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUILabel" id="381271451">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 587}, {440, 52}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.</string>
- <object class="NSFont" key="IBUIFont" id="818038162">
- <string key="NSName">Helvetica</string>
- <double key="NSSize">16</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor" id="283637272">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAAA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="160273292">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 279}, {138, 22}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Size slider</string>
- <object class="NSFont" key="IBUIFont" id="583365693">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="399703336">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 298}, {440, 44}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">For Random and Maze maps you can decide to generate only maps of a certain size.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="780482878">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 511}, {204, 22}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Schemes and Weapons</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="715276626">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 530}, {433, 45}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Here you can choose which rules and which weapon set will be applied in game.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="81383071">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 68}, {109, 22}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Map preview</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="518187701">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 88}, {440, 44}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">This is a small preview of your next map. Tap to select / generate a new map.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="601567061">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 140}, {109, 22}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Map type</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="514192288">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 164}, {440, 58}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="136109594">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 229}, {109, 22}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Map theme</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="345586237">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 244}, {440, 33}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Here you can choose how your map will appear in game.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="686505362">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 347}, {138, 22}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Max hedgehogs</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="629677748">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 367}, {440, 41}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">This number is the maximum size for all the hogs playing (in every team).</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="79643170">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 418}, {109, 22}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Teams</string>
- <reference key="IBUIFont" ref="583365693"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- </object>
- <object class="IBUILabel" id="676482380">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 436}, {433, 66}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
- <reference key="IBUIFont" ref="818038162"/>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- </object>
- <object class="IBUILabel" id="66496634">
- <reference key="NSNextResponder" ref="451725730"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{13, 3}, {440, 60}}</string>
- <reference key="NSSuperview" ref="451725730"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Here you can find help for the game configuration options. You can customize almost everything in the settings page.</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Oblique</string>
- <double key="NSSize">16</double>
- <int key="NSfFlags">16</int>
- </object>
- <reference key="IBUITextColor" ref="283637272"/>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">0</int>
- <int key="IBUITextAlignment">1</int>
- </object>
- </object>
- <string key="NSFrameSize">{480, 276}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIClipsSubviews">YES</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <string key="NSFrameSize">{480, 276}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuOTg4MjM1MzU0NCAxAA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics"/>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="766721923"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">scrollView</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="451725730"/>
- </object>
- <int key="connectionID">95</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="841351856"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="606714003"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2</int>
- <reference key="object" ref="766721923"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="451725730"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">60</int>
- <reference key="object" ref="451725730"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="381271451"/>
- <reference ref="160273292"/>
- <reference ref="399703336"/>
- <reference ref="81383071"/>
- <reference ref="518187701"/>
- <reference ref="601567061"/>
- <reference ref="514192288"/>
- <reference ref="136109594"/>
- <reference ref="345586237"/>
- <reference ref="686505362"/>
- <reference ref="629677748"/>
- <reference ref="780482878"/>
- <reference ref="715276626"/>
- <reference ref="79643170"/>
- <reference ref="676482380"/>
- <reference ref="66496634"/>
- </object>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">61</int>
- <reference key="object" ref="381271451"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">62</int>
- <reference key="object" ref="160273292"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">63</int>
- <reference key="object" ref="399703336"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">64</int>
- <reference key="object" ref="780482878"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">65</int>
- <reference key="object" ref="715276626"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">66</int>
- <reference key="object" ref="81383071"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">67</int>
- <reference key="object" ref="518187701"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">68</int>
- <reference key="object" ref="601567061"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">69</int>
- <reference key="object" ref="514192288"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">70</int>
- <reference key="object" ref="136109594"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">71</int>
- <reference key="object" ref="345586237"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">72</int>
- <reference key="object" ref="686505362"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">73</int>
- <reference key="object" ref="629677748"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">74</int>
- <reference key="object" ref="79643170"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">75</int>
- <reference key="object" ref="676482380"/>
- <reference key="parent" ref="451725730"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">76</int>
- <reference key="object" ref="66496634"/>
- <reference key="parent" ref="451725730"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>60.IBPluginDependency</string>
- <string>60.IBViewBoundsToFrameTransform</string>
- <string>61.IBPluginDependency</string>
- <string>61.IBViewBoundsToFrameTransform</string>
- <string>62.IBPluginDependency</string>
- <string>62.IBViewBoundsToFrameTransform</string>
- <string>63.IBPluginDependency</string>
- <string>63.IBViewBoundsToFrameTransform</string>
- <string>64.IBPluginDependency</string>
- <string>64.IBViewBoundsToFrameTransform</string>
- <string>65.IBPluginDependency</string>
- <string>65.IBViewBoundsToFrameTransform</string>
- <string>66.IBPluginDependency</string>
- <string>66.IBViewBoundsToFrameTransform</string>
- <string>67.IBPluginDependency</string>
- <string>67.IBViewBoundsToFrameTransform</string>
- <string>68.IBPluginDependency</string>
- <string>68.IBViewBoundsToFrameTransform</string>
- <string>69.IBPluginDependency</string>
- <string>69.IBViewBoundsToFrameTransform</string>
- <string>70.IBPluginDependency</string>
- <string>70.IBViewBoundsToFrameTransform</string>
- <string>71.IBPluginDependency</string>
- <string>71.IBViewBoundsToFrameTransform</string>
- <string>72.IBPluginDependency</string>
- <string>72.IBViewBoundsToFrameTransform</string>
- <string>73.IBPluginDependency</string>
- <string>73.IBViewBoundsToFrameTransform</string>
- <string>74.IBPluginDependency</string>
- <string>74.IBViewBoundsToFrameTransform</string>
- <string>75.IBPluginDependency</string>
- <string>75.IBViewBoundsToFrameTransform</string>
- <string>76.IBPluginDependency</string>
- <string>76.IBViewBoundsToFrameTransform</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>HelpPageViewController</string>
- <string>UIResponder</string>
- <string>{{16, 775}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform"/>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AUGgAABEDIAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABC+AAAw0kAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw14AAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw9mAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw+6AAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABByAAAwqYAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAwxMAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAADCQAAAwqYAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAADCQAAAwzcAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDAAAAw3AAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDAAAAw5aAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDOwAAw6OAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDOwAAw8WAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDDgAAw7UAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDDQAAw/CAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAADBAAAAwlQAAA</bytes>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">95</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">HelpPageViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">dismiss</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">dismiss</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">dismiss</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">scrollView</string>
- <string key="NS.object.0">UIScrollView</string>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">scrollView</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">scrollView</string>
- <string key="candidateClassName">UIScrollView</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/HelpPageViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="786211723"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIScrollView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1024" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">123</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/MainMenuViewController-iPad.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,629 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10H574</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIImageView" id="976741091">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">274</int>
- <string key="NSFrameSize">{1024, 768}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">background.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="867308721">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{383, 427}, {263, 244}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <object class="NSFont" key="IBUIFont" id="917635782">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">15</double>
- <int key="NSfFlags">16</int>
- </object>
- <double key="IBUITitleEdgeInsets.top">215</double>
- <double key="IBUITitleEdgeInsets.bottom">0.0</double>
- <double key="IBUITitleEdgeInsets.left">0.0</double>
- <double key="IBUITitleEdgeInsets.right">0.0</double>
- <object class="NSColor" key="IBUIHighlightedTitleColor" id="918890028">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuODAwMDAwMDcxNSAwLjAzOTIxNTY4NzY2AA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleShadowColor" id="112471976">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC41AA</bytes>
- </object>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">localplayButton~ipad.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="95106947">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{795, 317}, {18, 19}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <float key="IBUIAlpha">0.31690141558647156</float>
- <int key="IBUITag">3</int>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="917635782"/>
- <int key="IBUIButtonType">3</int>
- <bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
- <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
- </object>
- <object class="IBUIButton" id="898948205">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{940, 686}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <int key="IBUITag">2</int>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="917635782"/>
- <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">settingsButton.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="894101036">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 686}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <int key="IBUITag">4</int>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="917635782"/>
- <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">savesButton.png</string>
- </object>
- </object>
- <object class="IBUIImageView" id="1019880682">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{242, 43}, {540, 300}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">title~ipad.png</string>
- </object>
- </object>
- </object>
- <string key="NSFrameSize">{1024, 768}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAAA</bytes>
- </object>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="95106947"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">47</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="867308721"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">48</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="898948205"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">54</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="894101036"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">89</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="976741091"/>
- <reference ref="867308721"/>
- <reference ref="95106947"/>
- <reference ref="898948205"/>
- <reference ref="894101036"/>
- <reference ref="1019880682"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">39</int>
- <reference key="object" ref="867308721"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">local</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">45</int>
- <reference key="object" ref="95106947"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">52</int>
- <reference key="object" ref="898948205"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">37</int>
- <reference key="object" ref="976741091"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">88</int>
- <reference key="object" ref="894101036"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">90</int>
- <reference key="object" ref="1019880682"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>1.IBEditorWindowLastContentRect</string>
- <string>1.IBPluginDependency</string>
- <string>37.IBPluginDependency</string>
- <string>39.IBPluginDependency</string>
- <string>45.IBPluginDependency</string>
- <string>45.IBViewBoundsToFrameTransform</string>
- <string>52.IBPluginDependency</string>
- <string>52.IBViewBoundsToFrameTransform</string>
- <string>88.IBPluginDependency</string>
- <string>88.IBViewBoundsToFrameTransform</string>
- <string>90.IBPluginDependency</string>
- <string>90.IBViewBoundsToFrameTransform</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>MainMenuViewController</string>
- <string>UIResponder</string>
- <string>{{267, 388}, {1024, 768}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABERQAAw56AAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABEaQAAxDsAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAxDsAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDbQAAw6qAAA</bytes>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">90</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">MainMenuViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">switchViews:</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">switchViews:</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">switchViews:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/MainMenuViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="864669175">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIButton</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="864669175"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3000" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>background.png</string>
- <string>localplayButton~ipad.png</string>
- <string>savesButton.png</string>
- <string>settingsButton.png</string>
- <string>title~ipad.png</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{1024, 768}</string>
- <string>{263, 244}</string>
- <string>{64, 64}</string>
- <string>{64, 64}</string>
- <string>{540, 300}</string>
- </object>
- </object>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/MainMenuViewController-iPhone.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,647 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10K549</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.36</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">293</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIImageView" id="249993817">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">274</int>
- <string key="NSFrameSize">{480, 320}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MCAwAA</bytes>
- </object>
- <int key="IBUIContentMode">4</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">background~iphone.png</string>
- </object>
- </object>
- <object class="IBUIImageView" id="171108356">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">293</int>
- <string key="NSFrame">{{105, 20}, {270, 150}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <int key="IBUIContentMode">4</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">title~iphone.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="124270424">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">289</int>
- <string key="NSFrame">{{190, 200}, {100, 100}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAgMAA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <object class="NSFont" key="IBUIFont" id="917635782">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">15</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUIHighlightedTitleColor" id="918890028">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleShadowColor" id="112471976">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC41AA</bytes>
- </object>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">localplayButton~iphone.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="753723574">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">269</int>
- <string key="NSFrame">{{396, 236}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <int key="IBUITag">2</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="917635782"/>
- <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">settingsButton.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="705508539">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">269</int>
- <string key="NSFrame">{{20, 236}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <int key="IBUITag">4</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="917635782"/>
- <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">savesButton.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="818907840">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 19}, {18, 19}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <float key="IBUIAlpha">0.5</float>
- <int key="IBUITag">3</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="917635782"/>
- <int key="IBUIButtonType">3</int>
- <bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
- <reference key="IBUIHighlightedTitleColor" ref="918890028"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="112471976"/>
- </object>
- </object>
- <string key="NSFrameSize">{480, 320}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAAA</bytes>
- </object>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="753723574"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">30</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="124270424"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">40</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="818907840"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">42</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">switchViews:</string>
- <reference key="source" ref="705508539"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">44</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="249993817"/>
- <reference ref="818907840"/>
- <reference ref="171108356"/>
- <reference ref="705508539"/>
- <reference ref="753723574"/>
- <reference ref="124270424"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">23</int>
- <reference key="object" ref="171108356"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">22</int>
- <reference key="object" ref="249993817"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">41</int>
- <reference key="object" ref="818907840"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">43</int>
- <reference key="object" ref="705508539"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">24</int>
- <reference key="object" ref="124270424"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">28</int>
- <reference key="object" ref="753723574"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>1.IBEditorWindowLastContentRect</string>
- <string>1.IBPluginDependency</string>
- <string>22.IBPluginDependency</string>
- <string>22.IBViewBoundsToFrameTransform</string>
- <string>23.IBPluginDependency</string>
- <string>23.IBViewBoundsToFrameTransform</string>
- <string>24.IBPluginDependency</string>
- <string>24.IBViewBoundsToFrameTransform</string>
- <string>28.IBPluginDependency</string>
- <string>28.IBViewBoundsToFrameTransform</string>
- <string>41.IBPluginDependency</string>
- <string>41.IBViewBoundsToFrameTransform</string>
- <string>43.IBPluginDependency</string>
- <string>43.IBViewBoundsToFrameTransform</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>MainMenuViewController</string>
- <string>UIResponder</string>
- <string>{{517, 519}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw5UAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABCygAAwzcAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDPgAAw5UAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDxgAAw5iAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBcAAAwhAAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAw5iAAA</bytes>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">45</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">MainMenuViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">switchViews:</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">switchViews:</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">switchViews:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/MainMenuViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="238583711">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIButton</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="238583711"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3000" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>background~iphone.png</string>
- <string>localplayButton~iphone.png</string>
- <string>savesButton.png</string>
- <string>settingsButton.png</string>
- <string>title~iphone.png</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{480, 320}</string>
- <string>{100, 100}</string>
- <string>{64, 64}</string>
- <string>{64, 64}</string>
- <string>{270, 150}</string>
- </object>
- </object>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1048 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10K540</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.36</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">274</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIImageView" id="420136851">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrameSize">{1024, 768}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIAutoresizesSubviews">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">background.png</string>
- </object>
- </object>
- <object class="IBUISegmentedControl" id="88728219">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">289</int>
- <string key="NSFrame">{{724, 166}, {280, 30}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBSegmentControlStyle">2</int>
- <int key="IBNumberOfSegments">4</int>
- <int key="IBSelectedSegmentIndex">1</int>
- <object class="NSArray" key="IBSegmentTitles">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>Random</string>
- <string>Map</string>
- <string>Maze</string>
- <string>Mission</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentWidths">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentEnabledStates">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentContentOffsets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentImages">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSNull" id="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- </object>
- <object class="NSColor" key="IBTintColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
- </object>
- </object>
- <object class="IBUISlider" id="938256702">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{263, 723}, {149, 23}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <float key="IBUIValue">0.05000000074505806</float>
- <float key="IBUIMaxValue">0.05000000074505806</float>
- </object>
- <object class="IBUIButton" id="326163764">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">289</int>
- <string key="NSFrame">{{736, 26}, {256, 128}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <object class="NSFont" key="IBUIFont" id="261639815">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">15</double>
- <int key="NSfFlags">16</int>
- </object>
- <double key="IBUIImageEdgeInsets.top">4</double>
- <double key="IBUIImageEdgeInsets.bottom">4</double>
- <double key="IBUIImageEdgeInsets.left">4</double>
- <double key="IBUIImageEdgeInsets.right">4</double>
- <object class="NSColor" key="IBUIHighlightedTitleColor" id="437070330">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleShadowColor" id="65043801">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC41AA</bytes>
- </object>
- </object>
- <object class="IBUILabel" id="634417433">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{778, 724}, {42, 21}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">...</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">17</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45MTc2NDcxMjMzIDAuNjc0NTA5ODIzMyAwAA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="743202682">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{112, 720}, {145, 29}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Label</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Oblique</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45MTM3MjU1NTQ5IDAuNzMzMzMzMzQ5MiAwLjAxMTc2NDcwNzA0AA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUIImageView" id="920829014">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{357, 28}, {309, 165}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">title.png</string>
- </object>
- </object>
- <object class="IBUITableView" id="394383001">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">274</int>
- <string key="NSFrame">{{714, 225}, {300, 445}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MCAwAA</bytes>
- </object>
- <bool key="IBUIClipsSubviews">YES</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <bool key="IBUIAlwaysBounceVertical">YES</bool>
- <int key="IBUIStyle">1</int>
- <int key="IBUISeparatorStyle">2</int>
- <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
- <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
- <float key="IBUIRowHeight">45</float>
- </object>
- <object class="IBUIButton" id="550636851">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{441, 702}, {142, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <int key="IBUITag">1</int>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="261639815"/>
- <reference key="IBUIHighlightedTitleColor" ref="437070330"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="65043801"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">startGameButton.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="403581306">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{10, 693}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="261639815"/>
- <reference key="IBUIHighlightedTitleColor" ref="437070330"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="65043801"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">backButton.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="1065439841">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{950, 693}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <int key="IBUITag">2</int>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="261639815"/>
- <reference key="IBUIHighlightedTitleColor" ref="437070330"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="65043801"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">helpButton.png</string>
- </object>
- </object>
- </object>
- <string key="NSFrameSize">{1024, 768}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC44MzkyMTU3NTU1IDAuODQ3MDU4ODkyMyAwLjg3MDU4ODMwMjYAA</bytes>
- </object>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">previewButton</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="326163764"/>
- </object>
- <int key="connectionID">13</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">maxLabel</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="634417433"/>
- </object>
- <int key="connectionID">16</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">sizeLabel</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="743202682"/>
- </object>
- <int key="connectionID">18</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">sliderChanged:</string>
- <reference key="source" ref="938256702"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">13</int>
- </object>
- <int key="connectionID">19</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">sliderEndedChanging:</string>
- <reference key="source" ref="938256702"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">20</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">segmentedControl</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="88728219"/>
- </object>
- <int key="connectionID">21</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">segmentedControlChanged:</string>
- <reference key="source" ref="88728219"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">13</int>
- </object>
- <int key="connectionID">22</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">slider</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="938256702"/>
- </object>
- <int key="connectionID">23</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">dataSource</string>
- <reference key="source" ref="394383001"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">67</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="394383001"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">68</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">tableView</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="394383001"/>
- </object>
- <int key="connectionID">69</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="403581306"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">73</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="550636851"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">74</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="1065439841"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">77</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">mapButtonPressed</string>
- <reference key="source" ref="326163764"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">113</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="326163764"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">114</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="1065439841"/>
- <reference ref="403581306"/>
- <reference ref="550636851"/>
- <reference ref="394383001"/>
- <reference ref="920829014"/>
- <reference ref="743202682"/>
- <reference ref="634417433"/>
- <reference ref="326163764"/>
- <reference ref="938256702"/>
- <reference ref="420136851"/>
- <reference ref="88728219"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">75</int>
- <reference key="object" ref="1065439841"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">72</int>
- <reference key="object" ref="403581306"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">70</int>
- <reference key="object" ref="550636851"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">66</int>
- <reference key="object" ref="394383001"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">57</int>
- <reference key="object" ref="920829014"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">17</int>
- <reference key="object" ref="743202682"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">11</int>
- <reference key="object" ref="634417433"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">9</int>
- <reference key="object" ref="326163764"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">8</int>
- <reference key="object" ref="938256702"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">7</int>
- <reference key="object" ref="88728219"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">50</int>
- <reference key="object" ref="420136851"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>1.IBEditorWindowLastContentRect</string>
- <string>1.IBPluginDependency</string>
- <string>11.IBPluginDependency</string>
- <string>17.IBPluginDependency</string>
- <string>50.IBPluginDependency</string>
- <string>57.IBPluginDependency</string>
- <string>66.IBPluginDependency</string>
- <string>7.IBPluginDependency</string>
- <string>7.IBViewBoundsToFrameTransform</string>
- <string>70.IBPluginDependency</string>
- <string>72.IBPluginDependency</string>
- <string>75.IBPluginDependency</string>
- <string>8.IBPluginDependency</string>
- <string>9.CustomClassName</string>
- <string>9.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>MapConfigViewController</string>
- <string>UIResponder</string>
- <string>{{288, 236}, {1024, 768}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABENUAAw0IAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>MapPreviewButtonView</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">119</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">MapConfigViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>mapButtonPressed</string>
- <string>segmentedControlChanged:</string>
- <string>sliderChanged:</string>
- <string>sliderEndedChanging:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>mapButtonPressed</string>
- <string>segmentedControlChanged:</string>
- <string>sliderChanged:</string>
- <string>sliderEndedChanging:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBActionInfo">
- <string key="name">buttonPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">mapButtonPressed</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">segmentedControlChanged:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">sliderChanged:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">sliderEndedChanging:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="outlets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>maxLabel</string>
- <string>previewButton</string>
- <string>segmentedControl</string>
- <string>sizeLabel</string>
- <string>slider</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>UILabel</string>
- <string>MapPreviewButtonView</string>
- <string>UISegmentedControl</string>
- <string>UILabel</string>
- <string>UISlider</string>
- <string>UITableView</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>maxLabel</string>
- <string>previewButton</string>
- <string>segmentedControl</string>
- <string>sizeLabel</string>
- <string>slider</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBToOneOutletInfo">
- <string key="name">maxLabel</string>
- <string key="candidateClassName">UILabel</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">previewButton</string>
- <string key="candidateClassName">MapPreviewButtonView</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">segmentedControl</string>
- <string key="candidateClassName">UISegmentedControl</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">sizeLabel</string>
- <string key="candidateClassName">UILabel</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">slider</string>
- <string key="candidateClassName">UISlider</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">tableView</string>
- <string key="candidateClassName">UITableView</string>
- </object>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/MapConfigViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">MapPreviewButtonView</string>
- <string key="superclassName">UIButton</string>
- <object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">delegate</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">delegate</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">delegate</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/MapPreviewButtonView.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="567455553">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIButton</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="567455553"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIScrollView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISegmentedControl</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISlider</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISlider.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UITableView</string>
- <string key="superclassName">UIScrollView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3000" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>backButton.png</string>
- <string>background.png</string>
- <string>helpButton.png</string>
- <string>startGameButton.png</string>
- <string>title.png</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{64, 64}</string>
- <string>{1024, 768}</string>
- <string>{64, 64}</string>
- <string>{142, 64}</string>
- <string>{270, 150}</string>
- </object>
- </object>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,949 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10K540</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.36</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">274</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIImageView" id="574494641">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrameSize">{480, 276}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">background~iphone.png</string>
- </object>
- </object>
- <object class="IBUISegmentedControl" id="88728219">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{9, 14}, {270, 30}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBSegmentControlStyle">2</int>
- <int key="IBNumberOfSegments">4</int>
- <int key="IBSelectedSegmentIndex">1</int>
- <object class="NSArray" key="IBSegmentTitles">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>Random</string>
- <string>Map</string>
- <string>Maze</string>
- <string>Mission</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentWidths">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- <real value="0.0"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentEnabledStates">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- <boolean value="YES"/>
- </object>
- <object class="NSMutableArray" key="IBSegmentContentOffsets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- <string>{0, 0}</string>
- </object>
- <object class="NSMutableArray" key="IBSegmentImages">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSNull" id="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- <reference ref="4"/>
- </object>
- <object class="NSColor" key="IBTintColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
- </object>
- </object>
- <object class="IBUISlider" id="938256702">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{119, 207}, {149, 23}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <float key="IBUIValue">0.05000000074505806</float>
- <float key="IBUIMaxValue">0.05000000074505806</float>
- </object>
- <object class="IBUIButton" id="326163764">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{16, 58}, {256, 128}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">15</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUIHighlightedTitleColor" id="437070330">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleShadowColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC41AA</bytes>
- </object>
- </object>
- <object class="IBUILabel" id="634417433">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{58, 221}, {48, 35}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">...</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">17</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45NDkwMTk2NzA1IDAuNzY4NjI3NTI0NCAwAA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="743202682">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{109, 237}, {169, 29}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Label</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Oblique</string>
- <double key="NSSize">22</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45NDExNzY1MzM3IDAuODE1Njg2MzQ1MSAwAA</bytes>
- </object>
- <nil key="IBUIHighlightedColor"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUITableView" id="565214171">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">274</int>
- <string key="NSFrame">{{284, 0}, {196, 276}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MCAwAA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <bool key="IBUIBouncesZoom">NO</bool>
- <int key="IBUIStyle">1</int>
- <int key="IBUISeparatorStyle">2</int>
- <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
- <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
- <float key="IBUIRowHeight">44</float>
- <float key="IBUISectionHeaderHeight">10</float>
- <float key="IBUISectionFooterHeight">10</float>
- </object>
- <object class="IBUILabel" id="32436512">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">292</int>
- <string key="NSFrame">{{-9, 225}, {92, 27}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Max</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-BoldOblique</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC45NDkwMTk2NzA1IDAuNzY4NjI3NTI0NCAwAA</bytes>
- </object>
- <reference key="IBUIHighlightedColor" ref="437070330"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- </object>
- <string key="NSFrameSize">{480, 276}</string>
- <reference key="NSSuperview"/>
- <reference key="IBUIBackgroundColor" ref="437070330"/>
- <object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics"/>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">previewButton</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="326163764"/>
- </object>
- <int key="connectionID">13</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">maxLabel</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="634417433"/>
- </object>
- <int key="connectionID">16</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">sizeLabel</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="743202682"/>
- </object>
- <int key="connectionID">18</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">sliderChanged:</string>
- <reference key="source" ref="938256702"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">13</int>
- </object>
- <int key="connectionID">19</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">sliderEndedChanging:</string>
- <reference key="source" ref="938256702"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">20</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">segmentedControl</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="88728219"/>
- </object>
- <int key="connectionID">21</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">segmentedControlChanged:</string>
- <reference key="source" ref="88728219"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">13</int>
- </object>
- <int key="connectionID">22</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">slider</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="938256702"/>
- </object>
- <int key="connectionID">23</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">dataSource</string>
- <reference key="source" ref="565214171"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">26</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="565214171"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">27</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">tableView</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="565214171"/>
- </object>
- <int key="connectionID">32</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">mapButtonPressed</string>
- <reference key="source" ref="326163764"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">33</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="326163764"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">34</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="326163764"/>
- <reference ref="565214171"/>
- <reference ref="938256702"/>
- <reference ref="743202682"/>
- <reference ref="574494641"/>
- <reference ref="88728219"/>
- <reference ref="634417433"/>
- <reference ref="32436512"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">7</int>
- <reference key="object" ref="88728219"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">8</int>
- <reference key="object" ref="938256702"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">9</int>
- <reference key="object" ref="326163764"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">11</int>
- <reference key="object" ref="634417433"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">17</int>
- <reference key="object" ref="743202682"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">25</int>
- <reference key="object" ref="565214171"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">Table View (Themes)</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">35</int>
- <reference key="object" ref="574494641"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">36</int>
- <reference key="object" ref="32436512"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>1.IBEditorWindowLastContentRect</string>
- <string>1.IBPluginDependency</string>
- <string>11.IBPluginDependency</string>
- <string>11.IBViewBoundsToFrameTransform</string>
- <string>17.IBPluginDependency</string>
- <string>17.IBViewBoundsToFrameTransform</string>
- <string>25.IBPluginDependency</string>
- <string>25.IBViewBoundsToFrameTransform</string>
- <string>35.IBPluginDependency</string>
- <string>35.IBViewBoundsToFrameTransform</string>
- <string>36.IBPluginDependency</string>
- <string>36.IBViewBoundsToFrameTransform</string>
- <string>7.IBPluginDependency</string>
- <string>7.IBViewBoundsToFrameTransform</string>
- <string>8.IBPluginDependency</string>
- <string>9.CustomClassName</string>
- <string>9.IBPluginDependency</string>
- <string>9.IBViewBoundsToFrameTransform</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>MapConfigViewController</string>
- <string>UIResponder</string>
- <string>{{790, 298}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABB+AAAw4QAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABCyAAAw2YAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDjgAAw4kAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw4kAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBMAAAw2gAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBUAAAwigAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>MapPreviewButtonView</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABBUAAAwxIAAA</bytes>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">36</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">MapConfigViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>mapButtonPressed</string>
- <string>segmentedControlChanged:</string>
- <string>sliderChanged:</string>
- <string>sliderEndedChanging:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>mapButtonPressed</string>
- <string>segmentedControlChanged:</string>
- <string>sliderChanged:</string>
- <string>sliderEndedChanging:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBActionInfo">
- <string key="name">buttonPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">mapButtonPressed</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">segmentedControlChanged:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">sliderChanged:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">sliderEndedChanging:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="outlets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>maxLabel</string>
- <string>previewButton</string>
- <string>segmentedControl</string>
- <string>sizeLabel</string>
- <string>slider</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>UILabel</string>
- <string>MapPreviewButtonView</string>
- <string>UISegmentedControl</string>
- <string>UILabel</string>
- <string>UISlider</string>
- <string>UITableView</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>maxLabel</string>
- <string>previewButton</string>
- <string>segmentedControl</string>
- <string>sizeLabel</string>
- <string>slider</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBToOneOutletInfo">
- <string key="name">maxLabel</string>
- <string key="candidateClassName">UILabel</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">previewButton</string>
- <string key="candidateClassName">MapPreviewButtonView</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">segmentedControl</string>
- <string key="candidateClassName">UISegmentedControl</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">sizeLabel</string>
- <string key="candidateClassName">UILabel</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">slider</string>
- <string key="candidateClassName">UISlider</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">tableView</string>
- <string key="candidateClassName">UITableView</string>
- </object>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/MapConfigViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">MapPreviewButtonView</string>
- <string key="superclassName">UIButton</string>
- <object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">delegate</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">delegate</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">delegate</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/MapPreviewButtonView.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="567455553">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIButton</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="567455553"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIScrollView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISegmentedControl</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISegmentedControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISlider</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISlider.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UITableView</string>
- <string key="superclassName">UIScrollView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3000" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <string key="NS.key.0">background~iphone.png</string>
- <string key="NS.object.0">{480, 320}</string>
- </object>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/OverlayViewController.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1014 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10H574</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">274</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIButton" id="584263820">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">268</int>
- <string key="NSFrame">{{0, 229}, {50, 50}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <object class="NSFont" key="IBUIFont" id="969592940">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">15</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUIHighlightedTitleColor" id="708011311">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleShadowColor" id="280149554">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC41AA</bytes>
- </object>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">arrowLeft.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="123494776">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">268</int>
- <string key="NSFrame">{{87, 229}, {50, 50}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">1</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">arrowRight.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="590902961">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">265</int>
- <string key="NSFrame">{{412, 236}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">5</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">joyButtonBackJump.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="132251648">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">265</int>
- <string key="NSFrame">{{365, 203}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">6</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">joyButtonForwardJump.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="752933969">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">265</int>
- <string key="NSFrame">{{354, 256}, {64, 64}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">4</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">joyButtonAttack.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="261686746">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">268</int>
- <string key="NSFrame">{{44, 187}, {50, 50}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">2</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">arrowUp.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="81315603">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">268</int>
- <string key="NSFrame">{{44, 270}, {50, 50}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">3</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">arrowDown.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="309477778">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">289</int>
- <string key="NSFrame">{{341, 0}, {64, 50}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">10</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">cornerButton.png</string>
- </object>
- </object>
- <object class="IBUIButton" id="50885250">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">289</int>
- <string key="NSFrame">{{402, 0}, {78, 50}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <int key="IBUITag">11</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="969592940"/>
- <reference key="IBUIHighlightedTitleColor" ref="708011311"/>
- <object class="NSColor" key="IBUINormalTitleColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
- </object>
- <reference key="IBUINormalTitleShadowColor" ref="280149554"/>
- <object class="NSCustomResource" key="IBUINormalImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">ammoButton.png</string>
- </object>
- </object>
- </object>
- <string key="NSFrameSize">{480, 320}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MSAwAA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="584263820"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">1</int>
- </object>
- <int key="connectionID">8</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="584263820"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">9</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="584263820"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">10</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="584263820"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">8</int>
- </object>
- <int key="connectionID">11</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="123494776"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">8</int>
- </object>
- <int key="connectionID">13</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="123494776"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">14</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="123494776"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">1</int>
- </object>
- <int key="connectionID">15</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="123494776"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">16</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="261686746"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">18</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="261686746"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">1</int>
- </object>
- <int key="connectionID">19</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="261686746"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">8</int>
- </object>
- <int key="connectionID">20</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="261686746"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">21</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="81315603"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">8</int>
- </object>
- <int key="connectionID">23</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="81315603"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">24</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="81315603"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">1</int>
- </object>
- <int key="connectionID">25</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="81315603"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">26</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="590902961"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">44</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="590902961"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">1</int>
- </object>
- <int key="connectionID">45</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="590902961"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">8</int>
- </object>
- <int key="connectionID">46</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="590902961"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">47</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="752933969"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">8</int>
- </object>
- <int key="connectionID">49</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="752933969"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">50</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="752933969"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">51</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="752933969"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">1</int>
- </object>
- <int key="connectionID">52</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="132251648"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">54</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="132251648"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">55</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="132251648"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">1</int>
- </object>
- <int key="connectionID">56</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="132251648"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">8</int>
- </object>
- <int key="connectionID">57</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="309477778"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">60</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="50885250"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">68</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="50885250"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">9</int>
- </object>
- <int key="connectionID">69</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="590902961"/>
- <reference ref="81315603"/>
- <reference ref="584263820"/>
- <reference ref="261686746"/>
- <reference ref="123494776"/>
- <reference ref="132251648"/>
- <reference ref="752933969"/>
- <reference ref="50885250"/>
- <reference ref="309477778"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">4</int>
- <reference key="object" ref="584263820"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">left</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">12</int>
- <reference key="object" ref="123494776"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">right</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">17</int>
- <reference key="object" ref="261686746"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">up</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">22</int>
- <reference key="object" ref="81315603"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">down</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">43</int>
- <reference key="object" ref="590902961"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">push2</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">48</int>
- <reference key="object" ref="752933969"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">push1</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">53</int>
- <reference key="object" ref="132251648"/>
- <reference key="parent" ref="191373211"/>
- <string key="objectName">push3</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">58</int>
- <reference key="object" ref="309477778"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">67</int>
- <reference key="object" ref="50885250"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>1.IBEditorWindowLastContentRect</string>
- <string>1.IBPluginDependency</string>
- <string>12.IBPluginDependency</string>
- <string>12.IBViewBoundsToFrameTransform</string>
- <string>17.IBPluginDependency</string>
- <string>22.IBPluginDependency</string>
- <string>4.IBPluginDependency</string>
- <string>43.IBPluginDependency</string>
- <string>48.IBPluginDependency</string>
- <string>53.IBPluginDependency</string>
- <string>58.IBPluginDependency</string>
- <string>67.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>OverlayViewController</string>
- <string>UIResponder</string>
- <string>{{690, 375}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABCkAAAw5SAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">72</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">OverlayViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>buttonReleased:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>buttonReleased:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBActionInfo">
- <string key="name">buttonPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">buttonReleased:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/OverlayViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="917531033">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIButton</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="917531033"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>ammoButton.png</string>
- <string>arrowDown.png</string>
- <string>arrowLeft.png</string>
- <string>arrowRight.png</string>
- <string>arrowUp.png</string>
- <string>cornerButton.png</string>
- <string>joyButtonAttack.png</string>
- <string>joyButtonBackJump.png</string>
- <string>joyButtonForwardJump.png</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>{78, 50}</string>
- <string>{50, 50}</string>
- <string>{50, 50}</string>
- <string>{50, 50}</string>
- <string>{50, 50}</string>
- <string>{60, 50}</string>
- <string>{64, 64}</string>
- <string>{64, 64}</string>
- <string>{64, 64}</string>
- </object>
- </object>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/RestoreViewController-iPad.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,616 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10K549</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.36</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">274</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIButton" id="155385540">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">302</int>
- <string key="NSFrame">{{84, 517}, {151, 37}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <object class="NSFont" key="IBUIFont" id="204967016">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">15</double>
- <int key="NSfFlags">16</int>
- </object>
- <int key="IBUIButtonType">1</int>
- <string key="IBUINormalTitle">Dismiss</string>
- <object class="NSColor" key="IBUIHighlightedTitleColor" id="790402446">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleColor" id="829178890">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAuNTAxOTYwODE0AA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleShadowColor" id="644451038">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC41AA</bytes>
- </object>
- </object>
- <object class="IBUIButton" id="202794507">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">299</int>
- <string key="NSFrame">{{308, 517}, {151, 37}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <int key="IBUITag">1</int>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="204967016"/>
- <int key="IBUIButtonType">1</int>
- <string key="IBUINormalTitle">Restore</string>
- <reference key="IBUIHighlightedTitleColor" ref="790402446"/>
- <reference key="IBUINormalTitleColor" ref="829178890"/>
- <reference key="IBUINormalTitleShadowColor" ref="644451038"/>
- </object>
- <object class="IBUILabel" id="655269955">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">315</int>
- <string key="NSFrame">{{216, 35}, {108, 29}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Hmm...</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">24</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MSAwLjc4MDM5MjIyOTYgMAA</bytes>
- </object>
- <reference key="IBUIHighlightedColor" ref="790402446"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="19933541">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">307</int>
- <string key="NSFrame">{{80, 375}, {380, 96}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">Would you like to restore it?</string>
- <object class="NSFont" key="IBUIFont" id="276115526">
- <string key="NSName">Helvetica</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
- </object>
- <reference key="IBUIHighlightedColor" ref="790402446"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">4</int>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="151967545">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">307</int>
- <string key="NSFrame">{{80, 87}, {380, 96}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <string key="IBUIText">It appears you didn't complete your last game!</string>
- <reference key="IBUIFont" ref="276115526"/>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
- </object>
- <reference key="IBUIHighlightedColor" ref="790402446"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">4</int>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUIImageView" id="129485928">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">300</int>
- <string key="NSFrame">{{150, 191}, {240, 160}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">denied.png</string>
- </object>
- </object>
- </object>
- <string key="NSFrameSize">{540, 640}</string>
- <reference key="NSSuperview"/>
- <reference key="IBUIBackgroundColor" ref="790402446"/>
- <int key="IBUIContentMode">4</int>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="155385540"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">21</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="202794507"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">22</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="155385540"/>
- <reference ref="202794507"/>
- <reference ref="655269955"/>
- <reference ref="19933541"/>
- <reference ref="151967545"/>
- <reference ref="129485928"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">15</int>
- <reference key="object" ref="155385540"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">16</int>
- <reference key="object" ref="202794507"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">18</int>
- <reference key="object" ref="655269955"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">19</int>
- <reference key="object" ref="19933541"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">20</int>
- <reference key="object" ref="129485928"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">23</int>
- <reference key="object" ref="151967545"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>1.IBEditorWindowLastContentRect</string>
- <string>1.IBPluginDependency</string>
- <string>15.IBPluginDependency</string>
- <string>15.IBViewBoundsToFrameTransform</string>
- <string>16.IBPluginDependency</string>
- <string>16.IBViewBoundsToFrameTransform</string>
- <string>18.IBPluginDependency</string>
- <string>18.IBViewBoundsToFrameTransform</string>
- <string>19.IBPluginDependency</string>
- <string>19.IBViewBoundsToFrameTransform</string>
- <string>20.IBPluginDependency</string>
- <string>20.IBViewBoundsToFrameTransform</string>
- <string>23.IBPluginDependency</string>
- <string>23.IBViewBoundsToFrameTransform</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>RestoreViewController</string>
- <string>UIResponder</string>
- <string>{{566, 244}, {540, 640}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDlIAAw2gAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABEAkAAw2gAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDXAAAw3UAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AUKgAABDmYAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABDFgAAw8cAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABCoAAAw9uAAA</bytes>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">23</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">RestoreViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">buttonReleased:</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">buttonReleased:</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">buttonReleased:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/RestoreViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="749404015">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIButton</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="749404015"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3000" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <string key="NS.key.0">denied.png</string>
- <string key="NS.object.0">{240, 160}</string>
- </object>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/RestoreViewController-iPhone.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,582 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10K549</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.36</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">274</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIImageView" id="508553704">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">300</int>
- <string key="NSFrame">{{20, 20}, {240, 160}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSCustomResource" key="IBUIImage">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">denied.png</string>
- </object>
- </object>
- <object class="IBUILabel" id="531154203">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">315</int>
- <string key="NSFrame">{{310, 32}, {108, 29}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">Hmm...</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">24</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MSAwLjgyNzQ1MTA1MDMgMAA</bytes>
- </object>
- <object class="NSColor" key="IBUIHighlightedColor" id="790402446">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUILabel" id="785455561">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">307</int>
- <string key="NSFrame">{{268, 74}, {192, 96}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <int key="IBUIContentMode">7</int>
- <bool key="IBUIUserInteractionEnabled">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <string key="IBUIText">It appears you didn't complete your last game! Would you like to restore it?</string>
- <object class="NSFont" key="IBUIFont">
- <string key="NSName">Helvetica</string>
- <double key="NSSize">18</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSColor" key="IBUITextColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
- </object>
- <reference key="IBUIHighlightedColor" ref="790402446"/>
- <int key="IBUIBaselineAdjustment">1</int>
- <float key="IBUIMinimumFontSize">10</float>
- <int key="IBUINumberOfLines">4</int>
- <int key="IBUITextAlignment">1</int>
- </object>
- <object class="IBUIButton" id="472385208">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">302</int>
- <string key="NSFrame">{{53, 229}, {151, 37}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <object class="NSFont" key="IBUIFont" id="204967016">
- <string key="NSName">Helvetica-Bold</string>
- <double key="NSSize">15</double>
- <int key="NSfFlags">16</int>
- </object>
- <int key="IBUIButtonType">1</int>
- <string key="IBUINormalTitle">Dismiss</string>
- <reference key="IBUIHighlightedTitleColor" ref="790402446"/>
- <object class="NSColor" key="IBUINormalTitleColor" id="734262812">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAuNTAxOTYwODE0AA</bytes>
- </object>
- <object class="NSColor" key="IBUINormalTitleShadowColor" id="644451038">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC41AA</bytes>
- </object>
- </object>
- <object class="IBUIButton" id="923913762">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">299</int>
- <string key="NSFrame">{{277, 229}, {151, 37}}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <bool key="IBUIOpaque">NO</bool>
- <int key="IBUITag">1</int>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <int key="IBUIContentHorizontalAlignment">0</int>
- <int key="IBUIContentVerticalAlignment">0</int>
- <reference key="IBUIFont" ref="204967016"/>
- <int key="IBUIButtonType">1</int>
- <string key="IBUINormalTitle">Restore</string>
- <reference key="IBUIHighlightedTitleColor" ref="790402446"/>
- <reference key="IBUINormalTitleColor" ref="734262812"/>
- <reference key="IBUINormalTitleShadowColor" ref="644451038"/>
- </object>
- </object>
- <string key="NSFrameSize">{480, 320}</string>
- <reference key="NSSuperview"/>
- <reference key="IBUIBackgroundColor" ref="790402446"/>
- <int key="IBUIContentMode">4</int>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="923913762"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">11</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonReleased:</string>
- <reference key="source" ref="472385208"/>
- <reference key="destination" ref="372490531"/>
- <int key="IBEventType">7</int>
- </object>
- <int key="connectionID">12</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="508553704"/>
- <reference ref="923913762"/>
- <reference ref="785455561"/>
- <reference ref="531154203"/>
- <reference ref="472385208"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">5</int>
- <reference key="object" ref="508553704"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">6</int>
- <reference key="object" ref="531154203"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">7</int>
- <reference key="object" ref="785455561"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">8</int>
- <reference key="object" ref="472385208"/>
- <reference key="parent" ref="191373211"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">10</int>
- <reference key="object" ref="923913762"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>1.IBEditorWindowLastContentRect</string>
- <string>1.IBPluginDependency</string>
- <string>10.IBPluginDependency</string>
- <string>10.IBViewBoundsToFrameTransform</string>
- <string>5.IBPluginDependency</string>
- <string>5.IBViewBoundsToFrameTransform</string>
- <string>6.IBPluginDependency</string>
- <string>6.IBViewBoundsToFrameTransform</string>
- <string>7.IBPluginDependency</string>
- <string>7.IBViewBoundsToFrameTransform</string>
- <string>8.IBPluginDependency</string>
- <string>8.IBViewBoundsToFrameTransform</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>RestoreViewController</string>
- <string>UIResponder</string>
- <string>{{206, 423}, {480, 320}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AUOKgABDZQAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AUGgAABBoAAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AUObAABCAAAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AUOGAABClAAAA</bytes>
- </object>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <object class="NSAffineTransform">
- <bytes key="NSTransformStruct">AUJUAABDZQAAA</bytes>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">14</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">RestoreViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">buttonReleased:</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">buttonReleased:</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">buttonReleased:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/RestoreViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="749404015">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIButton</string>
- <string key="superclassName">UIControl</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIControl</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIImageView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UILabel</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="749404015"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3000" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
- <string key="NS.key.0">denied.png</string>
- <string key="NS.object.0">{240, 160}</string>
- </object>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/SavedGamesViewController.xib Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,574 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10K549</string>
- <string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.36</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">132</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="4"/>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBProxyObject" id="606714003">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- <object class="IBUIView" id="766721923">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIToolbar" id="832454237">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">290</int>
- <string key="NSFrameSize">{768, 44}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <int key="IBUITag">458912</int>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableArray" key="IBUIItems">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBUIBarButtonItem" id="422926197">
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIStyle">1</int>
- <reference key="IBUIToolbar" ref="832454237"/>
- <int key="IBUISystemItemIdentifier">0</int>
- </object>
- <object class="IBUIBarButtonItem" id="881124109">
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <reference key="IBUIToolbar" ref="832454237"/>
- <int key="IBUISystemItemIdentifier">5</int>
- </object>
- <object class="IBUIBarButtonItem" id="882246004">
- <int key="IBUITag">1</int>
- <string key="IBUITitle">Clear All</string>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <int key="IBUIStyle">1</int>
- <reference key="IBUIToolbar" ref="832454237"/>
- </object>
- </object>
- </object>
- <object class="IBUITableView" id="399289716">
- <reference key="NSNextResponder" ref="766721923"/>
- <int key="NSvFlags">274</int>
- <string key="NSFrame">{{0, 44}, {768, 724}}</string>
- <reference key="NSSuperview" ref="766721923"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAgMAA</bytes>
- </object>
- <bool key="IBUIClipsSubviews">YES</bool>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- <bool key="IBUIAlwaysBounceVertical">YES</bool>
- <int key="IBUIStyle">1</int>
- <int key="IBUISeparatorStyle">2</int>
- <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
- <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
- <float key="IBUIRowHeight">44</float>
- <float key="IBUISectionHeaderHeight">10</float>
- <float key="IBUISectionFooterHeight">10</float>
- </object>
- </object>
- <string key="NSFrameSize">{768, 768}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
- <int key="interfaceOrientation">3</int>
- </object>
- <string key="targetRuntimeIdentifier">IBIPadFramework</string>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="766721923"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="422926197"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">6</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">dataSource</string>
- <reference key="source" ref="399289716"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">8</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="399289716"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">9</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">tableView</string>
- <reference key="source" ref="841351856"/>
- <reference key="destination" ref="399289716"/>
- </object>
- <int key="connectionID">10</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchEventConnection" key="connection">
- <string key="label">buttonPressed:</string>
- <reference key="source" ref="882246004"/>
- <reference key="destination" ref="841351856"/>
- </object>
- <int key="connectionID">17</int>
- </object>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <reference key="object" ref="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="841351856"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="606714003"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2</int>
- <reference key="object" ref="766721923"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="832454237"/>
- <reference ref="399289716"/>
- </object>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">4</int>
- <reference key="object" ref="832454237"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="422926197"/>
- <reference ref="881124109"/>
- <reference ref="882246004"/>
- </object>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">5</int>
- <reference key="object" ref="422926197"/>
- <reference key="parent" ref="832454237"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">7</int>
- <reference key="object" ref="399289716"/>
- <reference key="parent" ref="766721923"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">13</int>
- <reference key="object" ref="881124109"/>
- <reference key="parent" ref="832454237"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">15</int>
- <reference key="object" ref="882246004"/>
- <reference key="parent" ref="832454237"/>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>13.IBPluginDependency</string>
- <string>15.IBPluginDependency</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>4.IBPluginDependency</string>
- <string>5.IBPluginDependency</string>
- <string>7.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>SavedGamesViewController</string>
- <string>UIResponder</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>{{467, 276}, {768, 768}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">17</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">SavedGamesViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>clearAll:</string>
- <string>toggleEdit:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>buttonPressed:</string>
- <string>clearAll:</string>
- <string>toggleEdit:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBActionInfo">
- <string key="name">buttonPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">clearAll:</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBActionInfo">
- <string key="name">toggleEdit:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">tableView</string>
- <string key="NS.object.0">UITableView</string>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">tableView</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">tableView</string>
- <string key="candidateClassName">UITableView</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/SavedGamesViewController.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarButtonItem</string>
- <string key="superclassName">UIBarItem</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarItem</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="786211723"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIScrollView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UITableView</string>
- <string key="superclassName">UIScrollView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIToolbar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
- <integer value="1056" key="NS.object.0"/>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">132</string>
- </data>
-</archive>
--- a/project_files/HedgewarsMobile/Resources/Settings/Teams/Ninjas.plist Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>flag</key>
- <string>japan</string>
- <key>fort</key>
- <string>Plane</string>
- <key>grave</key>
- <string>bp2</string>
- <key>hash</key>
- <string>0</string>
- <key>hedgehogs</key>
- <array>
- <dict>
- <key>hat</key>
- <string>NinjaFull</string>
- <key>hogname</key>
- <string>Ukemi</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>NinjaStraight</string>
- <key>hogname</key>
- <string>Godai</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>NinjaTriangle</string>
- <key>hogname</key>
- <string>Ninpo</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>NinjaStraight</string>
- <key>hogname</key>
- <string>Shinobi</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>NinjaFull</string>
- <key>hogname</key>
- <string>Tatsujin</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>NinjaTriangle</string>
- <key>hogname</key>
- <string>Arashi</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>NinjaStraight</string>
- <key>hogname</key>
- <string>Bushi</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>NinjaFull</string>
- <key>hogname</key>
- <string>Itami</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- </array>
- <key>voicepack</key>
- <string>Default</string>
-</dict>
-</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Teams/Pirates.plist Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>flag</key>
- <string>cm_pirate</string>
- <key>fort</key>
- <string>Plane</string>
- <key>grave</key>
- <string>chest</string>
- <key>hash</key>
- <string>0</string>
- <key>hedgehogs</key>
- <array>
- <dict>
- <key>hat</key>
- <string>pirate_jack_bandana</string>
- <key>hogname</key>
- <string>Toothless Wayne</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>pirate_jack</string>
- <key>hogname</key>
- <string>Long-nose Kidd</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>dwarf</string>
- <key>hogname</key>
- <string>Eye-patch Jim</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>pirate_jack</string>
- <key>hogname</key>
- <string>Rackham Blood</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>dwarf</string>
- <key>hogname</key>
- <string>One-eyed Ayee</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>pirate_jack_bandana</string>
- <key>hogname</key>
- <string>Dirty Ben</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>pirate_jack</string>
- <key>hogname</key>
- <string>Morris</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>dwarf</string>
- <key>hogname</key>
- <string>Cruise Seymour</string>
- <key>level</key>
- <integer>0</integer>
- </dict>
- </array>
- <key>voicepack</key>
- <string>Pirate</string>
-</dict>
-</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Teams/Robots.plist Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>flag</key>
- <string>cm_binary</string>
- <key>fort</key>
- <string>UFO</string>
- <key>grave</key>
- <string>Rip</string>
- <key>hash</key>
- <string>0</string>
- <key>hedgehogs</key>
- <array>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>HAL</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>R2-D2</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>Wall-E</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>Robocob</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>Optimus Prime</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>C-3PO</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>Terminator</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- <dict>
- <key>hat</key>
- <string>cyborg</string>
- <key>hogname</key>
- <string>KITT</string>
- <key>level</key>
- <integer>4</integer>
- </dict>
- </array>
- <key>voicepack</key>
- <string>Robot</string>
-</dict>
-</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/basicFlags.plist Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,270 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<array>
- <dict>
- <key>default</key>
- <integer>100</integer>
- <key>image</key>
- <string>Health</string>
- <key>max</key>
- <integer>200</integer>
- <key>min</key>
- <integer>50</integer>
- <key>title</key>
- <string>Initial Health</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$damagepct</string>
- <key>default</key>
- <integer>100</integer>
- <key>image</key>
- <string>Damage</string>
- <key>max</key>
- <integer>300</integer>
- <key>min</key>
- <integer>10</integer>
- <key>title</key>
- <string>Damage Modifier</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <true/>
- <key>times1000</key>
- <true/>
- <key>command</key>
- <string>e$turntime</string>
- <key>default</key>
- <integer>45</integer>
- <key>image</key>
- <string>Time</string>
- <key>max</key>
- <integer>100</integer>
- <key>min</key>
- <integer>1</integer>
- <key>title</key>
- <string>Turn Time</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <true/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$sd_turns</string>
- <key>default</key>
- <integer>15</integer>
- <key>image</key>
- <string>SuddenDeath</string>
- <key>max</key>
- <integer>50</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Sudden Death Timeout</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$waterrise</string>
- <key>default</key>
- <integer>47</integer>
- <key>image</key>
- <string>SuddenDeath</string>
- <key>max</key>
- <integer>100</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Water Rise Amount</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$healthdec</string>
- <key>default</key>
- <integer>5</integer>
- <key>image</key>
- <string>SuddenDeath</string>
- <key>max</key>
- <integer>100</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Health Decrease</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$ropepct</string>
- <key>default</key>
- <integer>100</integer>
- <key>image</key>
- <string>Rope</string>
- <key>max</key>
- <integer>999</integer>
- <key>min</key>
- <integer>25</integer>
- <key>title</key>
- <string>Rope Length (%)</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$casefreq</string>
- <key>default</key>
- <integer>5</integer>
- <key>image</key>
- <string>Box</string>
- <key>max</key>
- <integer>9</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Crate Drop Turns</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$healthprob</string>
- <key>default</key>
- <integer>35</integer>
- <key>image</key>
- <string>Health</string>
- <key>max</key>
- <integer>100</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Health Kit Probability (%)</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$hcaseamount</string>
- <key>default</key>
- <integer>25</integer>
- <key>image</key>
- <string>Health</string>
- <key>max</key>
- <integer>200</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Health Amount in Kit</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <true/>
- <key>command</key>
- <string>e$minestime</string>
- <key>default</key>
- <integer>3</integer>
- <key>image</key>
- <string>Time</string>
- <key>max</key>
- <integer>5</integer>
- <key>min</key>
- <integer>-1</integer>
- <key>title</key>
- <string>Mines Time</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$minesnum</string>
- <key>default</key>
- <integer>4</integer>
- <key>image</key>
- <string>Mine</string>
- <key>max</key>
- <integer>80</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Mines Number</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$minedudpct</string>
- <key>default</key>
- <integer>0</integer>
- <key>image</key>
- <string>Dud</string>
- <key>max</key>
- <integer>100</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Dud Mines Probability (%)</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$explosives</string>
- <key>default</key>
- <integer>2</integer>
- <key>image</key>
- <string>Damage</string>
- <key>max</key>
- <integer>40</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Explosives</string>
- </dict>
- <dict>
- <key>checkOverMax</key>
- <false/>
- <key>times1000</key>
- <false/>
- <key>command</key>
- <string>e$getawaytime</string>
- <key>default</key>
- <integer>100</integer>
- <key>image</key>
- <string>Time</string>
- <key>max</key>
- <integer>999</integer>
- <key>min</key>
- <integer>0</integer>
- <key>title</key>
- <string>Get Away Time (%)</string>
- </dict>
-</array>
-</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/credits.plist Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<array>
- <array>
- <string>Andrey "UnC0Rr" Korotaev</string>
- <string>Igor "Displacer" Ulyanov</string>
- <string>Derek "Nemo" Pomery</string>
- <string>Martin "Affect" Boze</string>
- <string>David "Krawek" Cuadrado</string>
- <string>Martin "Ttsmj" Minarik</string>
- <string>Kristian "TheXception" Lehmann</string>
- <string>Vittorio "Koda" Giovara</string>
- <string>Mario "Smaxx" Liebisch</string>
- <string>Carlos "Palewolf" Vives</string>
- <string>Richard "Sheepluva" Korlyi</string>
- <string>Henning "Prg" Kühn</string>
- <string>Henrik "Henek" Rostedt</string>
- <string>John "Mikade" Lambert</string>
- <string>Mayur "Zorg" Pawashe</string>
- <string>Richard "Xeli" Deurwaarder</string>
- </array>
- <array>
- <string>John "Fizzy" Dum</string>
- <string>Joshua Frese</string>
- <string>Stanko Tadić</string>
- <string>Julien Koesten</string>
- <string>Joshua O'Sullivan</string>
- <string>Nils Luck</string>
- <string>Trey Perry</string>
- </array>
- <array>
- <string>Stephen "Armagon" Alexander</string>
- <string>John "Fizzy" Dum</string>
- <string>Jonatan Nilsson</string>
- <string>Daniel Martin</string>
- </array>
- <array>
- <string>Romulo Fernandes Machado</string>
- <string>Svetoslav Stefanov</string>
- <string>Petr ŘezáÄek</string>
- <string>Jie Luo</string>
- <string>Andrey Korotaev</string>
- <string>Nina Kuisma</string>
- <string>Antoine Turmel</string>
- <string>Peter Hüwe, Mario Liebisch, Richard Karolyi</string>
- <string>Talos Kriti</string>
- <string>Luca Bonora, Marco Bresciani</string>
- <string>Adam Etienne</string>
- <string>Anthony Bellew</string>
- <string>Lukas Urbonas</string>
- <string>Maciej Mroziński, Wojciech Latkowski, Piotr Mitana, Maciej Górny</string>
- <string>Fábio Canário</string>
- <string>Andrey Korotaev</string>
- <string>Jose Riha</string>
- <string>Carlos Vives</string>
- <string>Niklas Grahn, Henrik Rostedt</string>
- <string>Eugene V. Lyubimkin, Igor Paliychuk, Eugene Sakara</string>
- </array>
- <array>
- <string>Aleksey Andreev</string>
- <string>Aleksander Rudalev</string>
- <string>Natasha Korotaeva</string>
- <string>Adam Higerd</string>
- </array>
- <array>
- <string>Engine, frontend, net server</string>
- <string>Many desktop frontend improvements</string>
- <string>Many engine and desktop frontend improvements</string>
- <string>Drillrocket, Ballgun, RC Plane weapons</string>
- <string>Mine number and time game settings</string>
- <string>Desktop frontend improvements</string>
- <string>Desktop frontend improvements</string>
- <string>Mac OS X and iPhone version</string>
- <string>Many engine and desktop frontend improvements</string>
- <string>Gamepad and Lua integration</string>
- <string>Many engine improvements and graphics</string>
- <string>Maze maps</string>
- <string>Engine and desktop frontend improvements</string>
- <string>Lua game modes and missions</string>
- <string>Desktop frontend improvements</string>
- <string>Android port</string>
- </array>
- <array>
- <string>Main graphics</string>
- <string></string>
- <string></string>
- <string></string>
- <string></string>
- <string></string>
- <string>Some hats</string>
- </array>
- <array>
- <string>Hedgehogs voice</string>
- <string></string>
- <string></string>
- <string></string>
- </array>
- <array>
- <string>Brazilian Portuguese</string>
- <string>Bulgarian</string>
- <string>Czech</string>
- <string>Chinese</string>
- <string>English</string>
- <string>Finnish</string>
- <string>French</string>
- <string>German</string>
- <string>Greek</string>
- <string>Italian</string>
- <string>Japanese</string>
- <string>Korean</string>
- <string>Lithuanian</string>
- <string>Polish</string>
- <string>Portuguese</string>
- <string>Russian</string>
- <string>Slovak</string>
- <string>Spanish</string>
- <string>Swedish</string>
- <string>Ukrainian</string>
- </array>
- <array>
- <string></string>
- <string></string>
- <string></string>
- <string></string>
- </array>
-</array>
-</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/gameMods.plist Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<array>
- <dict>
- <key>description</key>
- <string>Land can not be destroyed</string>
- <key>image</key>
- <string>Solid</string>
- <key>title</key>
- <string>Solid Land</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Add an indestructable border around the terrain</string>
- <key>image</key>
- <string>Border</string>
- <key>title</key>
- <string>Add Border</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Teams will start on opposite sides of the terrain</string>
- <key>image</key>
- <string>TeamsDivide</string>
- <key>title</key>
- <string>Divide Team (max 2 teams)</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Lower gravity</string>
- <key>image</key>
- <string>LowGravity</string>
- <key>title</key>
- <string>Low Gravity</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Assisted aiming with laser sight</string>
- <key>image</key>
- <string>LaserSight</string>
- <key>title</key>
- <string>Laser Sight</string>
- </dict>
- <dict>
- <key>description</key>
- <string>All hogs have a personal forcefield</string>
- <key>image</key>
- <string>Invulnerable</string>
- <key>title</key>
- <string>Invulnerable</string>
- </dict>
- <dict>
- <key>description</key>
- <string>All (living) hedgehogs are fully restored at the end of turn</string>
- <key>image</key>
- <string>ResetHealth</string>
- <key>title</key>
- <string>Reset Health</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Gain 80% of the damage you do back in health</string>
- <key>image</key>
- <string>Vampiric</string>
- <key>title</key>
- <string>Vampirism Mode</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Share your opponents pain, share their damage</string>
- <key>image</key>
- <string>Karma</string>
- <key>title</key>
- <string>Karma Mode</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Your hogs are unable to move, test your aim</string>
- <key>image</key>
- <string>Artillery</string>
- <key>title</key>
- <string>Artillery Mode</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Defend your fort and destroy the opponents</string>
- <key>image</key>
- <string>Forts</string>
- <key>title</key>
- <string>Fort Mode</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Order of play is random instead of in room order</string>
- <key>image</key>
- <string>RandomOrder</string>
- <key>title</key>
- <string>Random Order</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Play with a King; when he dies, your side loses</string>
- <key>image</key>
- <string>King</string>
- <key>title</key>
- <string>King Mode</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Take turns placing your hedgehogs pre-game</string>
- <key>image</key>
- <string>PlaceHog</string>
- <key>title</key>
- <string>Place Hedgehogs</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Ammo is shared between all clan teams</string>
- <key>image</key>
- <string>SharedAmmo</string>
- <key>title</key>
- <string>Clan Shares Ammo</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Disable girders when generating random maps</string>
- <key>image</key>
- <string>DisableGirders</string>
- <key>title</key>
- <string>Disable Girders</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Disable land objects when generating maps</string>
- <key>image</key>
- <string>DisableLandObjects</string>
- <key>title</key>
- <string>Disable Land Objects</string>
- </dict>
- <dict>
- <key>description</key>
- <string>AI-controlled hogs respawn on death</string>
- <key>image</key>
- <string>AISurvival</string>
- <key>title</key>
- <string>AI Survival Mode</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Attacking does not end your turn</string>
- <key>image</key>
- <string>InfAttack</string>
- <key>title</key>
- <string>Unlimited Attacks</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Weapons are reset to starting values each turn</string>
- <key>image</key>
- <string>ResetWeps</string>
- <key>title</key>
- <string>Reset Weapons</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Each hedgehog has its own ammo</string>
- <key>image</key>
- <string>PerHogAmmo</string>
- <key>title</key>
- <string>Per Hedgehog Ammo</string>
- </dict>
- <dict>
- <key>description</key>
- <string>You will not have to worry about wind any more</string>
- <key>image</key>
- <string>NoWind</string>
- <key>title</key>
- <string>Disable Wind</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Wind will affect almost everything</string>
- <key>image</key>
- <string>MoreWind</string>
- <key>title</key>
- <string>More Wind</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Clan teams take turns sharing their time</string>
- <key>image</key>
- <string>TagTeam</string>
- <key>title</key>
- <string>Tag Team</string>
- </dict>
- <dict>
- <key>description</key>
- <string>Add an indestructible border along the bottom</string>
- <key>image</key>
- <string>BottomBorder</string>
- <key>title</key>
- <string>Bottom Border</string>
- </dict>
-</array>
-</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/basicFlags.plist Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <dict>
+ <key>default</key>
+ <integer>100</integer>
+ <key>image</key>
+ <string>Health</string>
+ <key>max</key>
+ <integer>200</integer>
+ <key>min</key>
+ <integer>50</integer>
+ <key>title</key>
+ <string>Initial Health</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$damagepct</string>
+ <key>default</key>
+ <integer>100</integer>
+ <key>image</key>
+ <string>Damage</string>
+ <key>max</key>
+ <integer>300</integer>
+ <key>min</key>
+ <integer>10</integer>
+ <key>title</key>
+ <string>Damage Modifier</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <true/>
+ <key>times1000</key>
+ <true/>
+ <key>command</key>
+ <string>e$turntime</string>
+ <key>default</key>
+ <integer>45</integer>
+ <key>image</key>
+ <string>Time</string>
+ <key>max</key>
+ <integer>100</integer>
+ <key>min</key>
+ <integer>1</integer>
+ <key>title</key>
+ <string>Turn Time</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <true/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$sd_turns</string>
+ <key>default</key>
+ <integer>15</integer>
+ <key>image</key>
+ <string>SuddenDeath</string>
+ <key>max</key>
+ <integer>50</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Sudden Death Timeout</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$waterrise</string>
+ <key>default</key>
+ <integer>47</integer>
+ <key>image</key>
+ <string>SuddenDeath</string>
+ <key>max</key>
+ <integer>100</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Water Rise Amount</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$healthdec</string>
+ <key>default</key>
+ <integer>5</integer>
+ <key>image</key>
+ <string>SuddenDeath</string>
+ <key>max</key>
+ <integer>100</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Health Decrease</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$ropepct</string>
+ <key>default</key>
+ <integer>100</integer>
+ <key>image</key>
+ <string>Rope</string>
+ <key>max</key>
+ <integer>999</integer>
+ <key>min</key>
+ <integer>25</integer>
+ <key>title</key>
+ <string>Rope Length (%)</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$casefreq</string>
+ <key>default</key>
+ <integer>5</integer>
+ <key>image</key>
+ <string>Box</string>
+ <key>max</key>
+ <integer>9</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Crate Drop Turns</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$healthprob</string>
+ <key>default</key>
+ <integer>35</integer>
+ <key>image</key>
+ <string>Health</string>
+ <key>max</key>
+ <integer>100</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Health Kit Probability (%)</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$hcaseamount</string>
+ <key>default</key>
+ <integer>25</integer>
+ <key>image</key>
+ <string>Health</string>
+ <key>max</key>
+ <integer>200</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Health Amount in Kit</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <true/>
+ <key>command</key>
+ <string>e$minestime</string>
+ <key>default</key>
+ <integer>3</integer>
+ <key>image</key>
+ <string>Time</string>
+ <key>max</key>
+ <integer>5</integer>
+ <key>min</key>
+ <integer>-1</integer>
+ <key>title</key>
+ <string>Mines Time</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$minesnum</string>
+ <key>default</key>
+ <integer>4</integer>
+ <key>image</key>
+ <string>Mine</string>
+ <key>max</key>
+ <integer>80</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Mines Number</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$minedudpct</string>
+ <key>default</key>
+ <integer>0</integer>
+ <key>image</key>
+ <string>Dud</string>
+ <key>max</key>
+ <integer>100</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Dud Mines Probability (%)</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$explosives</string>
+ <key>default</key>
+ <integer>2</integer>
+ <key>image</key>
+ <string>Damage</string>
+ <key>max</key>
+ <integer>40</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Explosives</string>
+ </dict>
+ <dict>
+ <key>checkOverMax</key>
+ <false/>
+ <key>times1000</key>
+ <false/>
+ <key>command</key>
+ <string>e$getawaytime</string>
+ <key>default</key>
+ <integer>100</integer>
+ <key>image</key>
+ <string>Time</string>
+ <key>max</key>
+ <integer>999</integer>
+ <key>min</key>
+ <integer>0</integer>
+ <key>title</key>
+ <string>Get Away Time (%)</string>
+ </dict>
+</array>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/credits.plist Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>Andrey "UnC0Rr" Korotaev</string>
+ <string>Igor "Displacer" Ulyanov</string>
+ <string>Derek "Nemo" Pomery</string>
+ <string>Martin "Affect" Boze</string>
+ <string>David "Krawek" Cuadrado</string>
+ <string>Martin "Ttsmj" Minarik</string>
+ <string>Kristian "TheXception" Lehmann</string>
+ <string>Vittorio "Koda" Giovara</string>
+ <string>Mario "Smaxx" Liebisch</string>
+ <string>Carlos "Palewolf" Vives</string>
+ <string>Richard "Sheepluva" Korlyi</string>
+ <string>Henning "Prg" Kühn</string>
+ <string>Henrik "Henek" Rostedt</string>
+ <string>John "Mikade" Lambert</string>
+ <string>Mayur "Zorg" Pawashe</string>
+ <string>Richard "Xeli" Deurwaarder</string>
+ </array>
+ <array>
+ <string>John "Fizzy" Dum</string>
+ <string>Joshua Frese</string>
+ <string>Stanko Tadić</string>
+ <string>Julien Koesten</string>
+ <string>Joshua O'Sullivan</string>
+ <string>Nils Luck</string>
+ <string>Trey Perry</string>
+ </array>
+ <array>
+ <string>Stephen "Armagon" Alexander</string>
+ <string>John "Fizzy" Dum</string>
+ <string>Jonatan Nilsson</string>
+ <string>Daniel Martin</string>
+ </array>
+ <array>
+ <string>Romulo Fernandes Machado</string>
+ <string>Svetoslav Stefanov</string>
+ <string>Petr ŘezáÄek</string>
+ <string>Jie Luo</string>
+ <string>Andrey Korotaev</string>
+ <string>Nina Kuisma</string>
+ <string>Antoine Turmel</string>
+ <string>Peter Hüwe, Mario Liebisch, Richard Karolyi</string>
+ <string>Talos Kriti</string>
+ <string>Luca Bonora, Marco Bresciani</string>
+ <string>Adam Etienne</string>
+ <string>Anthony Bellew</string>
+ <string>Lukas Urbonas</string>
+ <string>Maciej Mroziński, Wojciech Latkowski, Piotr Mitana, Maciej Górny</string>
+ <string>Fábio Canário</string>
+ <string>Andrey Korotaev</string>
+ <string>Jose Riha</string>
+ <string>Carlos Vives</string>
+ <string>Niklas Grahn, Henrik Rostedt</string>
+ <string>Eugene V. Lyubimkin, Igor Paliychuk, Eugene Sakara</string>
+ </array>
+ <array>
+ <string>Aleksey Andreev</string>
+ <string>Aleksander Rudalev</string>
+ <string>Natasha Korotaeva</string>
+ <string>Adam Higerd</string>
+ </array>
+ <array>
+ <string>Engine, frontend, net server</string>
+ <string>Many desktop frontend improvements</string>
+ <string>Many engine and desktop frontend improvements</string>
+ <string>Drillrocket, Ballgun, RC Plane weapons</string>
+ <string>Mine number and time game settings</string>
+ <string>Desktop frontend improvements</string>
+ <string>Desktop frontend improvements</string>
+ <string>Mac OS X and iPhone version</string>
+ <string>Many engine and desktop frontend improvements</string>
+ <string>Gamepad and Lua integration</string>
+ <string>Many engine improvements and graphics</string>
+ <string>Maze maps</string>
+ <string>Engine and desktop frontend improvements</string>
+ <string>Lua game modes and missions</string>
+ <string>Desktop frontend improvements</string>
+ <string>Android port</string>
+ </array>
+ <array>
+ <string>Main graphics</string>
+ <string></string>
+ <string></string>
+ <string></string>
+ <string></string>
+ <string></string>
+ <string>Some hats</string>
+ </array>
+ <array>
+ <string>Hedgehogs voice</string>
+ <string></string>
+ <string></string>
+ <string></string>
+ </array>
+ <array>
+ <string>Brazilian Portuguese</string>
+ <string>Bulgarian</string>
+ <string>Czech</string>
+ <string>Chinese</string>
+ <string>English</string>
+ <string>Finnish</string>
+ <string>French</string>
+ <string>German</string>
+ <string>Greek</string>
+ <string>Italian</string>
+ <string>Japanese</string>
+ <string>Korean</string>
+ <string>Lithuanian</string>
+ <string>Polish</string>
+ <string>Portuguese</string>
+ <string>Russian</string>
+ <string>Slovak</string>
+ <string>Spanish</string>
+ <string>Swedish</string>
+ <string>Ukrainian</string>
+ </array>
+ <array>
+ <string></string>
+ <string></string>
+ <string></string>
+ <string></string>
+ </array>
+</array>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/gameMods.plist Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <dict>
+ <key>description</key>
+ <string>Land can not be destroyed</string>
+ <key>image</key>
+ <string>Solid</string>
+ <key>title</key>
+ <string>Solid Land</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Add an indestructable border around the terrain</string>
+ <key>image</key>
+ <string>Border</string>
+ <key>title</key>
+ <string>Add Border</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Teams will start on opposite sides of the terrain</string>
+ <key>image</key>
+ <string>TeamsDivide</string>
+ <key>title</key>
+ <string>Divide Team (max 2 teams)</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Lower gravity</string>
+ <key>image</key>
+ <string>LowGravity</string>
+ <key>title</key>
+ <string>Low Gravity</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Assisted aiming with laser sight</string>
+ <key>image</key>
+ <string>LaserSight</string>
+ <key>title</key>
+ <string>Laser Sight</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>All hogs have a personal forcefield</string>
+ <key>image</key>
+ <string>Invulnerable</string>
+ <key>title</key>
+ <string>Invulnerable</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>All (living) hedgehogs are fully restored at the end of turn</string>
+ <key>image</key>
+ <string>ResetHealth</string>
+ <key>title</key>
+ <string>Reset Health</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Gain 80% of the damage you do back in health</string>
+ <key>image</key>
+ <string>Vampiric</string>
+ <key>title</key>
+ <string>Vampirism Mode</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Share your opponents pain, share their damage</string>
+ <key>image</key>
+ <string>Karma</string>
+ <key>title</key>
+ <string>Karma Mode</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Your hogs are unable to move, test your aim</string>
+ <key>image</key>
+ <string>Artillery</string>
+ <key>title</key>
+ <string>Artillery Mode</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Defend your fort and destroy the opponents</string>
+ <key>image</key>
+ <string>Forts</string>
+ <key>title</key>
+ <string>Fort Mode</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Order of play is random instead of in room order</string>
+ <key>image</key>
+ <string>RandomOrder</string>
+ <key>title</key>
+ <string>Random Order</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Play with a King; when he dies, your side loses</string>
+ <key>image</key>
+ <string>King</string>
+ <key>title</key>
+ <string>King Mode</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Take turns placing your hedgehogs pre-game</string>
+ <key>image</key>
+ <string>PlaceHog</string>
+ <key>title</key>
+ <string>Place Hedgehogs</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Ammo is shared between all clan teams</string>
+ <key>image</key>
+ <string>SharedAmmo</string>
+ <key>title</key>
+ <string>Clan Shares Ammo</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Disable girders when generating random maps</string>
+ <key>image</key>
+ <string>DisableGirders</string>
+ <key>title</key>
+ <string>Disable Girders</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Disable land objects when generating maps</string>
+ <key>image</key>
+ <string>DisableLandObjects</string>
+ <key>title</key>
+ <string>Disable Land Objects</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>AI-controlled hogs respawn on death</string>
+ <key>image</key>
+ <string>AISurvival</string>
+ <key>title</key>
+ <string>AI Survival Mode</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Attacking does not end your turn</string>
+ <key>image</key>
+ <string>InfAttack</string>
+ <key>title</key>
+ <string>Unlimited Attacks</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Weapons are reset to starting values each turn</string>
+ <key>image</key>
+ <string>ResetWeps</string>
+ <key>title</key>
+ <string>Reset Weapons</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Each hedgehog has its own ammo</string>
+ <key>image</key>
+ <string>PerHogAmmo</string>
+ <key>title</key>
+ <string>Per Hedgehog Ammo</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>You will not have to worry about wind any more</string>
+ <key>image</key>
+ <string>NoWind</string>
+ <key>title</key>
+ <string>Disable Wind</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Wind will affect almost everything</string>
+ <key>image</key>
+ <string>MoreWind</string>
+ <key>title</key>
+ <string>More Wind</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Clan teams take turns sharing their time</string>
+ <key>image</key>
+ <string>TagTeam</string>
+ <key>title</key>
+ <string>Tag Team</string>
+ </dict>
+ <dict>
+ <key>description</key>
+ <string>Add an indestructible border along the bottom</string>
+ <key>image</key>
+ <string>BottomBorder</string>
+ <key>title</key>
+ <string>Bottom Border</string>
+ </dict>
+</array>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/SDL-50560ca58f80.patch Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,100 @@
+diff -r 50560ca58f80 Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj
+--- a/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Mon Oct 24 23:18:53 2011 -0400
++++ b/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Tue Oct 25 22:13:19 2011 +0200
+@@ -1596,9 +1596,12 @@
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_DEBUGGING_SYMBOLS = full;
++ GCC_OPTIMIZATION_LEVEL = 0;
++ GCC_THUMB_SUPPORT = NO;
++ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+- IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
++ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
+ ONLY_ACTIVE_ARCH = NO;
+ PREBINDING = NO;
+ SDKROOT = iphoneos;
+@@ -1613,9 +1616,12 @@
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
++ GCC_FAST_MATH = YES;
++ GCC_THUMB_SUPPORT = NO;
++ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+- IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
++ IPHONEOS_DEPLOYMENT_TARGET = 3.0;
+ PREBINDING = NO;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+diff -r 50560ca58f80 include/SDL_config_iphoneos.h
+--- a/include/SDL_config_iphoneos.h Mon Oct 24 23:18:53 2011 -0400
++++ b/include/SDL_config_iphoneos.h Tue Oct 25 22:13:19 2011 +0200
+@@ -106,7 +106,7 @@
+ /* enable iPhone version of Core Audio driver */
+ #define SDL_AUDIO_DRIVER_COREAUDIO 1
+ /* Enable the dummy audio driver (src/audio/dummy/\*.c) */
+-#define SDL_AUDIO_DRIVER_DUMMY 1
++#define SDL_AUDIO_DRIVER_DUMMY 0
+
+ /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
+ #define SDL_HAPTIC_DISABLED 1
+@@ -132,16 +132,16 @@
+ /* enable OpenGL ES */
+ #define SDL_VIDEO_OPENGL_ES 1
+ #define SDL_VIDEO_RENDER_OGL_ES 1
+-#define SDL_VIDEO_RENDER_OGL_ES2 1
++#define SDL_VIDEO_RENDER_OGL_ES2 0
+
+ /* Enable system power support */
+-#define SDL_POWER_UIKIT 1
++#define SDL_POWER_UIKIT 0
+
+ /* enable iPhone keyboard support */
+ #define SDL_IPHONE_KEYBOARD 1
+
+ /* enable joystick subsystem */
+-#define SDL_JOYSTICK_DISABLED 0
++#define SDL_JOYSTICK_DISABLED 1
+
+ /* Set max recognized G-force from accelerometer
+ See src/joystick/uikit/SDLUIAccelerationDelegate.m for notes on why this is needed
+diff -r 50560ca58f80 src/video/uikit/SDL_uikitopenglview.m
+--- a/src/video/uikit/SDL_uikitopenglview.m Mon Oct 24 23:18:53 2011 -0400
++++ b/src/video/uikit/SDL_uikitopenglview.m Tue Oct 25 22:13:19 2011 +0200
+@@ -114,8 +114,8 @@
+
+ // !!! FIXME: use the screen this is on!
+ /* Use the main screen scale (for retina display support) */
+- if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
+- self.contentScaleFactor = [UIScreen mainScreen].scale;
++ if ([self respondsToSelector:@selector(contentScaleFactor)])
++ self.contentScaleFactor = [[UIScreen mainScreen] scale];
+
+ self.autoresizingMask = 0; // don't allow autoresize, since we need to do some magic in -(void)updateFrame.
+ }
+@@ -144,8 +144,8 @@
+
+ // !!! FIXME: use the screen this is on!
+ /* Use the main screen scale (for retina display support) */
+- if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
+- self.contentScaleFactor = [UIScreen mainScreen].scale;
++ if ([self respondsToSelector:@selector(contentScaleFactor)])
++ self.contentScaleFactor = [[UIScreen mainScreen] scale];
+ }
+
+ - (void)setCurrentContext
+diff -r 50560ca58f80 src/video/uikit/SDL_uikitviewcontroller.m
+--- a/src/video/uikit/SDL_uikitviewcontroller.m Mon Oct 24 23:18:53 2011 -0400
++++ b/src/video/uikit/SDL_uikitviewcontroller.m Tue Oct 25 22:13:19 2011 +0200
+@@ -145,7 +145,7 @@
+ frame.origin.x = 0;
+ frame.origin.y = 0;
+
+- [uiwindow setFrame:frame];
++ [uiwindow setFrame:[[UIScreen mainScreen] bounds]];
+ [data->view updateFrame];
+ SDL_SendWindowEvent(self->window, SDL_WINDOWEVENT_RESIZED, w, h);
+ }
--- a/project_files/HedgewarsMobile/SDL-91c9a69dd2ad.patch Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-diff -r 91c9a69dd2ad Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj
---- a/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Mon Aug 29 00:27:43 2011 -0400
-+++ b/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Mon Aug 29 23:56:04 2011 +0200
-@@ -1596,9 +1596,12 @@
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_DEBUGGING_SYMBOLS = full;
-+ GCC_OPTIMIZATION_LEVEL = 0;
-+ GCC_THUMB_SUPPORT = NO;
-+ GCC_VERSION = com.apple.compilers.llvmgcc42;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = NO;
-- IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
-+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
- ONLY_ACTIVE_ARCH = NO;
- PREBINDING = NO;
- SDKROOT = iphoneos;
-@@ -1613,9 +1616,12 @@
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- GCC_C_LANGUAGE_STANDARD = c99;
-+ GCC_FAST_MATH = YES;
-+ GCC_THUMB_SUPPORT = NO;
-+ GCC_VERSION = com.apple.compilers.llvmgcc42;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = NO;
-- IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
-+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
- PREBINDING = NO;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
-diff -r 91c9a69dd2ad include/SDL_config_iphoneos.h
---- a/include/SDL_config_iphoneos.h Mon Aug 29 00:27:43 2011 -0400
-+++ b/include/SDL_config_iphoneos.h Mon Aug 29 23:56:04 2011 +0200
-@@ -106,7 +106,7 @@
- /* enable iPhone version of Core Audio driver */
- #define SDL_AUDIO_DRIVER_COREAUDIO 1
- /* Enable the dummy audio driver (src/audio/dummy/\*.c) */
--#define SDL_AUDIO_DRIVER_DUMMY 1
-+#define SDL_AUDIO_DRIVER_DUMMY 0
-
- /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
- #define SDL_HAPTIC_DISABLED 1
-@@ -132,14 +132,17 @@
- /* enable OpenGL ES */
- #define SDL_VIDEO_OPENGL_ES 1
- #define SDL_VIDEO_RENDER_OGL_ES 1
--#define SDL_VIDEO_RENDER_OGL_ES2 1
-+#define SDL_VIDEO_RENDER_OGL_ES2 0
-
- /* Enable system power support */
--#define SDL_POWER_UIKIT 1
-+#define SDL_POWER_UIKIT 0
-
- /* enable iPhone keyboard support */
- #define SDL_IPHONE_KEYBOARD 1
-
-+/* enable joystick subsystem */
-+#define SDL_JOYSTICK_DISABLED 1
-+
- /* Set max recognized G-force from accelerometer
- See src/joystick/uikit/SDLUIAccelerationDelegate.m for notes on why this is needed
- */
-diff -r 91c9a69dd2ad src/video/uikit/SDL_uikitopenglview.m
---- a/src/video/uikit/SDL_uikitopenglview.m Mon Aug 29 00:27:43 2011 -0400
-+++ b/src/video/uikit/SDL_uikitopenglview.m Mon Aug 29 23:56:04 2011 +0200
-@@ -123,8 +123,8 @@
-
- // !!! FIXME: use the screen this is on!
- /* Use the main screen scale (for retina display support) */
-- if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
-- self.contentScaleFactor = [UIScreen mainScreen].scale;
-+ if ([self respondsToSelector:@selector(contentScaleFactor)])
-+ self.contentScaleFactor = [[UIScreen mainScreen] scale];
-
- self.autoresizingMask = 0; // don't allow autoresize, since we need to do some magic in -(void)updateFrame.
- }
-@@ -152,8 +152,8 @@
-
- // !!! FIXME: use the screen this is on!
- /* Use the main screen scale (for retina display support) */
-- if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
-- self.contentScaleFactor = [UIScreen mainScreen].scale;
-+ if ([self respondsToSelector:@selector(contentScaleFactor)])
-+ self.contentScaleFactor = [[UIScreen mainScreen] scale];
- }
-
- - (void)setCurrentContext {
-diff -r 91c9a69dd2ad src/video/uikit/SDL_uikitvideo.m
---- a/src/video/uikit/SDL_uikitvideo.m Mon Aug 29 00:27:43 2011 -0400
-+++ b/src/video/uikit/SDL_uikitvideo.m Mon Aug 29 23:56:04 2011 +0200
-@@ -245,12 +245,8 @@
- const CGRect rect = [uiscreen bounds];
- UIKit_AddDisplay(uiscreen, uiscreenmode, (int)rect.size.width, (int)rect.size.height);
- } else {
-- const NSArray *screens = [UIScreen screens];
-- const NSUInteger screen_count = [screens count];
-- NSUInteger i;
-- for (i = 0; i < screen_count; i++) {
-+ for (UIScreen *uiscreen in [UIScreen screens]) {
- // the main screen is the first element in the array.
-- UIScreen *uiscreen = (UIScreen *) [screens objectAtIndex:i];
- UIScreenMode *uiscreenmode = [uiscreen currentMode];
- const CGSize size = [[uiscreen currentMode] size];
- UIKit_AddDisplay(uiscreen, uiscreenmode, (int)size.width, (int)size.height);
-@@ -286,6 +282,9 @@
- UIScreen *uiscreen = (UIScreen *) display->driverdata;
- [uiscreen release];
- display->driverdata = NULL;
-+ UIScreenMode *desktopmode = (UIScreenMode *) display->desktop_mode.driverdata;
-+ [desktopmode release];
-+ display->desktop_mode.driverdata = NULL;
- for (j = 0; j < display->num_display_modes; j++) {
- SDL_DisplayMode *mode = &display->display_modes[j];
- UIScreenMode *uimode = (UIScreenMode *) mode->driverdata;
-diff -r 91c9a69dd2ad src/video/uikit/SDL_uikitviewcontroller.m
---- a/src/video/uikit/SDL_uikitviewcontroller.m Mon Aug 29 00:27:43 2011 -0400
-+++ b/src/video/uikit/SDL_uikitviewcontroller.m Mon Aug 29 23:56:04 2011 +0200
-@@ -138,7 +138,7 @@
- frame.origin.x = 0;
- frame.origin.y = 0;
-
-- [uiwindow setFrame:frame];
-+ [uiwindow setFrame:[[UIScreen mainScreen] bounds]];
- [data->view updateFrame];
- SDL_SendWindowEvent(self->window, SDL_WINDOWEVENT_RESIZED, w, h);
- }
--- a/project_files/hedgewars.pro Fri Oct 28 17:41:39 2011 +0200
+++ b/project_files/hedgewars.pro Fri Oct 28 18:26:17 2011 +0200
@@ -2,6 +2,13 @@
TARGET = hedgewars
DEPENDPATH += ../QTfrontend/
INCLUDEPATH += ../QTfrontend/
+INCLUDEPATH += ../QTfrontend/model
+INCLUDEPATH += ../QTfrontend/ui
+INCLUDEPATH += ../QTfrontend/ui/widget
+INCLUDEPATH += ../QTfrontend/ui/page
+INCLUDEPATH += ../QTfrontend/ui/dialog
+INCLUDEPATH += ../QTfrontend/net
+INCLUDEPATH += ../QTfrontend/util
INCLUDEPATH += /usr/local/include/SDL
INCLUDEPATH += /usr/include/SDL
INCLUDEPATH += ../misc/quazip/
@@ -15,110 +22,154 @@
QT += network
QT += webkit
-HEADERS += ../QTfrontend/KB.h ../QTfrontend/SDLs.h \
- ../QTfrontend/SquareLabel.h ../QTfrontend/about.h \
- ../QTfrontend/ammoSchemeModel.h ../QTfrontend/bgwidget.h \
- ../QTfrontend/binds.h ../QTfrontend/chatwidget.h \
- ../QTfrontend/fpsedit.h ../QTfrontend/frameTeam.h \
- ../QTfrontend/game.h ../QTfrontend/gamecfgwidget.h \
- ../QTfrontend/gameuiconfig.h ../QTfrontend/hats.h \
- ../QTfrontend/hedgehogerWidget.h ../QTfrontend/hwconsts.h \
- ../QTfrontend/hwform.h ../QTfrontend/hwmap.h \
- ../QTfrontend/igbox.h ../QTfrontend/input_ip.h \
- ../QTfrontend/itemNum.h ../QTfrontend/mapContainer.h \
- ../QTfrontend/misc.h ../QTfrontend/namegen.h \
- ../QTfrontend/netregister.h ../QTfrontend/netserver.h \
- ../QTfrontend/netserverslist.h ../QTfrontend/netudpserver.h \
- ../QTfrontend/netudpwidget.h ../QTfrontend/newnetclient.h \
- ../QTfrontend/proto.h \
- ../QTfrontend/sdlkeys.h ../QTfrontend/selectWeapon.h \
- ../QTfrontend/tcpBase.h \
- ../QTfrontend/team.h ../QTfrontend/teamselect.h \
- ../QTfrontend/teamselhelper.h ../QTfrontend/togglebutton.h \
- ../QTfrontend/ui_hwform.h ../QTfrontend/vertScrollArea.h \
- ../QTfrontend/weaponItem.h ../QTfrontend/xfire.h \
- ../QTfrontend/achievements.h \
- ../QTfrontend/drawmapwidget.h \
+HEADERS += ../QTfrontend/model/themesmodel.h \
+ ../QTfrontend/model/ammoSchemeModel.h \
+ ../QTfrontend/model/netserverslist.h \
+ ../QTfrontend/model/hats.h \
+ ../QTfrontend/ui/page/pagedrawmap.h \
+ ../QTfrontend/ui/page/pagedata.h \
+ ../QTfrontend/ui/page/pagetraining.h \
+ ../QTfrontend/ui/page/pageselectweapon.h \
+ ../QTfrontend/ui/page/pagesingleplayer.h \
+ ../QTfrontend/ui/page/pagenettype.h \
+ ../QTfrontend/ui/page/pageingame.h \
+ ../QTfrontend/ui/page/pageadmin.h \
+ ../QTfrontend/ui/page/pagescheme.h \
+ ../QTfrontend/ui/page/pagemultiplayer.h \
+ ../QTfrontend/ui/page/pageplayrecord.h \
+ ../QTfrontend/ui/page/pagemain.h \
+ ../QTfrontend/ui/page/pageoptions.h \
+ ../QTfrontend/ui/page/pagenetgame.h \
+ ../QTfrontend/ui/page/pageeditteam.h \
+ ../QTfrontend/ui/page/pageconnecting.h \
+ ../QTfrontend/ui/page/pageroomslist.h \
+ ../QTfrontend/ui/page/pagenet.h \
+ ../QTfrontend/ui/page/pagecampaign.h \
+ ../QTfrontend/ui/page/pageinfo.h \
+ ../QTfrontend/ui/page/pagenetserver.h \
+ ../QTfrontend/ui/page/pagegamestats.h \
+ ../QTfrontend/ui/dialog/input_ip.h \
+ ../QTfrontend/ui/qaspectratiolayout.h \
+ ../QTfrontend/ui/widget/bgwidget.h \
+ ../QTfrontend/ui/widget/fpsedit.h \
+ ../QTfrontend/ui/widget/FreqSpinBox.h \
+ ../QTfrontend/ui/widget/igbox.h \
+ ../QTfrontend/ui/widget/chatwidget.h \
+ ../QTfrontend/ui/widget/togglebutton.h \
+ ../QTfrontend/ui/widget/SquareLabel.h \
+ ../QTfrontend/ui/widget/itemNum.h \
+ ../QTfrontend/ui/widget/frameTeam.h \
+ ../QTfrontend/ui/widget/teamselect.h \
+ ../QTfrontend/ui/widget/vertScrollArea.h \
+ ../QTfrontend/ui/widget/about.h \
+ ../QTfrontend/ui/widget/teamselhelper.h \
+ ../QTfrontend/ui/widget/drawmapwidget.h \
+ ../QTfrontend/ui/widget/databrowser.h \
+ ../QTfrontend/ui/widget/hedgehogerWidget.h \
+ ../QTfrontend/ui/widget/selectWeapon.h \
+ ../QTfrontend/ui/widget/weaponItem.h \
+ ../QTfrontend/ui/widget/gamecfgwidget.h \
+ ../QTfrontend/ui/widget/mapContainer.h \
+ ../QTfrontend/ui/widget/HistoryLineEdit.h \
+ ../QTfrontend/ui/widget/SmartLineEdit.h \
+ ../QTfrontend/util/HWDataManager.h \
+ ../QTfrontend/net/netregister.h \
+ ../QTfrontend/net/netserver.h \
+ ../QTfrontend/net/netudpwidget.h \
+ ../QTfrontend/net/tcpBase.h \
+ ../QTfrontend/net/proto.h \
+ ../QTfrontend/net/newnetclient.h \
+ ../QTfrontend/net/netudpserver.h \
+ ../QTfrontend/net/hwmap.h \
+ ../QTfrontend/util/namegen.h \
+ ../QTfrontend/ui/page/AbstractPage.h \
../QTfrontend/drawmapscene.h \
- ../QTfrontend/qaspectratiolayout.h \
- ../QTfrontend/pagetraining.h \
- ../QTfrontend/pagesingleplayer.h \
- ../QTfrontend/pageselectweapon.h \
- ../QTfrontend/pagescheme.h \
- ../QTfrontend/pageroomslist.h \
- ../QTfrontend/pageoptions.h \
- ../QTfrontend/pagenettype.h \
- ../QTfrontend/pagenetserver.h \
- ../QTfrontend/pagenetgame.h \
- ../QTfrontend/pagenet.h \
- ../QTfrontend/pagemultiplayer.h \
- ../QTfrontend/pagemain.h \
- ../QTfrontend/pageingame.h \
- ../QTfrontend/pageinfo.h \
- ../QTfrontend/pagedata.h \
- ../QTfrontend/pageeditteam.h \
- ../QTfrontend/pagedrawmap.h \
- ../QTfrontend/pageconnecting.h \
- ../QTfrontend/pagecampaign.h \
- ../QTfrontend/pageadmin.h \
- ../QTfrontend/pageplayrecord.h \
- ../QTfrontend/pagegamestats.h \
+ ../QTfrontend/game.h \
+ ../QTfrontend/gameuiconfig.h \
../QTfrontend/HWApplication.h \
- ../QTfrontend/AbstractPage.h \
- ../QTfrontend/themesmodel.h \
- ../QTfrontend/databrowser.h
+ ../QTfrontend/hwform.h \
+ ../QTfrontend/util/SDLInteraction.h \
+ ../QTfrontend/team.h \
+ ../QTfrontend/achievements.h \
+ ../QTfrontend/binds.h \
+ ../QTfrontend/ui_hwform.h \
+ ../QTfrontend/KB.h \
+ ../QTfrontend/hwconsts.h \
+ ../QTfrontend/sdlkeys.h
-SOURCES += ../QTfrontend/SDLs.cpp ../QTfrontend/SquareLabel.cpp \
- ../QTfrontend/about.cpp ../QTfrontend/ammoSchemeModel.cpp \
- ../QTfrontend/bgwidget.cpp ../QTfrontend/binds.cpp \
- ../QTfrontend/chatwidget.cpp ../QTfrontend/fpsedit.cpp \
- ../QTfrontend/frameTeam.cpp ../QTfrontend/game.cpp \
- ../QTfrontend/gamecfgwidget.cpp ../QTfrontend/gameuiconfig.cpp \
- ../QTfrontend/hats.cpp ../QTfrontend/hedgehogerWidget.cpp \
- ../QTfrontend/hwform.cpp ../QTfrontend/hwmap.cpp \
- ../QTfrontend/igbox.cpp ../QTfrontend/input_ip.cpp \
- ../QTfrontend/itemNum.cpp ../QTfrontend/main.cpp \
- ../QTfrontend/mapContainer.cpp ../QTfrontend/misc.cpp \
- ../QTfrontend/namegen.cpp ../QTfrontend/netregister.cpp \
- ../QTfrontend/netserver.cpp ../QTfrontend/netserverslist.cpp \
- ../QTfrontend/netudpserver.cpp ../QTfrontend/netudpwidget.cpp \
- ../QTfrontend/newnetclient.cpp \
- ../QTfrontend/proto.cpp \
- ../QTfrontend/selectWeapon.cpp \
- ../QTfrontend/tcpBase.cpp ../QTfrontend/team.cpp \
- ../QTfrontend/teamselect.cpp ../QTfrontend/teamselhelper.cpp \
- ../QTfrontend/togglebutton.cpp ../QTfrontend/ui_hwform.cpp \
- ../QTfrontend/vertScrollArea.cpp ../QTfrontend/weaponItem.cpp \
- ../QTfrontend/achievements.cpp \
- ../QTfrontend/hwconsts.cpp \
- ../QTfrontend/drawmapwidget.cpp \
+SOURCES += ../QTfrontend/model/ammoSchemeModel.cpp \
+ ../QTfrontend/model/themesmodel.cpp \
+ ../QTfrontend/model/hats.cpp \
+ ../QTfrontend/model/netserverslist.cpp \
+ ../QTfrontend/ui/qaspectratiolayout.cpp \
+ ../QTfrontend/ui/page/pagemain.cpp \
+ ../QTfrontend/ui/page/pagetraining.cpp \
+ ../QTfrontend/ui/page/pageroomslist.cpp \
+ ../QTfrontend/ui/page/pagemultiplayer.cpp \
+ ../QTfrontend/ui/page/pagegamestats.cpp \
+ ../QTfrontend/ui/page/pagenettype.cpp \
+ ../QTfrontend/ui/page/pageeditteam.cpp \
+ ../QTfrontend/ui/page/pagenetgame.cpp \
+ ../QTfrontend/ui/page/pagedata.cpp \
+ ../QTfrontend/ui/page/pagedrawmap.cpp \
+ ../QTfrontend/ui/page/pageplayrecord.cpp \
+ ../QTfrontend/ui/page/pageselectweapon.cpp \
+ ../QTfrontend/ui/page/pageingame.cpp \
+ ../QTfrontend/ui/page/pagenetserver.cpp \
+ ../QTfrontend/ui/page/pagecampaign.cpp \
+ ../QTfrontend/ui/page/pageadmin.cpp \
+ ../QTfrontend/ui/page/pageinfo.cpp \
+ ../QTfrontend/ui/page/pageconnecting.cpp \
+ ../QTfrontend/ui/page/pagesingleplayer.cpp \
+ ../QTfrontend/ui/page/pagenet.cpp \
+ ../QTfrontend/ui/page/pagescheme.cpp \
+ ../QTfrontend/ui/page/pageoptions.cpp \
+ ../QTfrontend/ui/dialog/input_ip.cpp \
+ ../QTfrontend/ui/widget/igbox.cpp \
+ ../QTfrontend/ui/widget/selectWeapon.cpp \
+ ../QTfrontend/ui/widget/FreqSpinBox.cpp \
+ ../QTfrontend/ui/widget/SquareLabel.cpp \
+ ../QTfrontend/ui/widget/frameTeam.cpp \
+ ../QTfrontend/ui/widget/fpsedit.cpp \
+ ../QTfrontend/ui/widget/databrowser.cpp \
+ ../QTfrontend/ui/widget/teamselect.cpp \
+ ../QTfrontend/ui/widget/gamecfgwidget.cpp \
+ ../QTfrontend/ui/widget/chatwidget.cpp \
+ ../QTfrontend/ui/widget/itemNum.cpp \
+ ../QTfrontend/ui/widget/bgwidget.cpp \
+ ../QTfrontend/ui/widget/about.cpp \
+ ../QTfrontend/ui/widget/togglebutton.cpp \
+ ../QTfrontend/ui/widget/vertScrollArea.cpp \
+ ../QTfrontend/ui/widget/hedgehogerWidget.cpp \
+ ../QTfrontend/ui/widget/teamselhelper.cpp \
+ ../QTfrontend/ui/widget/drawmapwidget.cpp \
+ ../QTfrontend/ui/widget/weaponItem.cpp \
+ ../QTfrontend/ui/widget/mapContainer.cpp \
+ ../QTfrontend/ui/widget/HistoryLineEdit.cpp \
+ ../QTfrontend/ui/widget/SmartLineEdit.cpp \
+ ../QTfrontend/util/HWDataManager.cpp \
+ ../QTfrontend/net/tcpBase.cpp \
+ ../QTfrontend/net/netregister.cpp \
+ ../QTfrontend/net/proto.cpp \
+ ../QTfrontend/net/hwmap.cpp \
+ ../QTfrontend/net/netudpserver.cpp \
+ ../QTfrontend/net/newnetclient.cpp \
+ ../QTfrontend/net/netudpwidget.cpp \
+ ../QTfrontend/net/netserver.cpp \
+ ../QTfrontend/util/namegen.cpp \
+ ../QTfrontend/ui/page/AbstractPage.cpp \
+ ../QTfrontend/achievements.cpp \
+ ../QTfrontend/binds.cpp \
../QTfrontend/drawmapscene.cpp \
- ../QTfrontend/qaspectratiolayout.cpp \
- ../QTfrontend/pagetraining.cpp \
- ../QTfrontend/pagesingleplayer.cpp \
- ../QTfrontend/pageselectweapon.cpp \
- ../QTfrontend/pagescheme.cpp \
- ../QTfrontend/pageroomslist.cpp \
- ../QTfrontend/pageoptions.cpp \
- ../QTfrontend/pagenettype.cpp \
- ../QTfrontend/pagenetserver.cpp \
- ../QTfrontend/pagenetgame.cpp \
- ../QTfrontend/pagenet.cpp \
- ../QTfrontend/pagemultiplayer.cpp \
- ../QTfrontend/pagemain.cpp \
- ../QTfrontend/pageingame.cpp \
- ../QTfrontend/pageinfo.cpp \
- ../QTfrontend/pagedata.cpp \
- ../QTfrontend/pageeditteam.cpp \
- ../QTfrontend/pagedrawmap.cpp \
- ../QTfrontend/pageconnecting.cpp \
- ../QTfrontend/pagecampaign.cpp \
- ../QTfrontend/pageadmin.cpp \
- ../QTfrontend/pagegamestats.cpp \
- ../QTfrontend/pageplayrecord.cpp \
+ ../QTfrontend/game.cpp \
+ ../QTfrontend/gameuiconfig.cpp \
../QTfrontend/HWApplication.cpp \
- ../QTfrontend/themesmodel.cpp \
- ../QTfrontend/databrowser.cpp
+ ../QTfrontend/hwform.cpp \
+ ../QTfrontend/main.cpp \
+ ../QTfrontend/util/SDLInteraction.cpp \
+ ../QTfrontend/team.cpp \
+ ../QTfrontend/ui_hwform.cpp \
+ ../QTfrontend/hwconsts.cpp
win32 {
SOURCES += ../QTfrontend/xfire.cpp
--- a/share/hedgewars/Data/Graphics/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Graphics/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -4,6 +4,7 @@
add_subdirectory(Hats)
add_subdirectory(Hedgehog)
add_subdirectory(SuddenDeath)
+add_subdirectory(Missions)
file(GLOB BaseSprites *.png)
list(REMOVE_ITEM BaseSprites *@2x.png)
Binary file share/hedgewars/Data/Graphics/Hats/scif_swStormtrooper.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/tiara.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Graphics/Missions/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+add_subdirectory(Training)
Binary file share/hedgewars/Data/Graphics/Missions/Training/Basic_Training_-_Bazooka.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/Basic_Training_-_Bazooka@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/Basic_Training_-_Shotgun.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/Basic_Training_-_Shotgun@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/Basic_Training_-_Sniper_Rifle.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/Basic_Training_-_Sniper_Rifle@2x.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Graphics/Missions/Training/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,5 @@
+file(GLOB MissionPics *@2x.png)
+
+install(FILES
+ ${MissionPics}
+ DESTINATION ${SHAREPATH}Data/Graphics/Missions/Training)
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Bamboo_Thicket.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Bamboo_Thicket@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Dangerous_Ducklings.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Dangerous_Ducklings@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Diver.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Diver@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Newton_and_the_Hammock.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Newton_and_the_Hammock@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Spooky_Tree.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Spooky_Tree@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Teamwork.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Teamwork@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_That_Sinking_Feeling.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_That_Sinking_Feeling@2x.png has changed
Binary file share/hedgewars/Data/Graphics/RCPlane.png has changed
Binary file share/hedgewars/Data/Graphics/TARDIS.png has changed
Binary file share/hedgewars/Data/Graphics/Target@2x.png has changed
Binary file share/hedgewars/Data/Graphics/Targetp@2x.png has changed
--- a/share/hedgewars/Data/Locale/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Locale/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -2,6 +2,7 @@
file(GLOB txttrans5 ?????.txt)
file(GLOB tsfiles *.ts)
file(GLOB luafiles *.lua)
+file(GLOB missionfiles missions_*.txt)
QT4_ADD_TRANSLATION(QM ${tsfiles})
@@ -15,6 +16,7 @@
${txttrans5}
${QM}
${luafiles}
+ ${missionfiles}
DESTINATION ${SHAREPATH}Data/Locale
)
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Fri Oct 28 18:26:17 2011 +0200
@@ -1170,8 +1170,8 @@
<translation>Multiplayer (play a hotseat game against your friends, or AI teams)</translation>
</message>
<message>
- <source>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</source>
- <translation>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</translation>
+ <source>Training Mode (Practice your skills in a range of training missions)</source>
+ <translation>Training Mode (Practice your skills in a range of training missions)</translation>
</message>
<message>
<source>Demos (Watch recorded demos)</source>
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Fri Oct 28 18:26:17 2011 +0200
@@ -2136,11 +2136,11 @@
</message>
<message>
<source>Tag Team</source>
- <translation>OznaÄit tÃm</translation>
+ <translation>Tag Team</translation>
</message>
<message>
<source>Add Bottom Border</source>
- <translation type="unfinished"></translation>
+ <source>Pridať spodný okraj</source>
</message>
</context>
<context>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/missions_de.txt Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,32 @@
+Basic_Training_-_Bazooka.name=Training: Bazooka - Grundlagen
+Basic_Training_-_Bazooka.desc="Nutze den Wind zu deinem Vorteil aus!"
+
+Basic_Training_-_Grenade.name=Training: Granate - Grundlagen
+Basic_Training_-_Grenade.desc="Vergiss nicht: Stift ziehen UND werfen!"
+
+Basic_Training_-_Shotgun.name=Training: Schrotflinte - Grundlagen
+Basic_Training_-_Shotgun.desc="Zuerst schießen, dann fragen!"
+
+Basic_Training_-_Sniper_Rifle.name=Training: Scharfschützengewehr - Grundlagen
+Basic_Training_-_Sniper_Rifle.desc="Boom, headshot!"
+
+User_Mission_-_Dangerous_Ducklings.name=Mission: Dangerous Ducklings
+User_Mission_-_Dangerous_Ducklings.desc="Nun gut, Rekrut! Es ist Zeit, dass du das im Grundlagentraining gelernte in die Tag umsetzt!"
+
+User_Mission_-_Diver.name=Mission: Taucher
+User_Mission_-_Diver.desc="Diese amphibische Angriffstrategie ist schwieriger als sie aussieht."
+
+User_Mission_-_Teamwork.name=Mission: Teamwork
+User_Mission_-_Teamwork.desc="Ab und zu... tut Liebe weh."
+
+User_Mission_-_Spooky_Tree.name=Mission: Spukiger Baum
+User_Mission_-_Spooky_Tree.desc="Viele Kisten hier draußen. Ich hoffe jedenfalls, dass dieser Vogel hier nicht hungrig wird."
+
+User_Mission_-_Bamboo_Thicket.name=Mission: Bambusdickicht
+User_Mission_-_Bamboo_Thicket.desc="Tod von oben."
+
+User_Mission_-_That_Sinking_Feeling.name=Mission: That Sinking Feeling
+User_Mission_-_That_Sinking_Feeling.desc="Hier steht einen das Wasser ganz schön schnell bis zu Hals. Viele sind hieran gescheitert. Kannst du alle Igel retten?"
+
+User_Mission_-_Newton_and_the_Hammock.name=Mission: Newton und die Hängematte
+User_Mission_-_Newton_and_the_Hammock.desc="Nicht vergessen Igelinge: Die Geschwindigkeit eines Körpers bleibt konstant, es sei denn es wirkt eine äußere Kraft wird auf ihn ein!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/missions_en.txt Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,32 @@
+Basic_Training_-_Bazooka.name=Basic Bazooka Training
+Basic_Training_-_Bazooka.desc="Using the wind to your advantage is key!"
+
+Basic_Training_-_Grenade.name=Basic Grenade Training
+Basic_Training_-_Grenade.desc="Remember, you pull the pin out AND throw!"
+
+Basic_Training_-_Shotgun.name=Basic Shotgun Training
+Basic_Training_-_Shotgun.desc="Shoot first, ask questions later!"
+
+Basic_Training_-_Sniper_Rifle.name=Basic Sniper Rifle Training
+Basic_Training_-_Sniper_Rifle.desc="Boom, headshot!"
+
+User_Mission_-_Dangerous_Ducklings.name=Mission: Dangerous Ducklings
+User_Mission_-_Dangerous_Ducklings.desc="Alright, rookie! Time to put what we learned in Basic Training into practice!"
+
+User_Mission_-_Diver.name=Mission: Diver
+User_Mission_-_Diver.desc="This 'amphibious assault' thing is harder than it looks..."
+
+User_Mission_-_Teamwork.name=Mission: Teamwork
+User_Mission_-_Teamwork.desc="Sometimes, love hurts."
+
+User_Mission_-_Spooky_Tree.name=Mission: Spooky Tree
+User_Mission_-_Spooky_Tree.desc="Lots of crates out here. I sure hope that bird ain't feeling hungry."
+
+User_Mission_-_Bamboo_Thicket.name=Mission: Bamboo Thicket
+User_Mission_-_Bamboo_Thicket.desc="Death comes from above."
+
+User_Mission_-_That_Sinking_Feeling.name=Mission: That Sinking Feeling
+User_Mission_-_That_Sinking_Feeling.desc="The water is rising rapidly and time is limited. Many have tried and failed. Can you save them all?"
+
+User_Mission_-_Newton_and_the_Hammock.name=Mission: Newton and the Hammock
+User_Mission_-_Newton_and_the_Hammock.desc="Remember hoglets: The velocity of a body remains constant unless the body is acted upon by an external force!"
--- a/share/hedgewars/Data/Locale/sk.lua Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Locale/sk.lua Fri Oct 28 18:26:17 2011 +0200
@@ -5,54 +5,54 @@
["Accuracy Bonus!"] = "Bonus za presnosť!",
["a Hedgewars mini-game"] = "minihra Hedgewars", -- Space_Invasion, The_Specialists
["Aiming Practice"] = "Tréning presnosti", --Bazooka, Shotgun, SniperRifle
- ["Ammo"] = "MunÃcia",
- ["Ammo Depleted!"] = "MunÃcia vyÄerpaná!",
- ["Ammo Maniac!"] = "MuniÄný maniak!",
+ ["Ammo"] = "Výzbroj",
+ ["Ammo Depleted!"] = "Výzbroj vyÄerpaná!",
+-- ["Ammo Maniac!"] = "",
["Available points remaining: "] = "Zostávajúci poÄet bodov: ",
["Bat balls at your enemies and|push them into the sea!"] = "Loptami triafajte vaÅ¡ich nepriateľov|a zhoÄte ich tak do mora!",
- ["Bat your opponents through the|baskets and out of the map!"] = "Odpálkujte vašich súperov cez kôš|von z mapy!",
+ ["Bat your opponents through the|baskets and out of the map!"] = "Odpálkujte vašich súperov do koša|a von z mapy!",
["Bazooka Training"] = "Tréning s bazukou",
["Best laps per team: "] = "NajrýchlejÅ¡ie kolá podľa tÃmov: ",
- ["Best Team Times: "] = "NajlepÅ¡ie tÃmové Äasy: ",
+ ["Best Team Times: "] = "NajrýchlejÅ¡ie tÃmové Äasy: ",
["Bloody Rookies"] = "Mizernà zelenáÄi", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
["BOOM!"] = "BUM!",
["Boom!"] = "Bum!",
["Boss defeated!"] = "Vodca bol porazený!",
- ["Boss Slayer!"] = "Vodca zabitý!",
+-- ["Boss Slayer!"] = "",
["CAPTURE THE FLAG"] = "ZMOCNITEÂ SAÂ VLAJKY",
- ["Careless"] = "Neopatrný",
+ ["Careless"] = "Bezstarostný",
["Clumsy"] = "Nešikovný",
- ["Codename: Teamwork"] = "Krycie meno: TÃmová práca",
- ["Complete the track as fast as you can!"] = "DokonÄite trasu tak rýchlo, ako len viete! ",
+ ["Codename: Teamwork"] = "Kódové meno: TÃmová práca",
+-- ["Complete the track as fast as you can!"] = "",
["Congratulations!"] = "Gratulujem!",
["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulujem! ZneÅ¡kodnili ste vÅ¡etky ciele|v stanovenom Äase.", --Bazooka, Shotgun, SniperRifle
- ["Control pillars to score points."] = "ObsaÄte piliere, aby ste skórovali",
+ ["Control pillars to score points."] = "Ovládnite piliere, aby ste skórovali",
["Cybernetic Empire"] = "Kybertnetické impérium",
["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Do kelu s tebou, zelenáÄ! Okamžite mi zlez z hlavy!",
["DAMMIT, ROOKIE!"] = "Prekliaty zelenáÄ!",
["Dangerous Ducklings"] = "NebezpeÄné kaÄiatka",
- ["Deadweight"] = "Mŕtva váha",
- ["Depleted Kamikaze!"] = "VyÄerpaný samovrah!",
- ["Destroy invaders to score points."] = "ZniÄte votrelcov a zÃskajte tak body.",
- ["Drone Hunter!"] = "Lovec vÄeliakov!",
- ["Drowner"] = "Utopenec",
- ["Each turn you get 1-3 random weapons"] = "Každé kolo zÃskate 1-3 náhodných zbranÃ",
- ["Each turn you get one random weapon"] = "Každé kolo zÃskate jednu náhodnú zbraň",
+-- ["Deadweight"] = "",
+-- ["Depleted Kamikaze!"] = "",
+-- ["Destroy invaders to score points."] = "",
+-- ["Drone Hunter!"] = "",
+-- ["Drowner"] = "",
+-- ["Each turn you get 1-3 random weapons"] = "",
+ ["Each turn you get one random weapon"] = "Každé koho dostanete jednu náhodnú zbraň",
["Eliminate all enemies"] = "Zneškodnite všetkých nepriateľov",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "ZneÅ¡kodnite vÅ¡etky ciele pred vyprÅ¡anÃm Äasu.|Na túto misiu máte neobmedzené množstvo streliva.", --Bazooka, Shotgun, SniperRifle
["Eliminate Poison before the time runs out"] = "ZneÅ¡kodnite Poisona pred tým, ako vyprÅ¡Ã Äas",
["Eliminate the Blue Team"] = "ZneÅ¡kodnite modrý tÃm",
- ["Eliminate the enemy specialists."] = "Zneškodnite nepriateľských špecialistov.",
+-- ["Eliminate the enemy specialists."] = "",
["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Zneškodnite Jednotku 3378|- Slabý odpor musà prežiť",
["Enjoy the swim..."] = "Užite si plávanie...",
- ["[Enter]"] = "[Enter]",
+-- ["[Enter]"] = "",
["Fastest lap: "] = "Najrýchlejšie kolo: ",
["Feeble Resistance"] = "Slabý odpor",
- ["Fire"] = "Oheň",
+-- ["Fire"] = "",
["Flag captured!"] = "ZÃskaná vlajka!",
["Flag respawned!"] = "Vlajka obnovená!",
["Flag returned!"] = "Vlajka vrátená!",
- ["Flags, and their home base will be placed where each team ends their first turn."] = "Vlajky a domovské základne budú umiestnené tam, kde každý tÃm skonÄà svoj prvý Å¥ah.",
+-- ["Flags, and their home base will be placed where each team ends their first turn."] = "",
["GAME BEGUN!!!"] = "HRA ZAÄŒALA!!!",
["Game Modifiers: "] = "Modifikátory hry: ",
["GAME OVER!"] = "KONIECÂ HRY!",
@@ -64,41 +64,41 @@
["Good luck out there!"] = "Veľa šťastia!",
["GOTCHA!"] = "A MÃM ŤA!",
["Hahahaha!"] = "Hehehehe!",
- ["Haha, now THAT would be something!"] = "Haha, tak TOTO bude nieÄo!",
- ["Hapless Hogs"] = "Nešťastný ježko",
- [" Hapless Hogs left!"] = " Nešťastný ježko odišiel!",
+ ["Haha, now THAT would be something!"] = "Haha, tak TO by bolo nieÄo!",
+-- ["Hapless Hogs"] = "",
+-- [" Hapless Hogs left!"] = "",
["Heavy"] = "Ťažký",
["Hedgewars-Basketball"] = "Hedgewars-Basketbal",
- ["Hedgewars-Knockball"] = "Hedgewars-VybÃjaná",
+ ["Hedgewars-Knockball"] = "Hedgewars-Knockball",
["Heh, it's not that bad."] = "Heh, to nie je také zlé.",
- ["Hit Combo!"] = "Opakovaný zásah!",
+-- ["Hit Combo!"] = "",
["Hmmm..."] = "Hmm..",
["Hooray!"] = "Hurá!",
["Hunter"] = "Lovec", --Bazooka, Shotgun, SniperRifle
["Instructor"] = "Inštruktor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
- ["invaders destroyed"] = "votrelci zniÄenÃ",
- ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "Je dobré, že NÃHLA SMRŤ je tu až za 99 Å¥ahov...",
- ["Jumping is disabled"] = "Skákanie je vypnuté",
- ["Kamikaze Expert!"] = "Expert na samovraždy!",
+-- ["invaders destroyed"] = "",
+-- ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+-- ["Jumping is disabled"] = "",
+-- ["Kamikaze Expert!"] = "",
["KILLS"] = "ZABITÃ:",
["[Left Shift]"] = "[Ľavý Shift]",
["Listen up, maggot!!"] = "PoÄúvaj, ty biedny Äerv!",
["|- Mines Time:"] = "|- ÄŒasovaÄ pre mÃny:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["MISSION FAILED"] = "MISIA NEÚSPEÅ NÃ", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
- ["MISSION SUCCESS"] = "MISIA ÚSPEÅ NÃ",
+-- ["MISSION SUCCESS"] = "",
["MISSION SUCCESSFUL"] = "MISIA ÚSPEÅ NÃ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["Movement: [Up], [Down], [Left], [Right]"] = "Pohyb: [Hore], [Dole], [Vľavo], [Vpravo]",
- ["Multi-shot!"] = "Opakovaná rana!",
+-- ["Multi-shot!"] = "",
["Nameless Heroes"] = "Hrdinovia bez mena",
["NEW CLAN RECORD: "] = "NOVÃ KLANOVÃ REKORD: ",
["NEW fastest lap: "] = "NOVÉ najrýchlejšie kolo: ",
- ["NEW RACE RECORD: "] = "NOVà TRAŤOVà REKORD: ",
- ["NOT ENOUGH WAYPOINTS"] = "NEDOSTATOK NAVIGAÄŒNÃCH BODOV",
+-- ["NEW RACE RECORD: "] = "",
+-- ["NOT ENOUGH WAYPOINTS"] = "",
["Not So Friendly Match"] = "Nie tak celkom priateľský zápas", -- Basketball, Knockball
["Oh no! Just try again!"] = "Ãále nie! Tak to skúste znovu!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["Oh no! Time's up! Just try again."] = "Ãále nie! ÄŒas vyprÅ¡al! Tak to skúste znovu.", --Bazooka, Shotgun, SniperRifle
["Operation Diver"] = "Operácia PotápaÄ",
- ["Opposing Team: "] = "Nepriateľský tÃm: ",
+ ["Opposing Team: "] = "Nepriateľský tÃm",
["Pathetic Hog #%d"] = "Žalostný ježko #%d",
["Per-Hog Ammo"] = "Samostatná munÃcia pre ježkov",
["Place more waypoints using [ENTER]"] = "Umiesnite viac bodov pomocou [ENTER]u",
@@ -106,13 +106,13 @@
["Poison"] = "Poison",
["Power Remaining"] = "Zostáva energie",
["Press [Precise] to skip intro"] = "StlaÄte [PresnejÅ¡ie mierenie] pre preskoÄenie intra",
- ["Race complexity limit reached."] = "Dosiahnutý limit zložitosti pretekov.",
- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Skórujete prinesenÃm nepriateľskej vlajky do vaÅ¡ej základne | - Prvý tÃm, ktorý dosiahne 3 body, vyhráva | - Skórujete len vtedy, keÄ je máte svoju vlajku v základni | - Spadnuté vlajky môžu byÅ¥ vrátené na základňu alebo sa ich môže zmocniÅ¥ súper | - Ježkovia po smrti ožijú",
- ["Round Limit"] = "Limit kôl",
+-- ["Race complexity limit reached."] = "",
+ [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Skórujete prinesenÃm nepriateľskej vlajky do vaÅ¡ej základne | - Prvý tÃm, ktorý dosiahne 3 body, vyhráva | - Skórujete len vtedy, keÄ je máte svoju vlajku v základni | - Spadnuté vlajky môžu byÅ¥ vrátené na základňu alebo sa ich môže zmocniÅ¥ súpere | - Ježkovia po smrti ožiujú",
+ ["Round Limit"] = "Limit na kolo",
["Rounds Complete"] = "DokonÄených kôl",
["RULES OF THE GAME [Press ESC to view]"] = "PRAVIDLÃ HRY [StlaÄte Esc pre ich zobrazenie]",
- ["s|"] = "s|",
- ["Save as many hapless hogs as possible!"] = "Zachráňte toľko nešťastných ježkov, koľko len môžete!",
+-- ["s|"] = "",
+-- ["Save as many hapless hogs as possible!"] = "",
["SCORE"] = "SKÓRE",
["sec"] = "sek", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
["See ya!"] = "Tak zatiaľ!",
@@ -120,56 +120,56 @@
["Shield boosted! +30 power"] = "Å tÃt posilnený! Energia +30",
["Shield Depleted"] = "Å tÃt vyÄerpaný",
["Shield is fully recharged!"] = "Å tÃt je plne nabitý!",
- ["Shield Master!"] = "Å tÃtový odbornÃk",
- ["Shield Miser!"] = "Å tÃtový žgrloÅ¡",
+-- ["Shield Master!"] = "",
+-- ["Shield Miser!"] = "",
["Shield OFF:"] = "Å tÃt VYPNUTÃ:",
["Shield ON:"] = "Å tÃt ZAPNUTÃ:",
["Shield Seeker!"] = "HľadaÄ Å¡tÃtov!",
- ["Shotgun Team"] = "TÃm s brokovnicou",
+ ["Shotgun Team"] = "Shotgun tÃm",
["Shotgun Training"] = "Tréning s brokovnicou",
["Shots Left: "] = "Zostáva striel: ", -- GaudyRacer, Tumbler
- ["Silly"] = "Hlúpy",
- ["Sinky"] = "Prepadnutý",
+-- ["Silly"] = "",
+-- ["Sinky"] = "",
["%s is out and Team %d|scored a penalty!| |Score:"] = "%s je mimo hru a tÃm %d|dostal trestný bod!| |Skóre:", -- Basketball, Knockball
["%s is out and Team %d|scored a point!| |Score:"] = "%s je mimo hru a tÃm %d|zÃskal bod!| |Skóre:", -- Basketball, Knockball
["Sniper Training"] = "Tréning pre ostreľovaÄov",
["Sniperz"] = "OstreľovaÄi",
- ["Sponge"] = "Å pongia",
+-- ["Sponge"] = "",
["Spooky Tree"] = "Strašidelný strom",
- ["STATUS UPDATE"] = "AKTUALIZÃCIA STAVU", -- GaudyRacer, Space_Invasion
- ["Switched to "] = "Prepnutý na ",
+-- ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+ ["Switched to "] = "Prepnuté na ",
["Team %d: "] = "TÃm %d: ",
- ["Team Scores"] = "TÃmové skóre", -- Control, Space_Invasion
- ["That Sinking Feeling"] = "Potopené pocity",
+-- ["Team Scores"] = "", -- Control, Space_Invasion
+-- ["That Sinking Feeling"] = "",
["That was pointless."] = "To bolo zbytoÄné.",
["The enemy is hiding out on yonder ducky!"] = "Nepriateľ sa schováva na tamtej kaÄiÄke!",
["The flag will respawn next round."] = "V ÄalÅ¡om kole sa obnovà vlajka.",
- ["The Nameless One"] = "Bez mena",
+-- ["The Nameless One"] = "",
["THE SPECIALISTS"] = "Å PECIALISTI",
["This rain is really something..."] = "Ten dÃ¡Å¾Ä naozaj stojà za to...",
["TIME: "] = "ÄŒAS: ",
- ["Timed Kamikaze!"] = "Časovaná samovražda!",
+-- ["Timed Kamikaze!"] = "",
["Time Extended!"] = "Predĺžený Äas!",
["Time Left: "] = "Zostávajúci Äas: ",
["Toggle Shield"] = "Prepnúť Å¡tÃt",
- ["Toxic Team"] = "Jedovatý tÃm", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
- ["TRACK COMPLETED"] = "TRASA KOMPLETNÃ",
- ["Track Time: "] = "ÄŒas na trati: ",
+ ["Toxic Team"] = "Toxic tÃm", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["TRACK COMPLETED"] = "",
+ ["Track Time: "] = "ÄŒas: ",
["TrophyRace"] = "Preteky o trofej",
["T_T"] = "T_T",
["Turn Time"] = "Čas na ťah",
["Unit 3378"] = "Jednotka 3378",
["Unlimited Attacks"] = "Neobmedzené útoky",
- ["User Challenge"] = "Výzva",
+-- ["User Challenge"] = "",
["Use your rope to get from start to finish as fast as you can!"] = "Použite lano na presun zo Å¡tartovnej pozÃcie do cieľa tak rýchlo, ako to len viete!",
["v.06"] = "v.06",
["Victory for the "] = "VÃÅ¥azstvo pre", -- CTF_Blizzard, Capture_the_Flag
- ["Waypoint placed."] = "NavigaÄný bod umiestnený.",
- ["Weapons Reset"] = "Zbrane obnovené",
- ["WINNING TIME: "] = "VÃŤAZNà ČAS: ",
- ["You'd almost swear the water was rising!"] = "Prisahali by ste, že voda stúpala!",
+-- ["Waypoint placed."] = "",
+-- ["Weapons Reset"] = "",
+ ["WINNING TIME: "] = "ÄŒAS PRE VÃŤAZSTVO: ",
+-- ["You'd almost swear the water was rising!"] = "",
["You have SCORED!!"] = "SKÓROVALI ste!!",
- ["You saved"] = "Uložili ste",
+ ["You saved"] = "Zachránili ste",
["You've failed. Try again."] = "Neuspeli ste. Skúste to znova.",
["You've reached the goal!| |Time: "] = "Dosiahli ste cieľ!| |Čas: ",
["'Zooka Team"] = "Bazuka tÃm",
Binary file share/hedgewars/Data/Maps/Basketball/mask.png has changed
--- a/share/hedgewars/Data/Maps/Battlefield/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/Battlefield/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/Battlefield)
Binary file share/hedgewars/Data/Maps/Battlefield/mask.png has changed
Binary file share/hedgewars/Data/Maps/Blizzard/mask.png has changed
--- a/share/hedgewars/Data/Maps/Blox/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/Blox/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/Blox)
Binary file share/hedgewars/Data/Maps/Blox/mask.png has changed
--- a/share/hedgewars/Data/Maps/Cake/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/Cake/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/Cake)
Binary file share/hedgewars/Data/Maps/Cake/mask.png has changed
--- a/share/hedgewars/Data/Maps/Castle/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/Castle/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/Castle)
Binary file share/hedgewars/Data/Maps/Castle/mask.png has changed
--- a/share/hedgewars/Data/Maps/Cave/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/Cave/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/Cave)
Binary file share/hedgewars/Data/Maps/Cave/mask.png has changed
--- a/share/hedgewars/Data/Maps/Cheese/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/Cheese/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/Cheese)
Binary file share/hedgewars/Data/Maps/Cheese/mask.png has changed
--- a/share/hedgewars/Data/Maps/EarthRise/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/EarthRise/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/EarthRise)
Binary file share/hedgewars/Data/Maps/EarthRise/mask.png has changed
--- a/share/hedgewars/Data/Maps/HedgeFortress/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/HedgeFortress/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/HedgeFortress)
Binary file share/hedgewars/Data/Maps/HedgeFortress/mask.png has changed
--- a/share/hedgewars/Data/Maps/Lonely_Island/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Maps/Lonely_Island/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -1,5 +1,6 @@
install(FILES
map.png
+ mask.png
map.cfg
preview.png
DESTINATION ${SHAREPATH}Data/Maps/Lonely_Island)
Binary file share/hedgewars/Data/Maps/Lonely_Island/mask.png has changed
Binary file share/hedgewars/Data/Maps/TrophyRace/mask.png has changed
--- a/share/hedgewars/Data/Names/BlueCap.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/BlueHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/BrainSlug.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-brainslug
--- a/share/hedgewars/Data/Names/BrainSlugMouth.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-brainslug
--- a/share/hedgewars/Data/Names/Bunny.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/GreenCap.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/GreenHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/GreyHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/KirbyMask.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/OrangeHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/PinkHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/PurpleHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/RedCap.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/RedHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/Ryu.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/Sonic.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/YellowCap.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/YellowHair.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/apple.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-apple
-fruit
--- a/share/hedgewars/Data/Names/banana.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-banana
-fruit
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/cap_blue.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/cap_green.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/cap_red.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/cap_yellow.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- a/share/hedgewars/Data/Names/cyborg.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/cyborg1.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- a/share/hedgewars/Data/Names/darthvader.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/fr_apple.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,2 @@
+apple
+fruit
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/fr_banana.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,2 @@
+banana
+fruit
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/fr_lemon.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,2 @@
+lemon
+fruit
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/fr_orange.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,2 @@
+orange
+fruit
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_blue.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_green.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_grey.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_orange.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_pink.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_purple.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_red.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/hair_yellow.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- a/share/hedgewars/Data/Names/lemon.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-lemon
-fruit
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/mv_Venom.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/ntd_Kirby.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- a/share/hedgewars/Data/Names/orange.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-orange
-fruit
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/poke_slowpoke.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/scif_BrainSlug.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+brainslug
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/scif_BrainSlug2.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+brainslug
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/scif_swDarthvader.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/scif_swStormtrooper.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/sf_ryu.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- a/share/hedgewars/Data/Names/slowpoke.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/sth_Sonic.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
--- a/share/hedgewars/Data/Names/stormtrooper.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- a/share/hedgewars/Data/Names/venom.cfg Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-generic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Names/zoo_Bunny.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1 @@
+generic
Binary file share/hedgewars/Data/Themes/Bamboo/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Blox/LandBackTex.png has changed
--- a/share/hedgewars/Data/Themes/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/share/hedgewars/Data/Themes/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -5,6 +5,7 @@
Blox
Brick
Cake
+ Cave
Castle
Cheese
Christmas
Binary file share/hedgewars/Data/Themes/Cake/LandBackTex.png has changed
Binary file share/hedgewars/Data/Themes/Cave/Border.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Border.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="128"
+ height="32"
+ version="1.0"
+ sodipodi:docname="Border.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Border.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective9" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="4.3515626"
+ inkscape:cx="55.91344"
+ inkscape:cy="46.958919"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2"
+ inkscape:window-maximized="0"
+ borderlayer="true" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="main">
+ <path
+ style="fill:#727793;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999000000002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;color:#000000"
+ d="M -2.59375,-1.96875 C -2.59375,-1.96875 -3.7460784,4.1342238 -2.59375,6.5 C -1.4414216,8.8657761 1.5584341,11.901014 4.5625,12.09375 C 7.5665658,12.286486 10.837582,4.0363139 13.875,4.0625 C 16.912418,4.0886863 18.928062,11.200773 21.875,11.375 C 24.821937,11.549227 28.399078,6.9222753 31.3125,6.96875 C 34.225922,7.0152249 37.85079,11.035782 41.21875,10.9375 C 44.586709,10.839219 44.047277,4.2333587 47.3125,4.28125 C 50.57772,4.3291416 55.852262,9.8771199 58.1875,9.9375 C 60.522739,9.99788 61.46392,7.8985345 64.3125,8.0625 C 67.161075,8.2264652 70.453946,10.710593 73.5625,10.53125 C 76.671055,10.351907 77.4329,3.0705724 80,2.5625 C 82.567104,2.0544274 88.175909,9.3244251 91.1875,9.0625 C 94.199093,8.8005746 95.328865,5.2437183 98.84375,5.71875 C 102.35863,6.1937815 102.50329,10.095946 105.93129,9.9063008 C 109.35928,9.7166558 108.63365,4.9181377 111.68758,4.4624542 C 114.74151,4.0067709 115.26237,5.5365773 117.90951,6.0203882 C 120.01052,6.6249959 122.26856,2.9387625 124.0016,3.5672695 C 124.77127,3.8744963 125.36087,6.4068273 125.40625,6.5 C 126.55858,8.8657761 129.55844,11.901014 132.5625,12.09375 C 135.19106,12.262394 138.01676,5.9652068 140.71875,4.40625 L 140.71875,-1.96875 L -2.59375,-1.96875 z"
+ id="rect2389"
+ sodipodi:nodetypes="csssssssssssssssccssccc" />
+ <path
+ sodipodi:nodetypes="csssssssssssssssccssccc"
+ id="path2418"
+ d="M 140.2066,33.708898 C 140.2066,33.708898 141.35893,27.605924 140.2066,25.240148 C 139.05428,22.874371 136.05442,19.839134 133.05035,19.646398 C 130.04629,19.453662 126.77527,27.703834 123.73785,27.677648 C 120.70044,27.651461 118.68479,20.539375 115.73785,20.365148 C 112.79092,20.190921 109.21378,24.817872 106.30035,24.771398 C 103.38693,24.724923 99.762064,20.704366 96.394104,20.802648 C 93.026145,20.900929 93.565577,27.506789 90.300354,27.458898 C 87.035134,27.411006 81.760592,21.863028 79.425354,21.802648 C 77.090115,21.742268 76.148934,23.841613 73.300354,23.677648 C 70.451779,23.513682 67.158908,21.029555 64.050354,21.208898 C 60.941799,21.388241 60.179954,28.669575 57.612854,29.177648 C 55.04575,29.68572 49.436945,22.415722 46.425354,22.677648 C 43.413761,22.939573 42.283989,26.496429 38.769104,26.021398 C 35.254224,25.546366 35.109564,21.644202 31.681564,21.833847 C 28.253574,22.023492 28.979204,26.82201 25.925274,27.277693 C 22.871344,27.733377 22.350484,26.20357 19.703344,25.719759 C 17.602334,25.115152 15.344294,28.801385 13.611254,28.172878 C 12.841584,27.865651 12.251984,25.33332 12.206604,25.240148 C 11.054274,22.874371 8.054414,19.839134 5.050354,19.646398 C 2.421794,19.477754 -0.40390596,25.774941 -3.105896,27.333898 L -3.105896,33.708898 L 140.2066,33.708898 z"
+ style="fill:#2f3140;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;color:#000000;stroke-dasharray:none" />
+ <path
+ style="fill:#626780;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999000000002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;color:#000000"
+ d="M 139.90625 -1.96875 L 139.90625 3.9375 C 137.20426 5.4964568 134.37856 11.793644 131.75 11.625 C 130.99899 11.576816 130.25294 11.348622 129.53125 11 C 130.49405 11.602732 131.52212 12.027001 132.5625 12.09375 C 135.19106 12.262394 138.01676 5.9652068 140.71875 4.40625 L 140.71875 -1.96875 L 139.90625 -1.96875 z M 79.1875 2.09375 C 76.6204 2.6018224 75.858555 9.883157 72.75 10.0625 C 69.641446 10.241843 66.348575 7.7577152 63.5 7.59375 C 60.65142 7.4297845 59.710239 9.52913 57.375 9.46875 C 56.983702 9.4586326 56.50182 9.2978257 55.96875 9.03125 C 56.84265 9.5606122 57.60369 9.922405 58.1875 9.9375 C 60.522739 9.99788 61.46392 7.8985345 64.3125 8.0625 C 67.161075 8.2264652 70.453946 10.710593 73.5625 10.53125 C 76.671055 10.351907 77.4329 3.0705724 80 2.5625 C 80.448643 2.4737061 80.989401 2.6328831 81.59375 2.9375 C 80.659869 2.331478 79.829276 1.9667318 79.1875 2.09375 z M 122.875 3.03125 C 121.19125 2.9161437 119.06345 6.1293197 117.09375 5.5625 C 114.44661 5.0786891 113.92893 3.5443167 110.875 4 C 107.82107 4.4556835 108.55299 9.247855 105.125 9.4375 C 104.49456 9.4723773 103.98097 9.3513914 103.53125 9.15625 C 104.1531 9.6429793 104.89625 9.9638547 105.9375 9.90625 C 109.36549 9.716605 108.63357 4.9244335 111.6875 4.46875 C 114.74143 4.0130667 115.25911 5.5474391 117.90625 6.03125 C 119.86295 6.5943283 121.94683 3.4288796 123.625 3.5 C 123.49426 3.3129666 123.33374 3.1521231 123.1875 3.09375 C 123.07918 3.0544683 122.98725 3.0389238 122.875 3.03125 z M 13.0625 3.59375 C 10.025081 3.5675639 6.7540658 11.817736 3.75 11.625 C 2.9989835 11.576816 2.2529384 11.348622 1.53125 11 C 2.4940544 11.602732 3.5221169 12.027001 4.5625 12.09375 C 7.5665658 12.286486 10.837582 4.0363139 13.875 4.0625 C 14.12999 4.0646983 14.383256 4.1249722 14.625 4.21875 C 14.135258 3.839934 13.606587 3.5984407 13.0625 3.59375 z M 46.5 3.8125 C 43.234777 3.7646087 43.774209 10.37047 40.40625 10.46875 C 39.1639 10.505004 37.88866 9.9909291 36.625 9.3125 C 38.150245 10.194382 39.709547 10.981541 41.21875 10.9375 C 44.586709 10.839219 44.047277 4.2333587 47.3125 4.28125 C 48.076042 4.292449 48.954989 4.6215411 49.875 5.09375 C 48.662148 4.3816043 47.483494 3.8269252 46.5 3.8125 z M 97.40625 5.21875 C 94.374925 5.219063 93.198368 8.3481949 90.375 8.59375 C 89.850725 8.6393475 89.245697 8.4551528 88.59375 8.125 C 89.559676 8.739133 90.450179 9.1266265 91.1875 9.0625 C 94.199093 8.8005746 95.328865 5.2437183 98.84375 5.71875 C 99.272126 5.7766445 99.659698 5.8851569 100 6.03125 C 99.469976 5.6554717 98.83304 5.3583612 98.03125 5.25 C 97.81157 5.2203105 97.608338 5.2187291 97.40625 5.21875 z M 30.5 6.5 C 27.586578 6.4535253 24.009437 11.080477 21.0625 10.90625 C 20.888823 10.895982 20.730107 10.868092 20.5625 10.8125 C 20.984936 11.124989 21.414541 11.347777 21.875 11.375 C 24.821937 11.549227 28.399078 6.9222753 31.3125 6.96875 C 32.313154 6.9847124 33.401977 7.4993199 34.53125 8.125 C 33.108388 7.2895369 31.739811 6.5197775 30.5 6.5 z "
+ id="path3753" />
+ <path
+ style="fill:#45495f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;color:#000000;stroke-dasharray:none"
+ d="M 5.0625 19.65625 C 2.43394 19.487606 -0.39175996 25.784793 -3.09375 27.34375 L -3.09375 33.71875 L -2.28125 33.71875 L -2.28125 27.75 C 0.42074001 26.191043 3.24644 19.893856 5.875 20.0625 C 6.4382613 20.098638 6.980435 20.224649 7.53125 20.4375 C 6.7306193 20.014311 5.9043596 19.710262 5.0625 19.65625 z M 133.0625 19.65625 C 130.05844 19.463514 126.78742 27.713686 123.75 27.6875 C 123.57042 27.685952 123.39159 27.641936 123.21875 27.59375 C 123.64778 27.886143 124.09163 28.08969 124.5625 28.09375 C 127.59992 28.119936 130.87094 19.869764 133.875 20.0625 C 134.43826 20.098638 134.98043 20.224649 135.53125 20.4375 C 134.73062 20.014311 133.90436 19.710262 133.0625 19.65625 z M 115.1875 20.375 C 112.35564 20.739603 109.04384 24.824819 106.3125 24.78125 C 105.67112 24.771019 104.98126 24.559091 104.28125 24.25 C 105.27221 24.772041 106.2385 25.17336 107.125 25.1875 C 110.03843 25.233974 113.61557 20.607023 116.5625 20.78125 C 116.71331 20.790166 116.85381 20.800375 117 20.84375 C 116.59958 20.561171 116.18467 20.400698 115.75 20.375 C 115.56582 20.364111 115.37629 20.350693 115.1875 20.375 z M 96.40625 20.8125 C 93.038291 20.910781 93.577723 27.516641 90.3125 27.46875 C 89.737072 27.46031 89.0794 27.289934 88.40625 27 C 89.382273 27.516494 90.319308 27.863183 91.125 27.875 C 94.390223 27.922891 93.850791 21.31703 97.21875 21.21875 C 98.060741 21.19418 98.891028 21.417417 99.75 21.78125 C 98.623876 21.212565 97.511265 20.780254 96.40625 20.8125 z M 64.0625 21.21875 C 60.953945 21.398093 60.1921 28.679427 57.625 29.1875 C 57.266306 29.258491 56.837081 29.159706 56.375 28.96875 C 57.160939 29.434613 57.880417 29.704006 58.4375 29.59375 C 61.0046 29.085677 61.766445 21.804343 64.875 21.625 C 67.983554 21.445657 71.276425 23.929784 74.125 24.09375 C 76.97358 24.257715 77.914761 22.15837 80.25 22.21875 C 80.53427 22.2261 80.856295 22.318585 81.21875 22.46875 C 80.528177 22.084067 79.920431 21.824987 79.4375 21.8125 C 77.102261 21.75212 76.16108 23.851465 73.3125 23.6875 C 70.463925 23.523534 67.171054 21.039407 64.0625 21.21875 z M 31.6875 21.84375 C 28.25951 22.033395 28.99143 26.825567 25.9375 27.28125 C 24.410535 27.509092 23.499099 27.229718 22.65625 26.84375 C 23.802857 27.400639 24.736549 27.987932 26.75 27.6875 C 29.80393 27.231817 29.07201 22.439645 32.5 22.25 C 33.02152 22.221148 33.450789 22.272166 33.84375 22.40625 C 33.272655 22.021736 32.59592 21.793494 31.6875 21.84375 z M 46.4375 22.6875 C 43.425907 22.949425 42.296135 26.506281 38.78125 26.03125 C 38.428466 25.983572 38.104109 25.890375 37.8125 25.78125 C 38.300042 26.091645 38.888696 26.342213 39.59375 26.4375 C 43.108635 26.912531 44.238407 23.355675 47.25 23.09375 C 47.626449 23.061009 48.022152 23.13977 48.46875 23.3125 C 47.709622 22.890014 47.03582 22.635463 46.4375 22.6875 z M 19.3125 25.65625 C 17.507013 25.569412 15.61176 28.213244 14.0625 28.25 C 14.179089 28.403228 14.309222 28.542545 14.4375 28.59375 C 16.17054 29.222257 18.43024 25.520393 20.53125 26.125 C 21.193035 26.245953 21.718698 26.420665 22.1875 26.625 C 21.496959 26.284378 20.80222 25.916773 19.71875 25.71875 C 19.587437 25.680962 19.444873 25.662617 19.3125 25.65625 z "
+ id="path3758" />
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,6 @@
+file(GLOB images *.png)
+
+install(FILES
+ theme.cfg
+ ${images}
+ DESTINATION ${SHAREPATH}Data/Themes/Cave)
Binary file share/hedgewars/Data/Themes/Cave/Chunk.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Chunk.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="64"
+ height="64"
+ version="1.0"
+ sodipodi:docname="Chunk.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Chunk.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="display:inline">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5" />
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="3.2821541"
+ inkscape:cx="38.186952"
+ inkscape:cy="-3.5465054"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false"
+ borderlayer="true">
+ <sodipodi:guide
+ orientation="0,1"
+ position="792.81865,32"
+ id="guide3379" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="32,-130.98743"
+ id="guide3519" />
+ </sodipodi:namedview>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="main"
+ style="display:inline"
+ transform="translate(0,-448)">
+ <g
+ id="layer3"
+ inkscape:label="tmp"
+ style="display:inline"
+ transform="translate(552.95262,83.18474)" />
+ <g
+ transform="matrix(0.18941945,0,0,0.18941945,-14.061602,422.8167)"
+ id="g5276">
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5280"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5282"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5284"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.17951347,-0.03074518,0.03862245,0.22550696,-53.192472,403.15821)"
+ id="g5446">
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path5450"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.16941404px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscsssc"
+ id="path5452"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.16941404px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscccc"
+ id="path5454"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.16941404px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.30640534,-0.0509375,0.0509375,0.30640534,-51.923411,330.05156)"
+ id="g5656">
+ <path
+ id="path5660"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cczcccc"
+ id="path5662"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5664"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ id="path4608"
+ d="m 55.793457,500.9665 c -0.143979,-0.15462 -6.768345,-12.42428 -6.768345,-12.42428 l -11.747013,-2.777 1.047192,12.44515 13.769244,7.52993 3.144342,-0.17798 z"
+ style="display:inline;color:#000000;fill:#a6c2df;fill-opacity:0.51263535000000005;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4610"
+ d="m 48.655723,488.65049 -10.858641,-2.50493 6.493917,10.42694 z"
+ style="display:inline;color:#000000;fill:#ffffff;fill-opacity:0.27797833999999999;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4612"
+ d="m 53.541204,497.89318 -4.506984,-9.14344 -3.296484,5.7159 2.108381,-2.65938 2.362351,8.38628 -5.418836,-3.1258 10.192872,7.43823 0.960956,-2.7135 -1.214269,-2.00261 -0.249768,1.38505 -0.518357,1.7068 -1.52498,-1.30927 -1.361663,-8.48525 z"
+ style="display:inline;color:#000000;fill:#ffffff;fill-opacity:0.71480144000000001;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ style="display:inline;color:#000000;fill:#ffffff;fill-opacity:0.71480144000000001;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate"
+ d="m 48.936328,488.64189 -7.71052,0.9085 -0.967533,-1.69115 1.579939,-0.67653 -3.573981,-0.69996 5.888384,8.69806 -1.670175,-3.73219 4.094398,-1.39608 -0.791368,3.88811 z"
+ id="path4615"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="display:inline;color:#000000;fill:#98b8da;fill-opacity:0.18411553999999999;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate"
+ d="m 43.819569,497.2395 -6.240563,-10.19991 0.982586,11.13138 z"
+ id="path4617"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4620"
+ d="m 54.38621,505.02933 -2.361496,0.59255 -13.12158,-7.37203 5.449535,-0.85039 z"
+ style="display:inline;color:#000000;fill:#6696c8;fill-opacity:0.19494586999999999;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate" />
+ <path
+ style="display:inline;color:#000000;fill:#ffffff;fill-opacity:0.71480144000000001;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate"
+ d="m 50.523396,505.19112 -1.56151,-4.0387 4.025973,2.70678 -8.533896,-6.4313 1.463421,1.42445 1.249192,4.07578 -6.348112,-3.63814 1.088208,-1.40012 -2.898377,0.44133 z"
+ id="path4622"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4625"
+ d="m 43.496901,496.97439 -3.952158,-0.31781 -0.684765,-5.678 1.186539,-0.11908 -2.520855,-4.29956 1.108513,11.26671 z"
+ style="display:inline;color:#000000;fill:#ffffff;fill-opacity:0.71480144000000001;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 49.000722,488.58212 -4.793997,8.54504 -5.831727,1.05193 m -1.050142,-12.37049 6.890595,11.24957 10.08809,7.95222 m 1.109077,-3.73921 C 55.268639,501.11656 49.02511,488.54221 49.02511,488.54221 l -11.747003,-2.777 1.047192,12.44515 13.509586,7.11369 3.217376,0.0337 z"
+ style="display:inline;color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;overflow:visible;enable-background:accumulate"
+ id="path4627" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/Crystal01.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Crystal01.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,461 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="165"
+ height="260"
+ version="1.0"
+ sodipodi:docname="Crystal01.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Crystal01.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5" />
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="2.8284271"
+ inkscape:cx="56.597117"
+ inkscape:cy="65.615904"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false"
+ inkscape:window-maximized="0">
+ <sodipodi:guide
+ orientation="1,0"
+ position="134,-0.8125"
+ id="guide2693" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="11.75,2"
+ id="guide2695" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="173,15"
+ id="guide2701" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="21,22.75"
+ id="guide3852" />
+ </sodipodi:namedview>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="main"
+ style="display:inline">
+ <g
+ id="g3913"
+ transform="matrix(0.99309071,-0.11734926,0.11734926,0.99309071,-25.579298,9.397104)">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3144"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 101.18807,269.67873 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3808"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3765"
+ d="m 43.999999,220.25 -26.224871,-119.25305 59.706232,18.35338 -31.761315,-4.8332 36.21331,116.54881 18.892745,-99.8037 -23.299766,133.9308 -25.034815,-2.43546 -4.499441,-21.70912 12.879079,21.59631 14.378596,1.149 5.631446,-25.40982 -48.17554,-84.75836 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ id="path3842"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 78.734507,267.76311 M 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 101.93059,269.51473 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3762" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3803" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ id="path3806"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3827"
+ d="M 81.234507,265.26311 100.96308,266.87902 149.25,101.5 106,130.75 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 113.48338,224.5417 -15.223555,-38.05879 -10.444982,44.72126 17.666517,-99.60384 -0.9558,19.30911 17.6271,36.30165 20.53151,-66.15097 -16.57072,-2.68541 22.93224,-15.63272 z"
+ id="path3850"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3865"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <g
+ id="g3925"
+ transform="matrix(0.35812573,0.12426305,-0.14951633,0.42540169,123.17437,144.01309)">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ id="path3927"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ id="path3929"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 43.999999,220.25 17.775128,100.99695 77.48136,119.35033 45.720045,114.51713 85.59877,232.00255 103.69021,128.32807 83.703813,266.17475 l -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 3.119382,-25.45492 -51.840955,-85.69497 z"
+ id="path3931"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3933"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ id="path3935"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:4.83754587;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ id="path3937"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:4.83754587;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3939"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ id="path3941"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3943"
+ d="m 122.68414,225.50305 -21.47438,-38.41982 -7.725368,38.74914 11.996968,-94.23204 -0.9558,19.30911 22.59825,40.03581 17.10867,-70.20565 -18.11903,-2.36489 22.93224,-15.63272 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ id="path3945"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.25422969,-0.09121302,0.07834536,0.28778697,-5.9840916,197.55067)"
+ id="g3947">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3949"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3951"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3953"
+ d="M 43.999999,220.25 17.775128,100.99695 77.48136,119.35033 45.720045,114.51713 85.59877,232.00255 103.69021,128.32807 83.703813,266.17475 l -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 3.119382,-25.45492 -51.840955,-85.69497 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ id="path3955"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:7.05740213;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3957" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:7.05740213;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3959" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ id="path3961"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3963"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 122.68414,225.50305 -21.47438,-38.41982 -7.725368,38.74914 11.996968,-94.23204 -0.9558,19.30911 22.59825,40.03581 17.10867,-70.20565 -18.11903,-2.36489 22.93224,-15.63272 z"
+ id="path3965"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3967"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <g
+ transform="matrix(0.24846027,0.06454771,-0.05057394,0.20812091,87.927552,211.70647)"
+ id="g3991">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3993"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3995"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3997"
+ d="M 43.999999,220.25 17.775128,100.99695 77.48136,119.35033 45.720045,114.51713 85.59877,232.00255 103.69021,128.32807 83.703813,266.17475 l -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 3.119382,-25.45492 -51.840955,-85.69497 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ id="path3999"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:8.5300293;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4001" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:8.5300293;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4003" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ id="path4005"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4007"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 122.68414,225.50305 -21.47438,-38.41982 -7.725368,38.74914 11.996968,-94.23204 -0.9558,19.30911 22.59825,40.03581 17.10867,-70.20565 -18.11903,-2.36489 22.93224,-15.63272 z"
+ id="path4009"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4011"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <g
+ id="g4013"
+ transform="matrix(0.23525591,-0.10273057,0.08879905,0.19490194,14.27571,224.50321)">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ id="path4015"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ id="path4017"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 43.999999,220.25 17.775128,100.99695 77.48136,119.35033 45.720045,114.51713 85.59877,232.00255 103.69021,128.32807 83.703813,266.17475 l -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 3.119382,-25.45492 -51.840955,-85.69497 z"
+ id="path4019"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4021"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ id="path4023"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:8.5300293;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ id="path4025"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:8.5300293;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4027"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ id="path4029"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4031"
+ d="m 122.68414,225.50305 -21.47438,-38.41982 -7.725368,38.74914 11.996968,-94.23204 -0.9558,19.30911 22.59825,40.03581 17.10867,-70.20565 -18.11903,-2.36489 22.93224,-15.63272 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ id="path4033"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g3969"
+ transform="matrix(0.36224638,4.3552761e-4,0.03288198,0.30216477,40.678026,187.1825)">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ id="path3971"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ id="path3973"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 43.999999,220.25 17.775128,100.99695 77.48136,119.35033 45.720045,114.51713 85.59877,232.00255 103.69021,128.32807 83.703813,266.17475 l -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 3.119382,-25.45492 -51.840955,-85.69497 z"
+ id="path3975"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3977"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ id="path3979"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:6.04553127;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ id="path3981"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:6.04553127;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3983"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ id="path3985"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3987"
+ d="m 122.68414,225.50305 -21.47438,-38.41982 -7.725368,38.74914 11.996968,-94.23204 -0.9558,19.30911 22.59825,40.03581 17.10867,-70.20565 -18.11903,-2.36489 22.93224,-15.63272 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ id="path3989"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/Crystal02.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Crystal02.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="84"
+ height="132"
+ version="1.0"
+ sodipodi:docname="Crystal02.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Crystal02.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5" />
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="7.6"
+ inkscape:cx="37.699473"
+ inkscape:cy="21.181726"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-maximized="0"
+ inkscape:snap-global="false">
+ <sodipodi:guide
+ orientation="1,0"
+ position="16,-3.1168523"
+ id="guide2415" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="73,-8.4868421"
+ id="guide2417" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="113.02632,3"
+ id="guide3059" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="109.47368,8"
+ id="guide3061" />
+ </sodipodi:namedview>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="main"
+ style="display:inline"
+ transform="translate(0,-43)">
+ <g
+ id="layer3"
+ inkscape:label="tmp"
+ style="display:inline"
+ transform="translate(-6.2794864,-14.44835)" />
+ <g
+ style="display:inline"
+ id="g3969"
+ transform="matrix(0.19698415,0.07609454,-0.04538697,0.17127454,56.305723,125.20883)">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ id="path3971"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ id="path3973"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 43.999999,220.25 -26.224871,-119.25305 92.885202,26.27856 -69.805507,5.65917 41.793993,95.48948 22.733764,-84.55128 -21.678767,122.30187 -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 2.133481,-12.01209 -49.081455,-76.44488 z"
+ id="path3975"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3977"
+ d="M 17.758101,99.618268 80.665954,25.85162 109.19596,122.73926 83.323607,51.946862 30.184737,95.570755 73.762449,116.01724 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ id="path3981"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:10.37062359;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3983"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ id="path3985"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3987"
+ d="m 122.68414,225.50305 -14.9757,-30.71422 -14.224048,31.04354 25.517658,-97.70493 -8.41578,54.14953 17.0148,6.65002 16.63141,-68.18739 -18.11903,-2.36489 22.93224,-15.63272 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 115.58522,121.34522 135.59857,98.144776 109.95736,84.325661 117.43646,117.39654 106.76983,80.833268 84.896154,9.857084 106.056,62.667086 151.51042,97.073739 z"
+ id="path3989"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3979"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:10.37062359;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 16.926368,99.619347 115.33363,123.82829 152.45381,97.603801 M 79.955804,5.1022591 114.52531,123.5411 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ </g>
+ <g
+ id="g3048"
+ transform="matrix(0.10024758,-0.08722347,0.07408418,0.08247954,4.5769237,161.85289)"
+ style="display:inline">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ id="path3050"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ id="path3052"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 43.999999,220.25 17.775128,100.99695 77.48136,119.35033 45.720045,114.51713 85.59877,232.00255 103.69021,128.32807 83.703813,266.17475 l -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 3.119382,-25.45492 -51.840955,-85.69497 z"
+ id="path3054"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3056"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ id="path3058"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:16.47877312;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ id="path3060"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:16.47877312;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3062"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ id="path3064"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3066"
+ d="m 122.68414,225.50305 -21.47438,-38.41982 -7.725368,38.74914 11.996968,-94.23204 -0.9558,19.30911 22.59825,40.03581 17.10867,-70.20565 -18.11903,-2.36489 22.93224,-15.63272 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ id="path3068"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3913"
+ transform="matrix(0.46081107,0.0225293,-0.0225293,0.46081107,14.409333,41.005723)">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3144"
+ d="m 56.672144,289.6628 c 0,-2 -40.172145,-190.162789 -40.172145,-190.162789 L 79.999996,4.5000128 152.99999,97.500011 95.560766,294.99015 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3808"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3765"
+ d="m 43.999999,220.25 -26.224871,-119.25305 59.706232,18.35338 -31.761315,-4.8332 36.21331,116.54881 18.892745,-99.8037 -23.299766,133.9308 -25.034815,-2.43546 -4.499441,-21.70912 12.879079,21.59631 14.378596,1.149 5.631446,-25.40982 -48.17554,-84.75836 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 77.691118,118.89877 94.052118,102.86337 83.323607,51.946862 67.461921,36.121651 z"
+ id="path3842"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 72.380289,294.72532 m -20.621107,-6.43757 c 0,-2 -35.259183,-188.787739 -35.259183,-188.787739 L 79.999996,4.5000128 152.99999,97.500011 95.114437,295.28809 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:4.33499575;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3762" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.7764,4.9912575 65,81.000005 71,266.5"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:4.33499575;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3803"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ id="path3806"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3827"
+ d="M 81.234507,265.26311 100.96308,266.87902 149.25,101.5 106,130.75 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 113.48338,224.5417 -15.223555,-38.05879 -10.444982,44.72126 17.666517,-99.60384 -0.9558,19.30911 17.6271,36.30165 20.53151,-66.15097 -16.57072,-2.68541 22.93224,-15.63272 z"
+ id="path3850"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3865"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <g
+ style="display:inline"
+ transform="matrix(0.14483936,0.03762794,-0.02948197,0.12132362,41.953914,142.54094)"
+ id="g3991">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3993"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3995"
+ d="M 19.758101,97.868268 78.85608,10.482759 101.09441,124.62132 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3997"
+ d="M 43.999999,220.25 17.775128,100.99695 77.48136,119.35033 45.720045,114.51713 85.59877,232.00255 103.69021,128.32807 83.703813,266.17475 l -31.212294,-3.41717 -4.499441,-21.70912 12.879079,21.59631 20.556075,2.13071 3.119382,-25.45492 -51.840955,-85.69497 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 17.758101,99.618268 79.60608,8.9827591 101.84441,125.62132 83.323607,51.946862 25.650105,93.611728 73.762449,116.01724 z"
+ id="path3999"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="M 16.926368,99.619347 105.25535,127.92179 152.45381,97.603801 M 79.955804,5.1022591 104.75,127.5 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:14.63257885;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4001" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 17,99.000004 47.75,-18.749999 87,16.499999 M 79.5,4.5000067 65,81.000005 71,266.5"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:14.63257885;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4003" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ id="path4005"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4007"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 122.68414,225.50305 -21.47438,-38.41982 -7.725368,38.74914 11.996968,-94.23204 -0.9558,19.30911 22.59825,40.03581 17.10867,-70.20565 -18.11903,-2.36489 22.93224,-15.63272 z"
+ id="path4009"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4011"
+ d="M 109.18934,122.28553 138.83406,94.692743 95.448629,31.511489 89.576819,43.112678 83.409381,11.60408 148.38478,96.832738 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3925"
+ transform="matrix(0.30855158,-0.07490646,0.08763321,0.36738086,-12.338863,96.004624)">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 50.999997,264.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ id="path3927"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 19.758101,97.868268 78.85608,10.482759 102.06297,137.44984 z"
+ id="path3929"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 28.173988,156.16756 -9.142836,-54.12407 7.673222,22.23799 62.763703,77.85868 14.222133,-73.81209 -19.986397,137.84668 -2.276581,-1.39927 7.305185,-56.43168 -47.737189,-23.89243 z"
+ id="path3931"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3933"
+ d="M 17.758101,99.618268 39.62789,65.382043 84.522932,58.117123 83.800395,33.752716 101.84441,125.62132 85.490305,69.735262 25.650105,93.611728 74.689301,121.93229 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ id="path3937"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:5.7754221;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.09025269;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 17,99.000004 64.663074,73.495728 151.75,96.750004 M 79.5,4.5000067 64.913074,74.245728 71,266.5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3939"
+ d="M 106.68934,123.53553 84.159381,12.604079 149.13478,96.082738 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 87.499998,265.5 111.5,268.25 149.25,101.5 106,130.75 z"
+ id="path3941"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3943"
+ d="m 112.72317,270.45954 8.66826,-48.70168 -17.9071,-34.21086 -9.999938,38.28537 12.165628,-88.47158 14.29681,-11.09534 -10.82841,18.8329 18.00539,45.8469 18.00775,-81.13765 -19.54504,15.36464 23.45917,-22.43025 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 150.03088,97.098485 108.58805,124.22952 92.954926,36.055456 109.09328,42.881606 83.409381,11.60408 106.27376,133.54991 z"
+ id="path3945"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3935"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:5.7754221;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 16.926368,99.619347 105.304,139.04702 152.45381,97.603801 M 79.955804,5.1022591 105.26818,138.38414 84.999998,268 m -34.000001,-3.5 c 0,-2 -34.499998,-164.999989 -34.499998,-164.999989 L 79.999996,4.5000128 152.99999,97.500011 114.49999,271 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/CrystalSpray01.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/CrystalSpray01.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="98"
+ height="95"
+ version="1.0"
+ sodipodi:docname="CrystalSpray01.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="CrystalSpray01.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="display:inline">
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="4.6416668"
+ inkscape:cx="27.782397"
+ inkscape:cy="49.750162"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer6"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false"
+ fit-margin-top="1"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
+ <sodipodi:guide
+ orientation="0,1"
+ position="593.76172,-263.6875"
+ id="guide3377" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer6"
+ inkscape:label="main"
+ style="display:inline"
+ transform="translate(-30.21875,-25.3125)">
+ <g
+ id="g4542"
+ transform="translate(0.16574703,-0.3615565)">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3144"
+ d="M 79.259775,72.990284 C 79.27692,72.639608 74.625058,43.763781 74.625058,43.763781 L 86.573391,27.651023 98.575828,44.583234 88.015254,74.328543 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3808"
+ d="M 75.210315,43.505604 86.321533,28.69022 89.242318,48.893674 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3765"
+ d="m 78.411737,65.171574 -3.575933,-21.134392 10.311435,3.729868 -5.527531,-1.119713 5.350467,20.745861 4.168169,-17.337419 -5.233437,23.283415 -4.368675,-0.641636 -0.602824,-3.845003 2.07306,3.897056 2.511263,0.324722 1.205229,-4.40703 -7.72042,-15.274334 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 74.844637,43.795301 11.374945,-7.369165 -0.616918,-4.894657 -3.304278,2.805196 3.790489,-4.718114 3.276374,19.45688 -2.831275,-9.037197 -8.63828,3.256276 6.628051,3.856233 z"
+ id="path3842"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 90.555788,49.235995 87.556377,29.592368 98.233424,44.786337 z"
+ id="path3806"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3827"
+ d="m 84.55449,73.383268 3.445315,0.452451 9.884218,-28.583282 -7.834107,4.75788 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 90.558019,66.519709 -2.343012,-6.803651 -2.214769,7.751795 3.951452,-17.312887 -0.333113,3.377426 2.779508,6.516162 4.167023,-11.422771 -2.882456,-0.612904 4.154901,-2.544425 z"
+ id="path3850"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3865"
+ d="m 90.681689,48.553514 4.68034,-4.637797 -5.1804,-8.595408 -1.6676,1.768353 -1.403742,-8.1628 10.66204,15.50081 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 74.698793,43.78836 15.244802,5.719681 8.535578,-4.911291 M 86.56048,27.756241 89.858604,49.429753 84.094714,73.800182 M 79.259775,72.990284 C 79.27692,72.639608 74.625058,43.763781 74.625058,43.763781 L 86.573391,27.651023 98.575828,44.583234 88.146852,74.306153 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3762" />
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 91.489171,69.725153 c 0.275525,0.07545 24.032339,1.472035 24.032339,1.472035 L 126.21332,83.529093 110.6474,90.077199 88.882328,76.443805 z"
+ id="path4252"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 103.33052,70.819695 12.21503,0.691319 9.88672,11.634784 -16.56296,-1.242419 z"
+ id="path4254"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4256"
+ d="m 114.56779,71.72722 -6.88223,10.63865 -7.08052,-3.763189 4.22646,0.185488 -5.491907,-7.215773 -6.608265,-1.281587 16.136312,1.616704 -6.66358,-0.128983 6.58846,6.395897 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4258"
+ d="m 115.45776,71.366046 10.15286,11.939663 -16.90737,-1.336735 10.84829,0.227994 -3.56404,-9.517097 -4.90174,5.782793 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4264"
+ d="m 108.59237,83.092132 14.73179,1.296691 -12.55113,5.263224 z"
+ style="color:#000000;fill:#5388c1;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 90.243407,73.86154 -0.966897,2.656893 20.96132,12.891254 -2.39789,-7.061715 z"
+ id="path4266"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4268"
+ d="m 94.636654,79.840488 5.817396,-0.661416 -5.766855,-3.126092 13.055165,6.191463 -2.62401,-0.860134 -5.666003,1.058824 8.338533,5.324099 0.9951,-2.18151 1.28845,3.748963 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 110.67568,88.933642 -1.43029,-5.843508 13.88265,1.129224 -5.87068,2.295297 2.85956,-1.831768 -9.6605,-0.62435 z"
+ id="path4270"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4260"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 115.48899,71.251424 -7.23134,11.100661 2.39606,7.645955 m 15.47831,-6.497756 -17.7972,-1.201905 -18.341503,-8.87556 m 1.495854,-3.697666 c 0.275525,0.07545 24.032339,1.472035 24.032339,1.472035 L 126.21332,83.529093 110.6474,90.077199 88.876908,76.552283 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path4274"
+ d="m 87.959931,66.472916 c 0.115145,0.388881 16.207649,30.09646 16.207649,30.09646 l -6.877599,22.127714 -19.548403,-13.8802 0.161599,-36.461481 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4278"
+ d="m 83.249805,71.284156 1.345327,21.774876 18.769368,2.501445 -13.72829,-3.537484 0.887735,-17.752945 8.25784,14.13069 -11.708081,-22.070129 1.041218,3.808034 -2.798184,13.875118 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4276"
+ d="M 103.62802,97.07423 97.167963,117.46794 85.874293,93.81746 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 103.91615,96.618814 97.108491,117.80278 86.069291,96.403816 93.912105,109.66284 102.72743,98.241092 92.082497,96.654493 z"
+ id="path4280"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#3f6083;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 84.870304,93.748995 96.984136,118.70728 77.982268,105.1931 z"
+ id="path4286"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4288"
+ d="m 82.037179,68.06521 -3.929069,0.821623 0.132329,34.936407 6.725566,-8.177401 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 78.22537,77.611246 4.084842,6.752228 0.408338,-9.296975 1.385311,19.660531 -0.925827,-3.314401 -4.184433,-5.700919 -0.602621,13.930232 3.376628,-0.431863 -3.558947,4.359901 z"
+ id="path4290"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4292"
+ d="m 84.757019,94.733192 -3.71854,9.356958 11.997221,10.01571 -1.201919,-4.65036 4.384278,8.05655 -17.54068,-12.83112 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 104.07781,96.570719 -19.288928,-3.757149 -6.94708,11.9517 M 97.2639,118.57744 84.642126,92.866487 82.379349,67.435178 m 5.580582,-0.962262 c 0.115145,0.388881 16.207649,30.09646 16.207649,30.09646 l -6.877599,22.127714 -19.548403,-13.8802 0.02666,-36.386844 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4282" />
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 80.801805,75.271306 C 80.626157,75.429268 69.035664,91.333102 69.035664,91.333102 l -13.358588,1.92636 0.463076,-14.348855 21.152567,-8.456047 z"
+ id="path4296"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 56.658266,79.243366 56.292853,92.887402 64.293978,81.995733 z"
+ id="path4298"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 77.468453,79.380984 -8.402033,11.721901 -3.103787,-6.693218 2.676528,2.524822 6.592755,-10.634766 -8.989721,5.091968 12.525399,-8.504775 1.763383,2.391017 -1.551215,2.109767 0.879475,-2.836792 -1.034726,-1.353537 -1.571915,2.388264 -4.743338,10.049327 z"
+ id="path4300"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4302"
+ d="M 68.946683,91.21327 56.101881,92.940006 64.58916,81.774714 59.581554,89.22017 67.795846,90.994564 65.96363,84.999528 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4308"
+ d="M 68.631573,90.958967 56.060296,92.2541 64.77241,81.782531 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 78.480873,72.555715 -1.416266,-1.860272 -20.189985,7.983505 4.082169,6.967921 3.754578,-4.642184 z"
+ id="path4310"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4312"
+ d="m 72.357501,72.939702 -2.140109,4.342917 4.752562,-2.614808 -10.627683,5.695873 3.063936,-2.033569 0.09937,-2.745567 -6.542564,2.963696 2.338637,1.667406 -5.607839,-1.694936 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 63.716087,81.393116 -4.764683,-0.424217 0.543852,4.62626 1.859646,-1.208487 -3.061076,4.457519 -1.012933,-8.990815 z"
+ id="path4314"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4304"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 69.012469,91.286231 -4.490672,-9.992773 -6.390433,-1.750621 m -2.397906,13.67294 8.791209,-11.844624 14.373219,-8.79333 m 1.903919,2.693483 C 80.626157,75.429268 69.035664,91.333102 69.035664,91.333102 l -13.358588,1.92636 1.055536,-14.860524 20.487059,-7.996637 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path4318"
+ d="M 82.721345,74.78197 C 82.318005,74.671247 47.535863,72.604939 47.535863,72.604939 L 31.892686,54.539571 54.689361,44.966293 86.544222,64.947255 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4320"
+ d="M 49.591049,55.367968 33.949931,53.882765 54.162392,45.510132 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4332"
+ d="M 82.49249,74.820389 84.367591,69.71248 58.259044,57.369421 48.205332,72.357301 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4322"
+ d="m 73.140627,73.151454 -25.232283,-0.720798 2.428648,-15.926129 -0.147785,12.87022 22.546897,-2.897498 -16.226883,-7.665714 27.820425,10.659243 -1.877122,4.913935 -4.950329,-0.779188 4.475868,-1.509438 1.404758,-1.974358 -4.974208,-1.465217 -17.875168,3.138105 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 47.702588,71.742708 33.300283,55.596621 57.769521,56.711903 z"
+ id="path4330"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 47.629362,72.357764 -14.854449,-17.490581 16.997784,1.433881 -12.920952,0.46426 9.518453,11.567791 1.742227,-9.001003 z"
+ id="path4324"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 74.890536,58.191432 -9.756885,1.771041 8.440677,4.582271 -21.425018,-8.753857 6.965026,1.315597 11.420686,-0.521802 -11.665398,-8.233678 -6.683361,2.762265 2.479572,-5.32861 z"
+ id="path4334"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4336"
+ d="m 49.183435,54.4197 1.677981,-5.836363 -9.919214,3.743646 5.353855,2.418885 L 33.514111,54.245292 54.299288,45.8601 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 47.583534,72.52556 2.141753,-17.431341 4.954768,-10.012032 m -22.66836,9.499637 17.654413,0.644817 35.24873,14.142767 M 82.721345,74.78197 C 82.318005,74.671247 47.535863,72.604939 47.535863,72.604939 L 31.892686,54.539571 54.689361,44.966293 86.552256,64.788432 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4326" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path4396"
+ d="M 90.325434,66.950754 C 90.487391,66.87533 102.38586,57.93455 102.38586,57.93455 l 10.08767,1.559528 -4.77806,9.418635 -15.896722,2.297503 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4398"
+ d="m 97.766012,62.630851 5.068468,-3.898053 0.31385,6.835487 -10.003696,3.515434 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4400"
+ d="m 93.644758,64.715158 8.667962,-6.620897 0.7654,5.527069 -0.80639,-2.754257 -8.072299,7.327766 8.794449,-2.233864 -11.724213,3.163982 -0.746886,-2.119131 1.588293,-1.183048 -1.263147,1.857365 0.449198,1.207691 2.270025,-0.502223 5.046834,-7.097577 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 102.42373,58.040889 7.40981,2.102012 -6.34446,5.687806 3.35557,-4.305113 -3.23295,-1.941079 -0.40392,3.609966 z"
+ id="path4402"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 103.84069,66.144384 8.13344,-6.007866 -4.30966,8.409748 z"
+ id="path4408"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4410"
+ d="m 91.403835,69.427882 0.613145,1.658532 15.21316,-2.326523 -3.99966,-2.399258 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 95.917562,70.503677 2.507843,-2.668047 -4.015367,0.840696 8.732022,-2.325625 -1.59967,0.650781 -2.274911,2.796418 6.131091,-0.832055 -0.40745,-1.443146 2.13074,1.267485 z"
+ id="path4412"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4414"
+ d="m 104.03619,66.299691 3.35239,1.360017 3.48019,-5.89597 -1.16089,-0.03799 2.31894,-1.687676 -4.45136,8.475744 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 102.39227,57.973578 1.03915,8.220097 4.23505,2.678723 m 4.75662,-9.359187 -8.97657,6.623635 -12.339411,3.182869 M 90.325434,66.950754 C 90.487391,66.87533 102.38586,57.93455 102.38586,57.93455 l 10.08767,1.559528 -4.77806,9.418635 -15.85544,2.351446 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4404" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="rect4478"
+ d="M 75.736071,56.883306 94.712734,62.664275 96.615786,81.38959 72.719914,77.493719 z"
+ style="color:#000000;fill:#76869e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#9ca8b9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 85.923896,72.506103 73.329558,76.885951 76.251544,58.382776 z"
+ id="path4512"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4514"
+ d="m 85.797131,72.672954 8.636624,7.545841 -19.22608,-2.396146 z"
+ style="color:#000000;fill:#7389a6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#5b718f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 86.374622,72.377497 8.134316,-8.691901 1.053447,16.802349 z"
+ id="path4516"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 74.721867,76.820259 6.749797,-4.815496 -4.3423,-9.674527 -2.745327,7.830794 1.094585,-12.700726 9.91877,14.847026 z"
+ id="path4519"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4521"
+ d="m 87.24211,61.251495 -7.877593,-1.661421 6.95278,8.531596 6.743839,-5.101068 -6.452384,9.683747 -10.111589,-15.416363 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 84.654589,72.977632 9.779166,7.241163 -13.208691,-1.634451 7.700423,-0.634147 z"
+ id="path4523"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 76.157989,57.421906 9.587073,15.296229 9.748653,7.917415 M 73.572711,77.242372 85.960502,72.394975 93.931777,62.915622 M 75.736071,56.883306 94.712734,62.664275 96.292626,81.06643 72.719914,77.493719 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4509" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/CrystalSpray02.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/CrystalSpray02.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="62"
+ height="58"
+ version="1.0"
+ sodipodi:docname="CrystalSpray02.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="CrystalSpray02.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="display:inline">
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="6.5643081"
+ inkscape:cx="11.165876"
+ inkscape:cy="30.192161"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer6"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer6"
+ inkscape:label="cristals"
+ style="display:inline"
+ transform="translate(-334.82014,-375.85521)">
+ <g
+ id="g3163"
+ transform="translate(-1.090948e-7,0.07617069)">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 360.40846,405.09928 c -0.006,-0.21119 -4.14372,-17.31795 -4.14372,-17.31795 l 6.41674,-10.22396 7.99048,9.59847 -4.94833,18.33793 z"
+ id="path4608"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 356.60382,387.59914 5.97504,-9.40658 2.69461,11.98462 z"
+ id="path4610"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 359.53501,400.44808 -3.13108,-12.51256 6.3602,1.75675 -3.36841,-0.41394 4.17758,12.19669 1.69199,-10.59581 -2.05376,14.21273 -2.65086,-0.18118 -0.541,-2.27865 1.42548,2.2413 1.52175,0.0777 0.51751,-2.70016 -5.3442,-8.80357 z"
+ id="path4612"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4615"
+ d="m 356.39794,387.78999 6.48057,-4.9516 -0.59841,-2.90771 -1.85153,1.83706 2.05401,-3.00738 2.87312,11.52013 -2.12011,-5.28971 -5.03056,2.35647 4.15629,2.00436 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4617"
+ d="m 366.07744,390.32128 -2.71568,-11.64508 7.11425,8.61746 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 363.6033,405.08809 2.08808,0.11075 4.59676,-17.60925 -4.47808,3.21984 z"
+ id="path4620"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4622"
+ d="m 366.88492,400.69035 -1.723,-3.97249 -0.96716,4.75391 1.56312,-10.57098 -0.0423,2.04178 1.97146,3.77966 1.96718,-7.04733 -1.75788,-0.23325 2.37401,-1.7203 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 366.12114,389.90597 2.5916,-3.0007 -3.50882,-4.9151 -0.91799,1.13869 -1.22288,-4.83171 7.11956,8.80224 z"
+ id="path4625"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4627"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 356.31012,387.79263 9.41273,2.72042 4.89176,-3.34459 m -7.93597,-9.54737 2.98957,12.84895 -2.3213,14.88961 m -2.93845,-0.26037 c -0.006,-0.21119 -4.14372,-17.31795 -4.14372,-17.31795 l 6.41674,-10.22396 7.99048,9.59847 -4.87042,18.31837 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path4630"
+ d="m 365.14177,401.75766 c 0.21659,-0.10951 16.00462,-12.83769 16.00462,-12.83769 l 13.7187,1.81631 -6.12737,13.15101 -21.44524,3.69709 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4632"
+ d="m 373.23631,395.67024 8.10258,-6.56173 12.8165,1.82874 -11.15907,8.70074 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 380.84377,389.80879 1.66653,10.80645 -6.59678,1.63591 2.7732,-2.30503 -7.54476,-1.50117 -4.89631,2.96478 11.10119,-8.21471 -4.27991,3.73957 7.77378,0.34357 z"
+ id="path4634"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 381.20154,389.06541 13.15682,1.87263 -11.42983,8.83752 6.9779,-6.07638 -7.62802,-4.09069 0.173,6.5399 z"
+ id="path4636"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#5388c1;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 383.4932,400.56322 10.03364,-7.61529 -4.95004,10.59321 z"
+ id="path4638"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4640"
+ d="m 366.69262,405.1389 0.8909,2.26747 20.51842,-3.71443 -5.50429,-3.17682 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 372.84485,406.47298 3.29906,-3.76364 -5.40738,1.29301 11.74101,-3.49799 -2.1427,0.95084 -2.97892,3.93298 8.27304,-1.35132 -0.60447,-1.97719 2.93191,1.67765 z"
+ id="path4642"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4645"
+ d="m 388.10939,403.13387 -4.20504,-2.94654 9.40291,-7.23612 -2.40944,4.84752 0.77029,-2.82132 -6.45194,5.13945 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 381.15651,388.97359 1.70719,11.30457 5.83329,3.55447 m 6.10049,-13.06829 -11.91541,9.43492 -16.59524,4.80026 m -1.14505,-3.24186 c 0.21659,-0.10951 16.00461,-12.83769 16.00461,-12.83769 l 13.7187,1.81631 -6.12736,13.15101 -21.38737,3.77012 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4647" />
+ <g
+ transform="matrix(0.58907526,-0.25674163,0.25674163,0.58907526,43.363058,255.73186)"
+ id="g4444">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path4649"
+ d="m 367.78373,414.55337 c 0.0693,0.234 9.75295,18.11052 9.75295,18.11052 l -4.1386,13.31534 -11.76323,-8.3524 0.0972,-21.94068 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4651"
+ d="m 364.94942,417.44853 0.80955,13.10301 11.29445,1.50525 -8.26099,-2.12868 0.5342,-10.68283 4.96915,8.50314 -7.04533,-13.28069 0.62655,2.29148 -1.68381,8.34935 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4653"
+ d="m 377.212,432.96769 -3.88734,12.2719 -6.79596,-14.23166 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 377.38538,432.69364 -4.09651,12.74744 -6.64283,-12.87681 4.71941,7.9786 5.30462,-6.87302 -6.40559,-0.95474 z"
+ id="path4655"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#3f6083;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 365.92455,430.96673 7.28949,15.01863 -11.43436,-8.13215 z"
+ id="path4657"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4659"
+ d="m 364.21972,415.51153 -2.36431,0.49441 0.0796,21.02296 4.04711,-4.92075 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 361.92597,421.25585 2.45805,4.06315 0.24572,-5.59445 0.83361,11.83071 -0.55712,-1.99444 -2.51798,-3.43052 -0.36263,8.38251 2.03189,-0.25988 -2.1416,2.62357 z"
+ id="path4662"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4664"
+ d="m 365.85638,431.55897 -2.23763,5.63054 7.21932,6.02695 -0.72325,-2.79835 2.63824,4.84802 -10.5551,-7.72112 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 377.48266,432.6647 -11.6071,-2.26086 -4.1804,7.19193 m 11.68723,8.31146 -7.59514,-15.47155 -1.36163,-15.30327 m 3.35811,-0.57904 c 0.0693,0.234 9.75295,18.11052 9.75295,18.11052 l -4.1386,13.31534 -11.76323,-8.3524 0.016,-21.89576 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:3.11238933;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4667" />
+ </g>
+ <g
+ transform="matrix(1.5592223,-0.6416662,0.6416662,1.5592223,-449.61193,-17.098182)"
+ id="g4455">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 351.66729,415.80052 c -0.1057,0.095 -7.08027,9.66518 -7.08027,9.66518 l -8.03852,1.15918 0.27865,-8.63441 12.72854,-5.08842 z"
+ id="path4669"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 337.13893,418.19071 -0.21989,8.21029 4.81467,-6.55406 z"
+ id="path4672"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 349.66144,418.27352 -5.05592,7.05364 -1.8677,-4.02764 1.6106,1.51931 3.96719,-6.39946 -5.40956,3.06409 7.53715,-5.11774 1.06111,1.43879 -0.93344,1.26955 0.52923,-1.70704 -0.62265,-0.81449 -0.9459,1.43714 -2.8543,6.04717 z"
+ id="path4674"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4677"
+ d="m 344.53347,425.39359 -7.72935,1.03906 5.10722,-6.71871 -3.01333,4.4803 4.94295,1.06774 -1.10254,-3.60751 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4679"
+ d="m 344.34386,425.24056 -7.56476,0.77935 5.24251,-6.30126 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 350.27067,414.16642 -0.85224,-1.11942 -12.14931,4.80407 2.45644,4.19294 2.25932,-2.79343 z"
+ id="path4682"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4684"
+ d="m 346.58593,414.39748 -1.28781,2.61335 2.85985,-1.57346 -6.3952,3.42749 1.84372,-1.2237 0.0598,-1.65215 -3.93699,1.78341 1.40728,1.00336 -3.37452,-1.01993 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 341.38597,419.48432 -2.86715,-0.25528 0.32726,2.78385 1.11904,-0.7272 -1.842,2.68231 -0.60953,-5.41022 z"
+ id="path4687"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4689"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:1.18617427;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 344.57306,425.43749 -2.70226,-6.01314 -3.84544,-1.05344 m -1.44294,8.22769 5.29011,-7.1275 8.64907,-5.29138 m 1.14569,1.6208 c -0.1057,0.095 -7.08027,9.66518 -7.08027,9.66518 l -8.03852,1.15918 0.63516,-8.94231 12.32808,-4.81197 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ </g>
+ <g
+ transform="matrix(0.98107752,-0.08625524,0.07950857,0.97408876,3.0953978,41.650072)"
+ id="g4433">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path4692"
+ d="m 330.30465,403.33371 c -0.17595,-0.0474 -15.34922,-0.93249 -15.34922,-0.93249 l -6.82414,-7.73797 9.94476,-4.10054 13.89628,8.55848 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4694"
+ d="m 315.85198,395.01808 -6.82324,-0.63616 8.81743,-3.58627 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4697"
+ d="m 330.20481,403.35017 0.81799,-2.18788 -11.38952,-5.28693 -4.3858,6.41979 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4699"
+ d="m 326.12519,402.63531 -11.00727,-0.30874 1.05947,-6.82167 -0.0645,5.51273 9.83579,-1.2411 -7.07876,-3.28347 12.1363,4.5657 -0.81887,2.10479 -2.15952,-0.33374 1.95254,-0.64655 0.61281,-0.84567 -2.16994,-0.62761 -7.79781,1.34416 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 315.02816,402.0319 -6.28282,-6.91588 10.67439,0.47771 z"
+ id="path4702"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 314.99622,402.29535 -6.48007,-7.49178 7.41507,0.61418 -5.6366,0.19886 4.15231,4.95485 0.76002,-3.85541 z"
+ id="path4704"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 326.88856,396.22746 -4.25632,0.75859 3.68214,1.96273 -9.34639,-3.74955 3.0384,0.56351 4.98213,-0.2235 -5.08888,-3.52675 -2.91553,1.18317 1.08168,-2.28242 z"
+ id="path4707"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4709"
+ d="m 315.67416,394.6119 0.732,-2.4999 -4.32713,1.60353 2.33555,1.03608 -5.57596,-0.21441 9.06727,-3.59164 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 314.97623,402.36723 0.93431,-7.4664 2.16145,-4.28847 m -9.88878,4.06899 7.70151,0.2762 15.37681,6.0578 m -0.95688,2.31837 c -0.17595,-0.0474 -15.34922,-0.93249 -15.34922,-0.93249 l -6.82414,-7.73798 9.94476,-4.10054 13.89979,8.49046 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2.03857327;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4712" />
+ </g>
+ <path
+ style="color:#000000;fill:#76869e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 357.54319,395.60042 11.65449,2.58313 2.01509,11.14528 -14.51778,-1.22273 z"
+ id="path4734"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4736"
+ d="m 364.38395,404.49797 -7.35155,3.21506 0.88999,-11.23706 z"
+ style="color:#000000;fill:#9ca8b9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#7389a6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 364.31568,404.60398 5.53339,4.12422 -11.64623,-0.5408 z"
+ id="path4739"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4741"
+ d="m 364.64835,404.39979 4.47469,-5.59401 1.41569,10.03125 z"
+ style="color:#000000;fill:#5b718f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4744"
+ d="m 357.86464,407.60868 3.82485,-3.20383 -3.05634,-5.60159 -1.28179,4.82605 0.0643,-7.67072 6.64316,8.44468 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 364.64986,397.68441 -4.80357,-0.62933 4.56918,4.79415 3.80797,-3.37487 -3.41938,6.11061 -6.78538,-8.77726 z"
+ id="path4746"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4749"
+ d="m 363.64444,404.84006 6.20463,3.88814 -8.00064,-0.36449 4.59021,-0.73962 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ id="path4751"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 357.82144,395.90387 6.46511,8.72964 6.21787,4.29528 m -13.30953,-1.01327 7.20584,-3.48593 4.34014,-6.05882 m -11.19768,-2.77035 11.65449,2.58313 1.80614,10.96647 -14.30883,-1.04392 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/CrystalSpray03.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/CrystalSpray03.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="28"
+ height="28"
+ version="1.0"
+ sodipodi:docname="CrystalSpray03.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="CrystalSpray03.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="display:inline">
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="3.2821541"
+ inkscape:cx="-113.40002"
+ inkscape:cy="40.936672"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer6"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer6"
+ inkscape:label="main"
+ style="display:inline"
+ transform="translate(-333.94637,-404.12169)">
+ <g
+ id="g3243"
+ transform="matrix(0.44910431,-0.28922425,0.28922425,0.44910431,71.099064,331.13279)">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 352.81153,419.17735 c 0.16382,-0.0828 12.72842,-12.70649 12.72842,-12.70649 l 11.09545,3.66629 -4.07906,11.92523 -18.11807,1.52215 z"
+ id="path3059"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 356.0535,414.33829 8.44665,-7.91326 10.25654,4.56804 -17.75253,8.94722 z"
+ id="path3061"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3063"
+ d="m 364.68812,410.13953 1.26052,8.17372 -4.98963,1.23736 2.09757,-1.74346 -7.33735,-2.49924 -2.07275,3.60627 10.12917,-9.95877 -4.92776,6.91454 5.83792,-0.0808 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3065"
+ d="m 365.98305,406.52573 10.24336,2.91114 -9.96143,8.24127 5.74876,-5.65181 -6.34955,-4.30388 0.23991,7.21219 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3067"
+ d="m 366.69208,418.27391 7.58919,-5.76002 -3.74408,8.01244 z"
+ style="color:#000000;fill:#5388c1;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.98455,421.73483 0.67386,1.71506 15.51961,-2.8095 -4.16331,-2.40287 z"
+ id="path3069"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3071"
+ d="m 358.63794,422.7439 2.49533,-2.84672 -4.09001,0.978 8.8806,-2.64579 -1.62068,0.71919 -2.25318,2.9748 6.25752,-1.0221 -0.45721,-1.4955 2.21762,1.26893 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 372.45987,420.01153 -6.11061,-3.27932 8.95636,-3.71055 -1.60889,4.06543 -0.27528,-2.42513 -3.79872,2.12706 z"
+ id="path3073"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3075"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:3.74407482;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 365.01148,405.87515 0.0527,10.42501 7.59074,5.62851 m 4.52799,-11.87455 -12.10928,6.42618 -14.10327,6.51484 m -1.11653,-3.12724 c 0.20932,-0.10494 15.18217,-14.17908 15.18217,-14.17908 l 13.31373,3.84557 -5.65525,12.44708 -20.68799,3.57791 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ </g>
+ <g
+ transform="matrix(0.47149143,-0.0594543,0.0594543,0.47149143,154.12929,243.55622)"
+ id="g3077">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3079"
+ d="m 367.78373,414.55337 c 0.0693,0.234 13.67324,19.00317 13.67324,19.00317 l -8.05889,12.42269 -11.76323,-8.3524 0.0972,-21.94068 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ id="path3081"
+ d="m 369.38693,429.8141 8.14551,1.20775 -6.06708,-2.54907 -2.1554,-5.14696 3.50347,-1.58955 -5.60701,1.25958 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3083"
+ d="m 369.93252,432.04977 1.30316,11.38298 -8.99934,-5.04973 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 378.08214,434.27515 -5.88211,9.53498 -7.01937,-10.28551 7.84664,5.68437 1.72395,-4.53639 -4.48677,-1.95749 z"
+ id="path3085"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#3f6083;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 379.05193,433.46847 -4.69617,10.56975 -3.53213,-12.36346 z"
+ id="path3087"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3089"
+ d="m 364.21972,415.51153 -2.36431,0.49441 0.0796,21.02296 5.42417,-6.36522 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 362.05446,421.42142 3.6592,3.8163 -0.95543,-5.3476 2.0436,11.9086 -1.17793,-2.9938 -3.10716,-2.50905 z"
+ id="path3091"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3093"
+ d="m 365.85638,431.55897 -2.23763,5.63054 7.21932,6.02695 -0.72325,-2.79835 2.63824,4.84802 -10.5551,-7.72112 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 377.48266,432.6647 -9.05953,-2.36208 -6.72797,7.29315 m 11.47862,6.10887 -4.83022,-13.43949 -3.91794,-15.13274 m 3.35811,-0.57904 c 0.0693,0.234 12.97519,18.61641 12.97519,18.61641 l -7.4896,11.01871 -11.63447,-6.56166 0.016,-21.89576 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:4.2085309;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3095" />
+ </g>
+ <g
+ transform="matrix(0.5255211,-0.1014795,0.1014795,0.5255211,122.51804,237.32406)"
+ id="g3097">
+ <path
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 351.66729,415.80052 c -0.1057,0.095 -7.08027,9.66518 -7.08027,9.66518 l -10.01739,1.75622 0.75641,-9.96352 14.22965,-4.35635 z"
+ id="path3099"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 335.53366,417.34376 -0.50214,9.67192 6.70219,-7.16874 z"
+ id="path3101"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 349.66144,418.27352 -5.05592,7.05364 -1.8677,-4.02764 1.6106,1.51931 3.96719,-6.39946 -5.40956,3.06409 7.53715,-5.11774 1.06111,1.43879 -0.93344,1.26955 0.52923,-1.70704 -0.62265,-0.81449 -0.9459,1.43714 -2.8543,6.04717 z"
+ id="path3103"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3105"
+ d="m 344.53347,425.39359 -7.72935,1.03906 5.10722,-6.71871 -3.01333,4.4803 4.94295,1.06774 -1.10254,-3.60751 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3107"
+ d="m 344.61561,426.77758 -7.83651,-0.75767 5.24251,-6.30126 z"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 350.27067,414.16642 -0.85224,-1.11942 -12.14931,4.80407 3.73998,1.4717 0.97578,-0.0722 z"
+ id="path3109"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3111"
+ d="m 346.58593,414.39748 -1.28781,2.61335 2.85985,-1.57346 -6.3952,3.42749 1.84372,-1.2237 -0.0609,-1.51754 -3.81624,1.6488 1.40728,1.00336 -4.27943,-1.73163 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 340.46699,420.31762 -3.13532,-0.33865 -0.33426,3.91955 2.96771,-2.61283 -4.70835,4.27666 -0.30103,-7.4985 z"
+ id="path3113"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3115"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:3.73671579;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 344.84334,425.83713 -2.97254,-6.41278 -6.48436,-2.76329 m 1.19598,9.93754 5.29011,-7.1275 8.64907,-5.29138 m 1.14569,1.6208 c -0.1057,0.095 -6.60608,11.4624 -6.60608,11.4624 l -10.53757,0.36074 0.36299,-11.45858 14.62511,-3.29448 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccc" />
+ </g>
+ <g
+ transform="matrix(0.68568669,0.29702713,-0.29900226,0.67858582,241.46724,48.855618)"
+ id="g3117"
+ inkscape:transform-center-x="-0.2274796"
+ inkscape:transform-center-y="-2.2523417">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3119"
+ d="m 330.30465,403.33371 c -0.17595,-0.0474 -15.34922,-0.93249 -15.34922,-0.93249 l -6.82414,-7.73797 10.31003,-5.48349 13.53101,9.94143 z"
+ style="color:#000000;fill:#a6c2df;fill-opacity:0.51263535;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3121"
+ d="m 315.85198,395.01808 -6.82324,-0.63616 8.81743,-3.58627 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.27797834;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3123"
+ d="m 330.20481,403.35017 0.81799,-2.18788 -14.49171,-5.7392 -1.28361,6.87206 z"
+ style="color:#000000;fill:#6696c8;fill-opacity:0.19494587;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3125"
+ d="m 326.12519,402.63531 -11.00727,-0.30874 -4.60608,-6.93468 6.17443,4.05385 4.61948,-0.76799 -2.43583,-2.18469 12.1363,4.5657 -0.81887,2.10479 -2.15952,-0.33374 1.95254,-0.64655 0.61281,-0.84567 -3.93391,-2.0081 -8.62058,1.89999 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#98b8da;fill-opacity:0.18411554;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 315.02816,402.0319 -6.28282,-6.91588 7.47158,0.46087 z"
+ id="path3127"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 314.99622,402.29535 -6.48007,-7.49178 7.41507,0.61418 -5.6366,0.19886 4.15231,4.95485 0.76002,-3.85541 z"
+ id="path3129"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.08226,393.05018 1.76739,4.57973 1.46473,1.31887 -6.69764,-2.56065 3.54075,0.0501 -2.08898,-3.78187 -1.70426,-1.09442 -2.16453,3.34951 1.03149,-4.95121 z"
+ id="path3131"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3133"
+ d="m 315.67416,394.6119 0.732,-2.4999 -4.32713,1.60353 2.33555,1.03608 -5.57596,-0.21441 9.06727,-3.59164 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 314.97623,402.36723 1.32156,-7.24452 2.04367,-5.55784 m -8.40178,4.59226 6.5714,1.01548 14.75045,5.84274 m -0.95688,2.31837 c -0.17595,-0.0474 -15.34922,-0.93249 -15.34922,-0.93249 l -6.10059,-8.2993 9.74084,-5.23436 13.38016,10.1856 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2.68678188;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3135" />
+ </g>
+ <g
+ id="g3209"
+ transform="matrix(0.22814986,0.67111436,-0.67111436,0.22814986,558.93711,86.241647)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3137"
+ d="m 344.47888,424.64584 8.81516,1.95381 0.45962,9.1275 -9.91634,-1.62233 z"
+ style="color:#000000;fill:#76869e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#9ca8b9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 347.85804,430.04592 -3.76551,3.76159 0.67316,-8.49943 z"
+ id="path3139"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3141"
+ d="m 349.60142,431.4559 4.18531,3.11946 -8.80891,-0.40905 z"
+ style="color:#000000;fill:#7389a6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ style="color:#000000;fill:#5b718f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 350.17169,430.48972 3.87811,-2.37896 -0.95882,7.9705 z"
+ id="path3143"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 344.72201,433.72858 1.56205,-3.97349 -0.75574,-1.52797 -1.34823,1.95448 0.20229,-5.26485 3.52414,5.49127 z"
+ id="path3145"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3147"
+ d="m 349.85418,426.22212 -2.71087,0.0261 1.28495,1.48926 4.12889,-0.91792 -3.10875,3.32047 -4.60987,-5.33745 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="color:#000000;fill:#ffffff;fill-opacity:0.71480144;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 348.07525,431.03432 5.05854,5.176 -5.39854,-1.91065 2.16511,-0.2738 z"
+ id="path3149"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 344.68934,424.87536 4.89004,6.60288 3.62692,4.37953 m -8.99087,-1.8971 4.36663,-4.01965 5.87384,-3.55775 m -9.97702,-1.73743 9.99494,1.42787 -1.13445,10.26723 -9.50205,-2.23612 z"
+ style="color:#000000;fill:none;stroke:#a5c3e0;stroke-width:2.82153177;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3151" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/Flake.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Flake.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2440"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ width="64"
+ height="64"
+ version="1.0"
+ sodipodi:docname="Flake.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/usr/share/games/hedgewars/Data/Themes/Olympics/Flake.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata2445">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2443">
+ <filter
+ inkscape:collect="always"
+ id="filter3510">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.206159"
+ id="feGaussianBlur3512" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="1125"
+ inkscape:window-width="1600"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="2.0703125"
+ inkscape:cx="-100.45676"
+ inkscape:cy="46.336571"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="main"
+ style="display:inline">
+ <g
+ id="g3373"
+ style="opacity:0.33000003999999999;filter:url(#filter3510)"
+ transform="matrix(0.7488143,0,0,0.7488143,8.0404612,8.2318109)">
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ id="path2550"
+ d="M 19.926737,13.778107 C 14.10704,11.552508 6.6905586,17.551705 7.8353047,23.744995 C -2.0784822,28.138346 1.470417,38.597828 8.5510038,41.211688 C 6.6774867,50.188118 15.189369,52.235434 21.766446,50.467488 C 24.572652,56.727493 34.782679,59.772855 40.342412,52.134579 C 46.656073,54.409568 54.163622,50.348868 52.52462,44.686034 C 57.985673,45.172377 61.705462,40.299948 59.654841,34.807923 C 64.706836,30.993878 61.69305,22.942585 57.204283,20.642723 C 58.862993,16.170682 51.049879,10.914442 45.92901,13.99652 C 44.442865,9.2335917 40.008191,8.898709 35.357902,10.285558 C 33.158207,7.2992492 21.823885,8.0825791 19.926737,13.778107 z"
+ style="opacity:0.5427729;fill:#d7d5c5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.78921092px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ id="path3339"
+ d="M 54.543523,15.714362 C 55.316048,18.559006 55.448566,21.185809 52.849948,23.147658 C 54.305224,28.639682 50.477528,33.523589 45.719667,33.037249 C 46.64214,37.930898 40.084059,44.77591 34.516709,43.302077 C 31.153832,48.451036 18.264516,44.522411 14.958499,38.828756 C 10.650841,39.986673 5.5388676,39.481931 3.0326305,36.491832 C 4.2401919,38.59134 6.1936702,40.328262 8.5538658,41.199548 C 6.6803492,50.175979 15.561944,51.462215 22.139022,49.69427 C 24.945226,55.954274 34.430707,58.730354 39.990441,51.092079 C 46.304101,53.367067 53.076229,49.17298 51.437226,43.510144 C 56.89828,43.99649 60.496214,40.290434 58.445594,34.798409 C 63.49759,30.984363 60.717295,23.464746 56.228527,21.164884 C 56.928295,19.278242 56.301982,17.195184 54.543523,15.714362 z"
+ style="opacity:0.5427729;fill:#8b8660;fill-opacity:0.19018405;fill-rule:evenodd;stroke:none;stroke-width:0.78921092px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#c3c1a8;stroke-width:0.82532275;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 20.303482,47.326539 C 22.655473,57.487302 37.359355,61.65977 41.866333,48.862758 M 40.342412,52.134579 C 46.656073,54.409568 54.895104,50.087123 51.915052,42.91925 M 52.585578,44.816906 C 58.046631,45.303248 61.705462,40.299948 59.654841,34.807923 M 59.654841,34.807923 C 64.706836,30.993878 61.69305,22.942585 57.204283,20.642723 M 56.838542,21.820578 C 59.10682,14.913302 49.708829,10.271013 44.58796,14.716321 M 45.807096,13.669337 C 43.71436,7.7126022 37.642389,9.2485508 33.346327,11.332542 M 35.053118,10.481867 C 32.853422,7.4955584 21.823885,8.0825791 19.926737,13.778107 M 24.010844,15.217709 C 15.287249,10.370682 4.8788608,17.493671 8.2620024,27.605743 M 8.5510038,41.211688 C 6.6774867,50.188118 14.640757,52.169997 21.217835,50.402051 M 7.408607,24.072177 C -1.8956117,28.26922 1.1046762,39.448502 10.196838,41.866052"
+ id="path3351"
+ sodipodi:nodetypes="cccccccccccccccccccc" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/Girder.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Girder.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg4233"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="321"
+ height="25"
+ version="1.0"
+ sodipodi:docname="Girder.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Girder.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata4238">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4236" />
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="1.2269735"
+ inkscape:cx="118.16047"
+ inkscape:cy="93.99375"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer1"
+ borderlayer="true"
+ inkscape:window-maximized="0" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="main">
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 289.28125,1.3760994 c -2.357,0.02612 -4.58418,0.1026466 -6.40625,0.062171 -0.31859,-0.00734 -0.68929,-0.015318 -1.09375,0 -6.06692,0.2297652 -21.18371,2.8447108 -26.96875,2.797678 C 246.82712,4.1710266 228.56542,3.9624009 219.375,3.9872662 197.09922,4.0475341 181.85273,5.1197885 159.21875,5.4482761 150.9881,5.5677278 148.03662,4.5313844 141.40625,4.3913753 116.99827,3.8759679 99.06519,3.0407316 97.25,2.9614506 90.23717,2.6551563 87.43138,4.5627543 78.84375,4.0183514 70.256114,3.4739515 40.257036,6.2426656 29.875,5.4482761 19.250046,4.6353004 7.083165,4.0508353 -2.96875,2.5573415 -8.84196,1.6847077 -18.338826,2.1143403 -24.53125,1.5626113 L -28.0625,23.975126 c 11.965668,0.238419 13.624444,-0.61742 26.40625,-1.025815 6.56891,-0.209886 24.221186,0.07867 30.78125,-0.155427 7.02249,-0.250607 15.78201,-1.387551 22.8125,-1.616436 8.79584,-0.286361 16.083398,-0.525114 24.78125,-1.025816 7.963849,-0.458446 20.56495,0.850532 28.4375,0.248683 4.27551,-0.326861 24.74823,-1.936294 35.0625,-3.295045 14.32262,-1.886788 13.74314,1.544982 47.875,3.512642 20.87852,1.20362 28.83989,-1.361324 51.3125,0.248682 10.49187,0.751669 26.54958,2.143993 35.6875,0.963645 5.43879,-0.70253 10.45519,1.633863 17.84375,2.144887 11.96567,0.238419 13.62444,-0.61742 26.40625,-1.025815 6.56891,-0.209886 24.22118,0.07867 30.78125,-0.155427 0.82747,-0.02953 1.69247,-0.07314 2.5625,-0.124342 l 0,-17.12801 C 352.04,5.5184715 351.42024,5.4899953 350.875,5.4482761 340.25005,4.6353004 328.08317,4.0508353 318.03125,2.5573415 312.15804,1.6847077 302.66577,2.0606246 296.46875,1.5626113 c -2.3437,-0.1883473 -4.8305,-0.2126326 -7.1875,-0.1865119 z"
+ id="path3039"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M -31.71875 1.375 C -34.07575 1.40112 -36.30293 1.4779756 -38.125 1.4375 C -38.44359 1.43016 -38.81429 1.422182 -39.21875 1.4375 C -40.828795 1.4984753 -43.115046 1.72711 -45.65625 2.03125 L -45.65625 8.40625 C -45.428094 8.6688406 -45.16024 8.9296261 -44.75 9.125 C -42.52672 10.061803 -43.48905 11.194415 -43.125 12.28125 C -43.34974 13.221112 -40.92274 12.981621 -40.28125 12.34375 C -38.69778 11.575679 -37.63058 10.673233 -37.28125 9.71875 C -37.68909 8.737217 -36.04889 7.914415 -35.875 6.96875 C -34.18518 8.198922 -33.38495 9.5613093 -33.3125 10.90625 C -33.05426 11.766089 -33.3553 12.943087 -31.84375 13.59375 C -30.18252 12.55699 -29.60008 11.342526 -28.25 10.25 C -27.00363 9.3858093 -25.96793 8.464958 -25.1875 7.53125 C -24.26511 6.162218 -21.64883 7.694839 -19.5625 7.9375 C -16.61432 7.90604 -14.93312 8.719477 -14.90625 9.71875 C -14.54644 10.955828 -13.8294 12.162811 -12.96875 13.375 C -13.19057 14.127714 -12.02484 13.594726 -11.84375 13.21875 C -10.44563 12.342805 -10.25753 11.379547 -10.125 10.375 C -10.1498 9.4805523 -8.82983 8.711829 -8.0625 7.875 C -5.4489 7.488665 -1.81134 8.737258 -0.6875 9.65625 C 0.24279 10.58805 0.41982 9.419343 0.4375 9.0625 C 1.84786 8.536253 3.68082 10.011718 3.78125 10.5625 C 4.78252 11.484846 4.1145 12.486956 4.5625 13.4375 C 6.12153 13.44792 7.6536 11.905408 7.6875 11.1875 C 8.9649842 10.133214 7.9984158 7.2632434 11.40625 9.46875 C 9.7967357 7.3331983 16.434422 7.3660474 15.9375 8.5 C 16.01349 8.790168 17.03622 10.561659 17.0625 9.5625 C 17.804587 9.976612 17.94737 11.001662 19.125 11.5625 C 21.348281 12.499303 20.385953 13.631915 20.75 14.71875 C 20.525258 15.658612 22.952258 15.419121 23.59375 14.78125 C 25.177218 14.013179 26.213169 13.141983 26.5625 12.1875 C 26.154663 11.205967 27.794865 10.351915 27.96875 9.40625 C 29.658576 10.636422 30.490051 11.998809 30.5625 13.34375 C 30.820745 14.203589 30.5197 15.380587 32.03125 16.03125 C 33.692487 14.99449 34.243666 13.780026 35.59375 12.6875 C 36.840114 11.823309 37.87582 10.933708 38.65625 10 C 39.578647 8.630968 42.226167 10.132339 44.3125 10.375 C 47.260679 10.34354 48.910625 11.156977 48.9375 12.15625 C 49.297308 13.393328 50.045597 14.600311 50.90625 15.8125 C 50.68443 16.565214 51.850163 16.032226 52.03125 15.65625 C 53.42937 14.780305 53.617474 13.848297 53.75 12.84375 C 53.7252 11.949302 55.045176 11.149329 55.8125 10.3125 C 58.4261 9.926165 62.063666 11.174758 63.1875 12.09375 C 64.117795 13.02555 64.294818 11.856843 64.3125 11.5 C 65.722854 10.973753 67.555828 12.480468 67.65625 13.03125 C 68.65752 13.953596 67.958246 14.924456 68.40625 15.875 C 69.965279 15.88542 71.528602 14.342908 71.5625 13.625 C 71.82323 12.771636 72.320576 11.103957 75.75 11.78125 C 77.108225 12.044105 80.50494 10.597708 81 9.375 C 81.9232 9.155515 83.90159 10.11139 84.28125 10.53125 C 85.58686 11.253577 84.2694 12.746918 86.09375 13.1875 C 87.53817 12.200492 88.40415 11.092474 88.5 9.96875 C 89.1784 9.936 90.67247 9.559978 91.78125 9.59375 C 94.29734 10.733274 94.38295 9.4659045 97.09375 10.1875 C 100.07921 10.632165 98.547732 13.03492 101.34375 13.3125 C 103.13588 13.940968 109.93456 9.60255 111.71875 9.75 C 114.70425 10.359279 114.35875 11.678601 115.125 12.6875 C 115.56282 13.510773 115.7707 12.800554 116.375 12.375 C 116.70512 11.403449 118.37905 10.677406 119.9375 11.03125 C 122.16867 11.795427 124.61829 12.135438 127.09375 12.03125 C 127.51544 11.909739 130.21835 12.415221 129.6875 13.28125 C 130.67634 12.1384 130.13671 9.8584807 130.71875 11.28125 C 130.76695 12.249155 130.10479 11.567731 131.75 12.375 C 134.26968 11.188591 134.0464 9.601785 135.21875 8.21875 C 136.4711 7.335642 136.27303 9.476542 136.4375 8.5 C 136.91373 7.414915 137.88316 10.548687 137.90625 9.4375 C 138.63904 8.487468 137.48898 7.329114 139.1875 6.5 C 142.34574 5.754759 144.63689 7.256214 144.125 8.21875 C 144.201 8.508918 145.19247 10.28041 145.21875 9.28125 C 145.96084 9.695362 145.91612 6.532912 147.09375 7.09375 C 149.31703 8.030553 148.3547 9.1631654 148.71875 10.25 C 148.49401 11.189862 150.92101 10.950371 151.5625 10.3125 C 153.14597 9.5444294 154.18192 8.641983 154.53125 7.6875 C 154.12341 6.705967 155.76361 8.6331647 155.9375 7.6875 C 157.62732 8.917672 158.42755 7.498809 158.5 8.84375 C 158.75824 9.703589 158.4572 10.880587 159.96875 11.53125 C 161.62998 10.49449 162.21242 9.280026 163.5625 8.1875 C 164.80887 7.323309 165.84457 9.1837077 166.625 8.25 C 167.54739 6.880968 170.19492 8.413589 172.28125 8.65625 C 175.22943 8.62479 176.87938 6.688227 176.90625 7.6875 C 177.26606 8.924578 178.01435 10.131561 178.875 11.34375 C 178.65318 12.096464 179.78766 11.563476 179.96875 11.1875 C 181.36687 10.311555 181.58622 9.348297 181.71875 8.34375 C 181.69395 7.449302 183.01392 6.680579 183.78125 5.84375 C 186.39485 5.457415 190.00116 6.706008 191.125 7.625 C 192.05529 8.5568 192.26357 7.388093 192.28125 7.03125 C 193.69161 6.505003 195.49332 7.980468 195.59375 8.53125 C 196.59502 9.453596 195.927 10.455706 196.375 11.40625 C 197.93403 11.41667 199.49735 9.874158 199.53125 9.15625 C 199.79198 8.302886 200.28933 6.635207 203.71875 7.3125 C 205.07697 7.575355 208.16119 9.285208 208.65625 8.0625 C 209.57945 7.843015 211.58909 8.79889 211.96875 9.21875 C 213.27436 9.941077 211.92565 11.403168 213.75 11.84375 C 215.19442 10.856742 216.09165 9.748724 216.1875 8.625 C 216.8659 8.59225 218.35997 8.247478 219.46875 8.28125 C 221.98484 9.420774 222.63295 7.309655 225.34375 8.03125 C 228.32921 8.475915 231.23523 8.003673 234.03125 8.28125 C 235.82338 8.909718 237.62206 8.29001 239.40625 8.4375 C 242.39175 9.046779 242.04625 10.366101 242.8125 11.375 C 243.25032 12.198273 243.42695 11.4568 244.03125 11.03125 C 244.36137 10.059699 246.06655 9.364906 247.625 9.71875 C 249.85617 10.482927 252.30579 10.791688 254.78125 10.6875 C 255.23105 10.557888 258.27023 11.152693 257.21875 12.125 C 257.43929 12.10937 257.64392 11.863091 257.84375 11.4375 C 258.88407 12.442411 260.21005 13.476186 260.34375 14.53125 C 260.39195 15.499155 259.01104 16.786481 260.65625 17.59375 C 263.17593 16.407341 262.95265 14.789285 264.125 13.40625 C 265.37735 12.523142 265.46053 11.507792 265.625 10.53125 C 266.10123 9.4461653 266.85191 8.392437 266.875 7.28125 C 267.60779 6.331218 266.45773 5.172864 268.15625 4.34375 C 271.31449 3.598509 273.60564 5.099964 273.09375 6.0625 C 273.16975 6.352668 274.16122 8.124159 274.1875 7.125 C 274.92959 7.539112 275.07237 8.564162 276.25 9.125 C 278.47328 10.061803 277.51095 11.194415 277.875 12.28125 C 277.65026 13.221112 280.07726 12.981621 280.71875 12.34375 C 282.30222 11.575679 283.36942 10.673233 283.71875 9.71875 C 283.31091 8.737217 284.95111 7.914415 285.125 6.96875 C 286.81482 8.198922 287.61505 9.5613093 287.6875 10.90625 C 287.94574 11.766089 287.6447 12.943087 289.15625 13.59375 C 290.81748 12.55699 291.39992 11.342526 292.75 10.25 C 293.99637 9.3858093 295.03207 8.464958 295.8125 7.53125 C 296.73489 6.162218 299.35117 7.694839 301.4375 7.9375 C 304.38568 7.90604 306.06688 8.719477 306.09375 9.71875 C 306.45356 10.955828 307.1706 12.162811 308.03125 13.375 C 307.80943 14.127714 308.97516 13.594726 309.15625 13.21875 C 310.55437 12.342805 310.74247 11.379547 310.875 10.375 C 310.8502 9.4805523 312.17017 8.711829 312.9375 7.875 C 315.5511 7.488665 319.18866 8.737258 320.3125 9.65625 C 321.24279 10.58805 321.41982 9.419343 321.4375 9.0625 C 322.84786 8.536253 324.68082 10.011718 324.78125 10.5625 C 325.78252 11.484846 325.1145 12.486956 325.5625 13.4375 C 327.12153 13.44792 328.6536 11.905408 328.6875 11.1875 C 328.94823 10.334136 329.47683 8.666457 332.90625 9.34375 C 334.26447 9.606605 337.34869 11.316458 337.84375 10.09375 C 338.76695 9.8742653 340.77659 10.83014 341.15625 11.25 C 342.46186 11.972327 341.11315 13.434418 342.9375 13.875 C 344.38192 12.887992 345.27915 11.811224 345.375 10.6875 C 346.0534 10.65475 347.51622 10.278728 348.625 10.3125 C 350.4546 11.141118 351.31299 10.27 352.6875 10 L 352.6875 5.53125 C 352.04 5.5081895 351.42024 5.4792192 350.875 5.4375 C 340.25005 4.6245243 328.08317 4.0559938 318.03125 2.5625 C 312.15804 1.6898662 302.66577 2.0605133 296.46875 1.5625 C 294.12505 1.3741527 291.63825 1.3488793 289.28125 1.375 C 286.92425 1.40112 284.69707 1.4779756 282.875 1.4375 C 282.55641 1.43016 282.18571 1.422182 281.78125 1.4375 C 275.71433 1.6672652 260.59754 4.2970328 254.8125 4.25 C 246.82712 4.1850782 228.56542 3.9751347 219.375 4 C 197.09922 4.0602679 181.85273 5.1090124 159.21875 5.4375 C 150.9881 5.5569517 148.03662 4.5462591 141.40625 4.40625 C 116.99827 3.8908426 99.06519 3.048031 97.25 2.96875 C 90.23717 2.6624557 87.43138 4.5756529 78.84375 4.03125 C 70.256114 3.4868501 40.257036 6.2318895 29.875 5.4375 C 23.836438 4.9754553 17.301121 4.5811446 10.9375 4.0625 C 6.1065099 3.6685558 1.3684897 3.2069182 -2.96875 2.5625 C -8.84196 1.6898662 -18.33423 2.0605133 -24.53125 1.5625 C -26.87495 1.3741527 -29.36175 1.3488793 -31.71875 1.375 z "
+ id="path3053" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;stroke:none;stroke-width:1.99999976;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 160.8125,9.40625 c -0.0499,0.00355 -0.13541,0.030335 -0.21875,0.15625 -0.65707,1.076268 -1.64892,2.525881 -3.75,3.5 -1.57775,0.668984 -1.66805,1.967823 -5.9375,1.59375 -3.00101,-0.547138 -2.04635,-1.727522 -3.1875,-2.5625 -0.002,0.0055 -0.0296,-0.0058 -0.0312,0 -0.16539,0.581939 -0.81782,2.327784 -2.09375,1.6875 -2.08338,-0.911408 -3.70608,-3.8599571 -7.625,-4.34375 -1.38683,-0.067599 -2.0559,1.777297 -2.84375,1.96875 l -1.40625,4.1875 c -0.4559,0.03567 -0.93372,0.07811 -1.65625,0.1875 -4.49795,0.169374 -3.21903,-1.073591 -4.15625,-1.65625 -0.62529,0.537488 -1.58041,1.31834 -4.5,1.59375 -2.12286,0.08335 -2.76521,-0.793725 -5.3125,-0.75 -5.1554,-0.422268 -10.06119,0.238956 -14.96875,0.5 -4.012699,0.1887 -3.32701,-1.980625 -4,-2.3125 -0.60406,1.006027 -1.55267,1.966129 -2.3125,2.375 -1.20057,0.755992 -3.213956,1.017304 -6.71875,1.125 -3.338788,-0.08279 -5.942834,0.943836 -9.1875,0.46875 -1.831549,-0.537041 0.833254,-1.261199 0.5625,-1.90625 0.187976,-0.623827 1.541803,-1.904554 1.03125,-2.15625 -0.648264,0.656699 -1.459137,2.452156 -4.28125,2.71875 -1.924076,0.730243 -7.151191,0.148339 -9,0.875 -1.47661,0.622627 -4.507036,0.277529 -4.65625,-0.34375 0.737877,-1.258459 0.03693,-3.541148 -0.5,-4.1875 -1.140376,0.700333 -0.979812,2.084314 -2.09375,2.78125 -1.037373,0.80089 -2.409217,1.967751 -6.1875,2.03125 -2.417752,0.01812 -5.590033,-0.776005 -6.15625,0.25 -0.399004,0.656716 -1.823287,2.495852 -4.875,1.28125 C 43.192099,17.682175 44.749284,16.823751 44.625,16 c 0.241148,-0.800105 2.858772,-2.433535 1.15625,-3.21875 -0.835894,0.620667 -3.084181,2.013702 -3.625,2.625 -1.29257,0.843019 -2.17036,1.762564 -5.40625,2.15625 -2.758144,-0.286855 -0.03084,-1.47306 -0.5625,-2.125 0.169274,-1.076275 -0.562502,-2.445495 -0.9375,-3.15625 -0.512928,0.38699 -1.26376,1.368956 -1.96875,1.59375 -1.791015,0.780581 -1.39448,1.025981 -3.125,1.8125 -1.085588,0.799507 -3.093088,1.437205 -5.21875,2.0625 -1.24718,0.52433 -4.709159,0.593388 -3.46875,-0.25 0.450965,-1.426994 0.874783,-2.853865 1.3125,-4.28125 C 21.637907,12.612307 22.456493,11.118038 21,11.03125 c -0.890201,0.993803 -0.864527,1.992684 -1.53125,3 -0.65707,1.076268 -1.680172,2.525881 -3.78125,3.5 C 14.109742,18.200234 14.019453,19.499073 9.75,19.125 6.7304311,18.574478 7.7056658,17.367089 6.53125,16.53125 6.7935756,15.598012 6.7300839,14.649432 5,13.78125 2.9166255,12.869842 1.2939247,9.9212929 -2.625,9.4375 c -0.086677,-0.00423 -0.1686138,-0.00986 -0.25,0 -1.2207933,0.1478925 -1.8551414,1.789263 -2.59375,1.96875 l -4,11.90625 c 2.1336457,-0.133315 4.6311479,-0.273352 7.8125,-0.375 6.56891,-0.209886 24.221186,0.07785 30.78125,-0.15625 7.02249,-0.250607 15.78201,-1.364865 22.8125,-1.59375 8.79584,-0.286361 16.083398,-0.530548 24.78125,-1.03125 7.963849,-0.458446 20.56495,0.851849 28.4375,0.25 4.27551,-0.326861 24.74823,-1.953749 35.0625,-3.3125 14.32262,-1.886788 13.74314,1.56359 47.875,3.53125 20.87852,1.20362 28.83989,-1.360006 51.3125,0.25 10.49187,0.751669 26.54958,2.149098 35.6875,0.96875 5.43879,-0.70253 10.45519,1.613976 17.84375,2.125 8.86477,0.176633 12.31667,-0.283403 18.59375,-0.6875 l 0,0.03125 c 2.13365,-0.133315 4.63115,-0.273352 7.8125,-0.375 6.56891,-0.209886 24.22119,0.07785 30.78125,-0.15625 0.89723,-0.03202 1.83454,-0.06843 2.78125,-0.125 l 0,-8.03125 c -0.43045,0.310529 -0.72312,0.595783 -1.75,1.0625 -1.08559,0.799507 -3.09309,1.437205 -5.21875,2.0625 -1.24718,0.52433 -4.70916,0.593388 -3.46875,-0.25 0.45096,-1.426994 0.87478,-2.853865 1.3125,-4.28125 -1.14334,-0.606443 -0.32476,-2.100712 -1.78125,-2.1875 -0.8902,0.993803 -0.86453,1.992684 -1.53125,3 -0.65707,1.076268 -1.68017,2.525881 -3.78125,3.5 -1.57776,0.668984 -1.66805,1.967823 -5.9375,1.59375 -3.01957,-0.550522 -2.04433,-1.757911 -3.21875,-2.59375 0.26233,-0.933238 0.19883,-1.881818 -1.53125,-2.75 -2.08337,-0.911408 -3.70608,-3.8599571 -7.625,-4.34375 -1.72974,-0.1133508 -2.39348,1.138087 -2.84375,1.96875 l -2.35783,4.16999 c -1.04321,1.845003 -3.70882,0.639468 -4.82967,1.08001 -1.47661,0.622627 -4.50703,0.277529 -4.65625,-0.34375 0.73788,-1.258459 0.0369,-3.541148 -0.5,-4.1875 -1.14037,0.700333 -0.97981,2.084314 -2.09375,2.78125 -1.03738,0.80089 -2.37797,1.967751 -6.15625,2.03125 -2.41775,0.01812 -5.62128,-0.776005 -6.1875,0.25 -0.399,0.656716 -1.82329,2.495852 -4.875,1.28125 -1.5579,-0.786575 -7.2e-4,-1.644999 -0.125,-2.46875 0.24114,-0.800105 2.85877,-2.433535 1.15625,-3.21875 -0.8359,0.620667 -3.05293,2.013702 -3.59375,2.625 -1.131,0.737642 -1.95679,1.547835 -4.3125,2 -0.0993,-0.948333 -0.13313,-1.670549 -0.0312,-1.6875 -0.68893,-0.08841 -1.17328,-0.101606 -1.59375,-0.125 -0.007,-0.05278 -0.0237,-0.10871 -0.0625,-0.15625 0.16928,-1.076275 -0.53125,-2.445495 -0.90625,-3.15625 -0.51293,0.38699 -1.29501,1.368956 -2,1.59375 -1.62846,0.709733 -1.52501,0.961733 -2.78125,1.59375 -0.80436,-0.373764 -0.53924,-0.979588 -1.125,-1.34375 -0.62529,0.537488 -1.58041,1.31834 -4.5,1.59375 -1.16315,0.04567 -1.88961,-0.185768 -2.71875,-0.40625 0.20795,-0.702054 0.40986,-1.392159 0.625,-2.09375 -1.14334,-0.606443 -0.32475,-2.100712 -1.78125,-2.1875 -0.8902,0.993803 -0.86453,1.992684 -1.53125,3 -0.16736,0.274129 -0.3362,0.598284 -0.5625,0.90625 -4.21943,-0.271475 -8.27324,0.153048 -12.3125,0.4375 -0.14035,-0.55167 -0.55329,-1.087311 -1.5625,-1.59375 -2.08338,-0.911408 -3.70608,-3.8599571 -7.625,-4.34375 -1.38683,-0.067599 -2.08715,1.777297 -2.875,1.96875 l -1.75,5.15625 c -0.41143,0.01975 -0.78857,0.07957 -1.25,0.09375 -3.33879,-0.08279 -5.91158,0.943836 -9.15625,0.46875 -1.83155,-0.537041 0.83325,-1.261199 0.5625,-1.90625 0.18802,-0.623827 1.5418,-1.904554 1.03125,-2.15625 -0.64826,0.656699 -1.45913,2.452156 -4.28125,2.71875 -1.92407,0.730243 -7.15119,0.148339 -9,0.875 -1.47661,0.622627 -4.50703,0.277529 -4.65625,-0.34375 0.73788,-1.258459 0.0369,-3.541148 -0.5,-4.1875 -1.14037,0.700333 -1.01106,2.084314 -2.125,2.78125 -1.03738,0.80089 -2.37797,1.967751 -6.15625,2.03125 -2.41775,0.01812 -5.62128,-0.776005 -6.1875,0.25 -0.399,0.656716 -1.79204,2.495852 -4.84375,1.28125 -1.5579,-0.786575 -7.2e-4,-1.644999 -0.125,-2.46875 0.24114,-0.800105 2.85877,-2.433535 1.15625,-3.21875 -0.8359,0.620667 -3.08418,2.013702 -3.625,2.625 -1.29257,0.843019 -2.17036,1.762564 -5.40625,2.15625 -2.75815,-0.286855 -0.0309,-1.47306 -0.5625,-2.125 0.16928,-1.076275 -0.5625,-2.445495 -0.9375,-3.15625 -0.51293,0.38699 -1.26376,1.368956 -1.96875,1.59375 -1.79102,0.780581 -1.39448,1.025981 -3.125,1.8125 -1.08559,0.799507 -2.81184,0.437205 -4.9375,1.0625 -1.24718,0.52433 -4.99041,-3.55e-4 -3.75,-0.84375 0.45096,-1.426994 0.87479,-1.260115 1.3125,-2.6875 -1.14334,-0.606443 -0.32475,-2.100712 -1.78125,-2.1875 -0.77892,0.869578 -0.43167,-1.6498301 -0.78125,-1.625 z"
+ id="path3834"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sccccccccccccccccccccccccccccccccccccccccccccccsccssssssssscccssccccccccccccccscccccccccccccccccccccccccccccccccccccccccccccccccccccs" />
+ <path
+ id="path3788"
+ d="m 289.28125,1.3760993 c -2.357,0.02612 -4.58418,0.1026467 -6.40625,0.062171 -0.31859,-0.00734 -0.68929,-0.015318 -1.09375,0 -6.06692,0.2297656 -21.18371,2.844711 -26.96875,2.7976782 C 246.82712,4.1710265 228.56542,3.9624008 219.375,3.987266 197.09922,4.0475341 181.85273,5.1197883 159.21875,5.448276 150.9881,5.5677277 148.03662,4.5313843 141.40625,4.3913751 116.99827,3.8759679 99.06519,3.0407315 97.25,2.9614505 90.23717,2.6551562 87.43138,4.5627541 78.84375,4.0183513 70.256114,3.4739514 40.257036,6.2426653 29.875,5.448276 19.250046,4.6353004 7.083165,4.0508353 -2.96875,2.5573414 -8.84196,1.6847076 -18.338826,2.1143402 -24.53125,1.5626112 L -28.0625,23.975125 c 11.965668,0.238419 13.624444,-0.61742 26.40625,-1.025815 6.56891,-0.209885 24.221186,0.07867 30.78125,-0.155427 7.02249,-0.250606 15.78201,-1.38755 22.8125,-1.616436 8.79584,-0.28636 16.083398,-0.525113 24.78125,-1.025816 7.963849,-0.458446 20.56495,0.850532 28.4375,0.248683 4.27551,-0.326861 24.74823,-1.936293 35.0625,-3.295044 14.32262,-1.886789 13.74314,1.544982 47.875,3.512641 20.87852,1.203621 28.83989,-1.361324 51.3125,0.248683 10.49187,0.75167 26.54958,2.143992 35.6875,0.963645 5.43879,-0.702531 10.45519,1.633862 17.84375,2.144886 11.96567,0.238419 13.62444,-0.61742 26.40625,-1.025815 6.56891,-0.209885 24.22118,0.07867 30.78125,-0.155427 0.82747,-0.02954 1.69247,-0.07313 2.5625,-0.124341 l 0,-17.1280101 C 352.04,5.5184713 351.42024,5.4899951 350.875,5.448276 340.25005,4.6353004 328.08317,4.0508353 318.03125,2.5573414 312.15804,1.6847076 302.66577,2.0606245 296.46875,1.5626112 c -2.3437,-0.1883472 -4.8305,-0.2126325 -7.1875,-0.1865119 z"
+ style="color:#000000;fill:none;stroke:#2d2f3c;stroke-width:1.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/LandBackTex.png has changed
Binary file share/hedgewars/Data/Themes/Cave/LandTex.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/LandTex.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,3146 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="512"
+ height="512"
+ version="1.0"
+ sodipodi:docname="LandTex.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="LandTex.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="0.82053852"
+ inkscape:cx="191.09075"
+ inkscape:cy="169.33439"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false">
+ <sodipodi:guide
+ orientation="0,1"
+ position="623.98047,128"
+ id="guide3377" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="699.54061,384"
+ id="guide3379" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="bg"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#43465a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect2387"
+ width="512"
+ height="512"
+ x="0"
+ y="1.5258789e-05" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="bg2"
+ style="display:inline">
+ <path
+ inkscape:connector-curvature="0"
+ id="path5701"
+ d="m 332.77174,360.17581 c -0.15785,0.94814 -0.50508,1.9226 0.17049,2.75491 0.69161,0.88004 -0.4751,1.6959 -0.74027,2.55253 -0.59595,0.92107 -0.93136,2.13088 -0.70315,3.18442 0.69266,0.95162 0.66362,1.72824 -0.47525,2.23574 -0.82207,0.68136 -0.5094,2.06629 -1.36706,2.8028 -0.80515,0.90397 -0.59567,2.32625 -1.65538,3.05981 -0.50103,0.93926 -2.19617,0.69157 -2.10407,1.96617 -0.13568,1.43102 -1.47891,2.31057 -1.98881,3.61686 -0.94881,0.84986 -2.31393,1.04797 -3.56434,1.1621 -0.87213,-0.47956 -1.68358,-1.23652 -2.74348,-0.8576 -1.46336,0.11072 -2.64264,1.19429 -4.01384,1.66904 -1.18823,1.35594 -2.88917,2.0027 -4.29608,3.08356 -0.25701,0.89593 -0.95629,1.78487 -0.36641,2.69417 0.59734,0.91382 -0.0526,1.80944 -0.33031,2.71049 -1.54211,1.05839 -2.56518,2.6374 -3.63591,4.11883 -0.96483,0.65475 -1.7052,1.61588 -2.59706,2.31306 -0.90885,0.28575 -1.83429,0.78913 -2.66461,0.0448 -0.79586,-0.70018 -1.69506,0.0402 -2.55357,0.21331 -0.55872,0.70488 -0.81327,1.98043 -1.96316,1.57618 -1.51911,0.0281 -3.19392,0.19457 -4.50309,0.98827 -0.73407,1.02958 -1.50074,0.61465 -2.27461,-0.11985 -0.97712,-0.33327 -2.13286,-0.18871 -3.00207,-0.90473 -1.71801,-1.10104 -3.57227,-2.0782 -5.56811,-2.54369 -0.96253,-0.31276 -1.83013,-0.14645 -2.60002,0.51288 -1.04065,0.58487 -1.84561,1.62106 -3.14025,1.59552 -1.21772,0.29048 -2.37341,-0.57769 -3.60013,-0.64543 -1.08651,-0.41858 -1.4206,1.30121 -2.46177,1.42284 -0.90632,0.64744 -1.92717,0.38901 -2.93891,0.20259 -0.96354,0.13069 -2.03332,0.0523 -2.56862,1.02577 -1.45694,1.42346 -2.42344,3.24414 -3.09411,5.13864 -0.77267,0.87762 -1.2305,1.91442 -1.51075,3.04099 -1.03529,0.59076 -1.98337,1.29845 -2.8451,2.12193 1.03491,0.3729 1.39075,1.27362 1.77695,2.17249 0.49653,0.93763 1.99885,0.60477 2.31113,1.30686 -0.30278,1.0786 0.79513,1.63939 0.9135,2.59092 0.10233,1.65393 0.92778,3.11201 2.04515,4.29889 -0.23158,1.31144 -0.0896,2.76094 -1.05304,3.80732 -0.31251,1.33179 -0.42229,2.78661 -1.0085,4.01018 -1.04602,0.63111 -0.18265,1.79616 -0.77586,2.56231 -0.88996,1.15214 -1.97323,2.36952 -1.75025,3.94252 0.25757,0.84831 0.90893,1.60306 0.80747,2.58703 -0.3973,1.23066 0.0395,2.45834 0.69882,3.51909 0.61602,0.66435 1.18749,1.30071 0.98209,2.2881 -0.0588,1.23853 0.95809,2.13329 0.86142,3.36967 -0.24219,0.94479 -1.00809,1.67697 -1.8107,2.22452 -0.26946,1.35348 -0.24373,2.79292 0.4728,4.00954 -0.0904,1.29548 -0.72841,2.62639 0.008,3.83803 -0.22287,1.18231 -1.69302,1.74719 -1.78032,3.01417 -0.27175,0.98073 -0.97234,1.74127 -1.81362,2.28461 -0.72922,1.16369 -0.32671,2.54561 -0.88128,3.76563 -0.76666,1.09088 -1.23848,2.52837 -0.58218,3.7908 0.24757,0.84793 0.90495,1.65487 0.3626,2.53041 -0.30731,1.0113 0.10295,2.12298 0.90269,2.79988 0.31423,0.81972 0.0375,1.92952 1.27045,2.04228 1.19607,0.8043 2.49371,1.69362 2.96366,3.12954 0.8372,0.45266 1.70942,0.82289 2.61638,1.11131 0.18922,0.95809 0.58411,2.06615 1.4364,2.5413 0.98829,0.13192 2.18924,-0.17912 3.03644,0.33219 0.96962,0.66273 1.47704,2.07673 2.78726,2.06251 1.03919,0.1825 2.04624,0.6295 2.52642,1.62544 0.68241,0.5864 1.6478,0.90859 2.5331,0.54908 0.95189,-0.18232 1.70266,0.86397 2.71826,0.69688 0.99687,-0.22472 1.50995,1.80099 2.29426,0.56693 0.8209,-0.88884 2.21031,-0.56693 3.19347,-1.24347 0.73677,-0.14073 1.96616,0.20634 2.05268,1.12891 0.42596,0.97104 0.60618,2.20805 1.78349,2.51833 1.27373,0.94325 2.55073,2.0378 3.2237,3.51301 1.25766,0.33872 2.50646,1.34639 3.82211,0.73223 0.91589,-0.22453 1.71639,0.82042 2.69203,0.37187 1.37407,-0.056 2.63142,0.84116 4.0046,1.0103 1.26249,0.14669 2.12638,1.56289 3.38983,1.55928 1.04437,0.052 1.7128,-0.58194 2.299,-1.36593 0.1136,-0.90147 0.089,-1.87457 1.05805,-2.30456 0.72287,-0.70233 1.88515,-0.0777 2.79068,-0.41173 1.2243,-0.21238 2.2693,-1.06074 3.42323,-1.52705 1.12499,-0.93295 2.64281,-0.62392 3.99672,-0.7553 0.78054,0.66402 1.65341,0.97794 2.67188,0.73984 0.89372,0.40311 1.73227,0.57244 2.42303,-0.28275 0.83751,-0.32196 1.88418,0.0864 2.74853,-0.39759 0.87342,-0.21099 1.68142,-0.91204 2.57931,-0.37564 0.8984,0.073 1.61258,1.25847 2.48496,0.51458 1.07291,-0.57436 2.31217,0.12285 3.27117,0.65936 0.9706,-0.42098 1.82946,-0.29602 2.55084,0.50066 1.44219,0.38876 2.97605,0.0666 4.45805,0.23851 1.18815,-0.94813 2.75266,-0.80708 4.07085,-1.47443 0.65076,-0.85375 1.69463,-1.36044 2.38473,-2.09497 0.40635,-0.91892 0.397,-1.82186 -0.0934,-2.70629 -0.0319,-1.08443 0.59338,-2.08683 1.35783,-2.84671 -0.27847,-1.46773 0.20324,-2.88441 0.67832,-4.25737 1.4679,-0.54042 2.92075,-1.51346 3.58947,-2.93592 -0.12363,-1.00375 0.1702,-1.85004 0.93875,-2.51727 0.92046,-0.58571 2.02532,-1.29135 2.23036,-2.42651 -0.33338,-1.16321 0.59232,-1.64747 1.30555,-2.31211 0.23948,-1.06163 0.99087,-1.57341 2.01187,-1.79559 0.64335,-0.88409 1.64634,-1.42532 2.39553,-2.14024 0.3171,-1.45417 1.50012,-2.48854 2.87926,-2.93328 1.53615,-0.42024 3.0748,-1.19886 4.6815,-1.09194 0.88626,0.54559 1.84828,0.60434 2.84999,0.40807 0.734,-0.53575 1.25689,-1.58056 2.34687,-1.05622 1.08305,0.13971 2.08324,0.74375 3.20301,0.4075 0.92346,-0.12211 1.88859,-0.27733 2.38625,-1.162 0.6,-0.76104 2.05676,-0.33171 2.11706,-1.60289 0.49696,-1.05517 1.19534,-2.00489 1.378,-3.1909 0.83237,-0.67793 1.78934,-0.99812 2.86033,-0.99093 0.68937,-0.83078 1.64539,-1.45774 2.32015,-2.25238 0.0816,-1.08299 0.72096,-1.65656 1.75501,-1.86958 1.424,0.0692 2.90304,0.58902 4.22343,-0.18375 0.89069,-0.28443 1.86804,-0.45611 2.19205,-1.46282 0.67346,-0.8232 0.0706,-2.115 1.03487,-2.80351 0.47198,-1.08445 1.89632,-0.17019 2.62125,-1.00019 1.0208,-0.38851 1.56547,-1.66366 2.77953,-1.49778 1.15545,0.16178 0.67929,-1.45605 1.39312,-2.00372 1.1708,-1.62186 1.75744,-3.54477 2.48204,-5.37211 0.91717,-0.8769 -0.33142,-1.60226 -0.38142,-2.51677 -0.29863,-1.03954 0.24376,-1.77579 0.98939,-2.43875 1.36752,-0.92118 2.9821,-1.93712 3.39376,-3.61678 -0.25942,-0.98489 -0.23499,-1.93576 0.30102,-2.82532 0.68123,-2.0641 2.30187,-3.58256 3.26183,-5.5083 0.52822,-0.87257 1.53282,-1.48301 1.36882,-2.63501 0.21866,-1.87105 1.60939,-3.27774 2.72311,-4.69984 0.96806,-0.24881 1.91033,-0.53426 2.36899,-1.50644 1.1528,-1.07155 2.21128,-2.24972 2.93394,-3.672 0.65299,-1.38174 1.6576,-2.6945 3.2139,-3.07599 0.90727,-0.27343 1.27127,-1.4331 1.46258,-2.28668 -0.004,-1.46223 1.4381,-2.23621 2.15781,-3.37092 0.71407,-0.73765 1.53369,-1.39493 1.58286,-2.506 0.1879,-0.88374 1.30364,-1.31073 2.08587,-1.59224 1.60401,-0.17269 2.88947,-1.25578 4.25133,-1.96499 1.59957,-0.29076 3.22324,-0.14256 4.83545,-0.0668 0.88877,-0.96372 2.09883,-1.32916 3.27135,-1.80651 0.8194,-0.57014 1.78036,-0.6035 2.74304,-0.63037 1.2636,-1.23554 2.59016,-2.61943 4.26151,-3.22983 1.40841,-0.18256 2.77413,-0.93142 3.38227,-2.25899 0.64995,-0.6509 2.00026,-0.28315 2.38449,-1.37096 0.49947,-0.98944 1.78839,-0.66337 2.72105,-0.74445 1.02255,0.28655 1.83142,-0.15974 2.57359,-0.83477 0.79963,-0.52381 1.38668,-1.54944 2.47345,-1.29549 1.29641,-0.34232 1.91459,1.27867 3.18471,1.27016 1.25663,0.28234 2.3019,1.17635 3.64988,1.08427 0.93717,-0.0136 2.12683,0.32968 2.62241,-0.70307 0.89036,-1.16736 2.54863,-1.3855 3.92871,-1.43547 1.53904,0.28584 3.10838,0.36706 4.66907,0.25056 0.28716,-1.49407 1.20374,-3.04875 0.42399,-4.53763 -0.11365,-0.99134 0.70763,-1.5975 1.07784,-2.27664 -0.3097,-1.10985 -0.49532,-2.3039 0.0447,-3.37288 -0.33692,-1.07984 -0.92222,-2.36942 0.0214,-3.29936 0.56571,-1.00801 -0.23157,-1.79314 -0.49736,-2.66507 0.0556,-1.08006 -0.40761,-2.13603 0.119,-3.16718 0.26946,-1.23686 0.77003,-2.46465 1.12817,-3.62573 -0.49572,-0.87781 0.0478,-1.90136 -0.2743,-2.72975 -0.34005,-1.12129 -1.72287,-1.17591 -2.11976,-2.22847 -0.70867,-0.98563 -0.53173,-2.22015 0.0328,-3.22984 0.48457,-0.94651 0.47275,-2.08218 1.34278,-2.8135 0.81942,-1.34953 -0.13306,-2.72175 -0.49317,-4.04247 0.17497,-1.32382 -1.38209,-0.74276 -1.87327,-1.56277 -1.02194,-0.54081 -0.25503,-1.77122 -0.9548,-2.42303 -1.04325,-0.74067 -0.75376,-2.2622 -1.2949,-3.20645 -1.24459,-0.68733 -2.29829,-1.65997 -3.68855,-2.07763 -1.04612,-0.36706 -1.78871,-1.349 -1.76361,-2.46999 -0.66939,-0.44284 -1.7496,-0.6111 -2.39417,-1.31686 0.55631,-1.47131 -0.0749,-2.98825 -0.26567,-4.47602 -0.43928,-0.99003 0.76537,-1.64999 1.01697,-2.55086 0.46309,-0.89987 1.4269,-1.88451 1.12402,-2.92524 -0.68291,-0.69063 -0.35216,-1.77373 -0.6658,-2.47728 -1.39291,-0.46539 -1.96957,-1.88119 -2.57863,-3.09339 0.33681,-0.92952 0.52306,-1.8881 0.55599,-2.87627 1.07699,-0.77827 1.21404,-1.24954 -0.2434,-0.91542 -0.9695,0.38755 -1.4887,-0.79873 -2.36478,-1.02707 -0.70808,-0.7733 -1.64647,-1.23505 -2.67378,-1.31522 -0.79915,-0.51238 -1.88297,-0.39609 -2.38433,-1.32815 -0.93285,-0.32857 -1.96175,-0.59857 -2.44174,-1.55436 -1.05866,-0.33309 -2.16373,-0.15184 -3.20967,0.0178 -1.15003,0.048 -1.81092,-1.05086 -1.92212,-2.0764 -0.29906,-0.99697 -0.96911,-1.87367 -1.9793,-2.21433 -0.13937,-0.81431 -1.04101,-2.15043 -1.80738,-1.16074 -0.7313,0.42411 -1.72889,-0.0321 -2.53365,0.40987 -1.27959,-0.74279 -2.47274,-1.6629 -3.8494,-2.19442 -0.51605,-0.91752 -1.72177,-0.64749 -2.34221,0.0216 -0.69774,0.30944 -1.9098,0.0615 -2.54731,-0.32016 -0.55965,-1.00699 -1.84287,-0.79543 -2.82109,-0.96837 -1.13664,0.67695 -2.26241,1.4813 -3.66411,1.27365 -0.97476,0.18387 -1.825,1.3565 -2.93562,0.88397 -0.76239,-0.0847 -1.19769,1.7813 -2.12219,1.19227 -1.06537,-1.16961 -2.67096,-0.3199 -3.96616,-0.10846 -0.86864,-1.49812 -2.27824,-2.82933 -3.95737,-3.33596 -0.91435,-1.69017 -3.10208,-1.59367 -4.49256,-2.69903 -0.7942,-0.58872 -1.89718,-0.52591 -2.4278,0.36601 -0.98821,1.02113 -2.16449,1.81903 -3.58864,2.04782 -1.50933,1.11237 -3.30035,1.73749 -4.94639,2.56239 -2.45396,1.96573 -5.39937,3.29055 -8.46675,3.95317 -1.52662,0.30835 -2.82044,1.33232 -3.50551,2.72541 -1.10993,1.40309 -1.63499,3.22729 -3.11913,4.30876 -0.7828,0.82064 -2.20683,-0.10857 -3.05255,0.74425 -1.06931,0.28785 -1.40142,1.22813 -1.71706,2.183 -0.26617,1.25486 -0.24064,2.58166 -0.82721,3.77321 -0.54598,0.87829 -1.64497,1.43347 -1.66928,2.60301 -0.10851,1.28718 -1.63016,1.56514 -2.37583,2.44216 -1.03577,0.46017 -0.96515,1.47892 -0.99037,2.44929 -0.35452,1.27122 -0.87577,2.51 -0.84228,3.86951 -0.3866,1.65616 0.14149,3.37608 -0.47456,4.98244 -0.22238,0.96848 -1.73256,0.0809 -2.38616,0.73183 -1.56763,0.76778 -3.02902,1.73028 -4.33074,2.87533 -1.75388,0.52255 -2.95017,1.95751 -3.94326,3.41907 -0.91524,0.60796 -1.85262,1.13809 -2.99068,0.96301 -0.99695,-0.12524 -1.58782,0.92293 -2.3286,1.43071 -1.251,1.30185 -2.3311,2.88803 -2.35854,4.75321 -0.18322,1.84932 -0.9755,3.60523 -2.35781,4.86671 -0.7502,0.79584 -0.57618,2.27338 -1.79032,2.64698 -2.02517,1.18543 -3.53098,3.13801 -5.79554,3.9233 -1.64905,-0.5097 -3.53517,-0.79441 -5.09763,0.11266 -1.16688,0.62246 -2.51843,-0.15824 -3.78452,-0.017 -1.20398,0.21316 -1.91004,-0.94086 -2.72438,-1.62465 -0.61841,-0.72547 -1.1689,-1.7924 -2.12287,-0.83114 -2.02891,1.12379 -4.42594,0.52093 -6.62658,0.82593"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 142.85633,315.86567 -1.14832,0.0801 -0.89796,0.72021 -0.98031,0.54691 -0.67757,0.895 -0.95416,0.61877 -1.13595,-0.0539 -1.03024,0.33372 -1.04666,0.27793 -1.09995,-0.47809 -1.1581,0.31184 -1.08339,0.40481 -0.83052,0.80488 -1.22516,0.11332 -0.82406,0.91365 -1.21615,0.14292 -1.00871,-0.69424 -0.58135,1.0941 -1.09205,0.58517 -1.1965,-0.11653 -1.16833,0.28323 -1.13651,0.36747 -0.81638,0.87191 -0.50545,1.04035 -0.47244,1.05574 -0.52587,1.0414 -1.00021,0.60054 -0.93196,0.63954 -0.73699,0.85696 -0.34185,1.21311 0.46943,1.16967 -0.98035,0.75267 -0.46733,1.1442 -1.09228,0.39385 -1.1571,-0.0964 -0.6056,1.01511 -1.05723,0.52866 -0.35109,1.04748 -0.74352,0.81711 -0.43016,1.00639 -0.7193,0.82491 -0.96031,0.51661 -0.56842,0.93058 -1.08766,0.23815 -0.70942,0.85816 -0.96546,0.47129 -0.8495,0.65771 -1.07353,0.0485 -1.03992,0.27092 -0.46783,0.9864 -0.67732,0.85621 -0.67143,0.86373 -0.871253,0.66164 -1.121124,0.10454 -1.125561,-0.031 -0.928837,0.63303 -0.912084,0.65694 -0.180394,1.0908 -0.457906,1.00634 -0.436526,1.05069 -0.916724,0.67389 -1.092068,0.24648 -1.082698,0.28484 -0.983827,0.60064 -0.593252,0.9883 -1.407646,-0.42847 -1.47067,-0.0467 -1.039251,-1.13829 -1.518421,-0.26485 -1.008119,-1.18019 -0.327509,-1.5172 -1.135161,-1.0524 -1.489703,-0.42064 -1.427315,-0.40127 -1.039592,-1.05712 -0.846552,-1.2749 -1.476182,-0.40362 -1.501362,-0.42761 -1.186517,-1.01446 -1.392405,0.77769 -1.589217,-0.13411 -0.899672,-1.2692 -1.280311,-0.8838 0.153494,-1.62792 -0.950408,-1.33057 -0.612866,-1.46493 -0.824233,-1.3573 0.543409,-1.49397 0.272235,-1.56624 -0.870798,-1.22504 -0.614505,-1.37163 -1.436755,-0.66044 -0.728821,-1.40331 -1.505349,-0.25369 -1.223771,-0.91259 -1.151031,-0.96216 -1.380928,-0.58622 -1.437577,-0.46744 -1.477223,0.32084 -1.053025,1.04737 -1.363183,0.58954 -1.519048,-0.12013 -1.266932,-0.84665 -1.503408,0.20218 -1.245078,0.86655 -1.450231,-0.355 -1.436974,0.40533 -1.347636,-0.57533 -1.075717,-0.99497 -1.396738,-0.20349 -1.329476,-0.4741 -1.454747,-0.31622 -1.332922,0.66302 -1.419635,0.4243 -1.312905,0.68678 -1.339944,0.83065 -1.554563,-0.26224 -1.20854,-0.97472 -1.536235,-0.22502 -1.491354,-0.49267 -1.503904,0.45292 -0.587083,-1.41835 -1.323758,-0.7772 -1.152146,-0.95446 -1.458915,-0.33166 -1.44487,-0.28758 -1.135344,-0.9388 -1.167797,-0.82999 -1.281697,-0.64022 -0.01994,-1.17581 -0.565112,-1.03129 -0.07823,-1.14927 -0.378918,-1.08783 0.274986,-1.2584 -0.616036,-1.13124 0.892162,-0.87941 0.310139,-1.21373 -0.940004,-0.70839 -0.357537,-1.12143 -0.168821,-1.18597 -0.907248,-0.78226 -0.94154,-0.68492 -0.448368,-1.07451 -0.6387009,-0.94196 -0.920296,-0.66955 0.4429507,-1.03855 0.7810397,-0.81534 0.3956615,-1.03799 0.367488,-1.04831 -0.03955,-1.10918 0.08535,-1.1066 -0.535681,-1.03329 0.166233,-1.15196 0.02582,-1.09268 0.04939,-1.09188 -0.03763,-1.09485 -0.186653,-1.07947 -0.02331,-1.1432 0.434228,-1.05778 0.917361,-0.71196 0.423278,-1.08132 -0.77814,-0.8986 -0.607714,-1.0216 0.229275,-1.21033 -0.44759,-1.14766 -1.0920672,-0.72124 -0.3577365,-1.2589 -1.1610006,-0.45949 -1.248605,-0.006 -0.967406,-0.62329 -0.3908042,-1.08243 -0.627309,-0.91434 -0.9137337,-0.62819 -0.022452,-1.16852 -0.7311408,-0.91179 -0.5075288,-1.02146 -0.9296611,-0.66084 -0.76102228,-0.9665 -0.81715353,-0.91954 0.0681606,-1.23146 -0.12343496,-1.22715 0.64553036,-1.00034 0.69826251,-0.96427 0.2705318,-1.16255 0.089927,-1.19022 0.080567,-1.0911 0.2004969,-1.07554 -0.079864,-1.09974 0.2192396,-1.08061 -0.189605,-1.10919 -0.5468721,-0.98346 0.071549,-1.1082 -0.035111,-1.10996 0.2392426,-1.29171 -0.2641218,-1.28686 -0.99119855,-0.89022 -0.43155801,-1.26045 -0.2296196,-1.28679 0.0646165,-1.30552 -1.18273514,-0.71047 -0.4619481,-1.30009 -0.8305644,-1.16583 0.1174132,-1.4266 -1.4018555,-0.32471 -0.8289731,-1.17619 0.4560052,-1.2906 -0.4102805,-1.30586 -0.8154394,-1.04302 -0.3534298,-1.2759 0.8794845,-0.9993 0.2710143,-1.30332 0.9737005,-0.85887 0.715348,-1.08352 1.0206477,-0.89253 0.2427617,-1.33394 0.6970721,-1.07888 0.86712369,-0.94761 -0.12792443,-1.32228 0.39133291,-1.26949 -0.64059486,-1.19541 0.098346,-1.35266 0.22891006,-1.27702 0.0215286,-1.2972 -0.10481134,-1.38346 0.85696839,-1.09112 -0.6734347,-1.15137 -0.75819312,-1.09742 -1.3040357,-0.28134 -1.2764554,-0.38772 -1.1500334,-0.50867 -1.1877638,-0.41296 -1.2504228,-0.14575 -1.2588443,0.0105 -1.0418116,-0.68711 -0.7144546,-1.02325 -1.075316,-0.6134 -0.862815,-0.88776 -0.559784,-1.13509 -0.327649,-1.22248 -0.746909,-1.05275 -1.124902,-0.63307 -1.091876,-0.83863 -1.34351,-0.3008 -0.635526,-1.18675 -0.50883,-1.24633 -0.565978,-1.18983 0.137328,-1.3104 0.38323,-1.27261 -0.410893,-1.26395 -0.10325,-1.26117 -0.612779,-1.10713 -0.06954,-1.25647 -0.517556,-1.14703 -0.406529,-1.26112 -0.889613,-0.98198 -1.062515,-0.7827 -1.278633,-0.32657 0.879414,-0.63436 1.053309,-0.25752 0.594861,-0.88348 0.660765,-0.83533 0.141314,-1.11238 0.861412,-0.71788 0.341571,-0.99813 0.03612,-1.05435 0.892186,-0.46165 0.782714,-0.62966 0.818801,-0.66768 1.056205,-0.0256 0.919136,-0.37758 0.934941,-0.33654 0.83058,-0.58737 1.000567,-0.18366 1.02567,-0.26987 1.006322,0.33488 0.8068913,-0.63796 0.9620221,-0.36412 0.818032,-0.56061 0.8655136,-0.4841 0.8842143,-0.54927 1.0385138,0.0709 1.0127127,0.1941 0.9897392,0.28927 0.9506081,-0.39795 0.97474978,-0.33448 0.99252915,-0.45406 1.08857457,0.0793 0.9643308,0.45511 0.8144867,0.68823 0.178407,-0.96396 0.6186988,-0.76043 0.4194292,-0.88237 0.7749777,-0.59489 0.6947301,-0.72218 0.9907124,-0.15059 0.5558342,-0.8093 0.8837774,-0.42762 0.900537,-0.49596 0.6177958,-0.82174 0.298895,-0.97859 -0.081277,-1.01999 0.7052663,-0.63224 0.820167,-0.47376 0.575269,-0.74795 0.655601,-0.67864 0.81899,-0.45228 0.799935,-0.48519 0.630971,-0.69125 0.582468,-0.73259 0.838325,-0.45627 0.497649,-0.81445 0.605498,-0.70026 0.722536,-0.57875 0.746188,-0.71454 0.629266,-0.81938 0.01107,-1.03338 0.175314,-1.01846 0.93963,-0.37856 0.676103,-0.75439 0.821519,-0.63358 1.037031,-0.0297 0.0061,1.53612 -0.452578,1.46796 -0.601642,1.49935 0.500577,1.53604 0.86519,1.39283 1.473598,0.71906 0.62618,1.45841 0.259174,1.56585 1.631586,0.58634 0.883152,1.49195 1.622934,0.41457 1.638758,-0.34677 1.020304,1.32673 1.423467,0.88033 0.361354,1.61564 0.01664,1.65548 0.60421,1.33344 -0.203692,1.44971 1.210768,0.88202 0.350815,1.45632 0.549529,1.37308 1.094279,0.99494 0.284023,1.44728 -0.341596,1.43478 0.337108,1.41611 1.076591,0.97978 0.249827,1.36836 0.268846,1.36474 0.761417,1.29456 -0.327969,1.46563 0.819095,1.13674 0.636481,1.24818 -0.204326,1.4524 -0.143927,1.45961 -0.384854,1.52822 0.760304,1.38041 -0.203082,1.48412 -0.198554,1.48474 -0.841696,1.23937 -0.883362,1.21004 0.606539,1.32118 0.565522,1.33926 0.180949,1.52041 1.052321,1.11222 0.733853,1.33921 0.146593,1.52004 -0.391484,1.44939 -0.139691,1.49482 0.841251,1.27857 0.574115,1.41875 0.254308,1.54255 0.906623,1.27366 -0.825625,1.39711 0.263975,1.60121 -0.574224,1.50149 0.440343,1.54605 0.615906,1.48565 1.022778,1.24114 1.668142,-0.0482 1.390631,0.92258 1.224722,0.99559 1.370653,0.7826 -0.04969,1.64995 0.912572,1.37551 1.288498,-0.54064 0.964128,-1.01142 1.363915,-0.16724 1.370724,0.0967 1.286776,-0.5479 0.718458,-1.19992 1.39732,-0.0868 1.073389,-0.89882 1.047181,-0.91894 0.301524,-1.36019 0.805155,-1.11328 1.262958,-0.54092 0.501573,-1.28456 0.648192,-1.21719 1.350279,-0.388 1.090948,-0.88523 1.395286,-0.24153 1.261039,0.64416 1.334981,-0.46025 1.351218,0.41015 1.290919,-0.44219 1.027116,-0.89835 1.148542,-0.69334 1.227329,-0.54179 1.221031,-0.74764 1.430661,0.0556 1.41835,0.20333 1.062219,0.96164 1.303346,-0.0601 1.286594,0.21679 1.284591,-0.18547 1.27129,-0.26153 1.412163,0.0926 1.244074,0.67458 1.390283,-0.056 1.341758,-0.36839 0.513766,-1.3634 1.052437,-1.00757 1.226193,-0.78234 1.441013,-0.19771 1.247816,-0.32415 1.27571,0.18626 1.21451,-0.36791 1.26134,-0.13939 1.26776,0.14587 1.27371,-0.0784 1.14557,-0.67234 1.32606,0.0768 0.83566,-1.23499 1.44098,-0.38355 1.45584,0.35489 1.31335,-0.72147 1.27828,0.53333 1.29213,0.49882 1.38295,-0.0862 1.38563,7.3e-4 1.02751,0.99189 1.40841,0.23667 1.05086,0.89996 0.69558,1.19599 1.25367,0.57686 1.37712,-0.0895 1.31009,0.28993 1.24974,0.48842 0.5006,1.119 0.97363,0.74483 1.20154,0.19641 1.00373,0.68904 1.02277,0.69902 0.52624,1.1215 -0.18295,1.23383 0.52361,1.13211 -0.0794,1.14669 -0.0309,1.14902 0.65477,0.96717 0.27299,1.13561 0.71099,0.89244 0.36463,1.0812 0.68137,0.96456 -0.0111,1.1809 1.20111,0.0468 1.18909,-0.17579 1.1742,-0.38689 1.21442,0.2315 0.49519,1.19515 0.76805,1.041 1.1439,0.63455 1.29823,0.16052 0.81697,0.83073 1.11908,0.32434 0.76673,0.82627 0.76447,0.82837 0.96151,0.60582 0.94763,0.6273 0.89313,0.76036 0.41842,1.09578 1.18114,-0.17594 1.0766,0.51668 1.07462,0.39649 1.12456,0.21759 1.14025,-0.46959 0.77615,-0.95827 1.18273,-0.43922 1.20612,0.37019 1.09576,0.27145 0.92223,0.65107 1.02454,0.43256 1.07465,0.28626 0.67875,0.96942 1.14668,0.29262 0.89638,0.65945 0.78617,0.7876 1.06185,0.61359 0.55404,1.09409 1.16443,0.22894 1.18283,-0.0961 0.98769,0.54358 1.11263,0.18184 1.10609,-0.16403 1.11469,0.0883 1.05674,-0.41823 1.12079,0.18827 1.09722,-0.0585 1.09134,0.12754 1.08481,-0.22219 1.09948,-0.13155 1.13821,-0.20982 0.82418,-0.81258 -0.92373,0.89975 -1.24912,0.32016 -1.08261,0.62645 -0.95611,0.80642 -0.64961,1.09696 -0.44912,1.19314 -1.19225,0.56709 -0.71621,1.10909 -1.05916,0.87775 -0.28874,1.34496 -1.13579,0.73324 -0.57592,1.22311 0.52767,1.2483 0.32446,1.31583 -0.34751,1.30556 -0.34166,1.30709 -0.86576,1.07407 0.0163,1.37946 -1.26166,0.41314 -0.98213,0.89325 -0.18326,1.22 -0.54721,1.10568 -0.41907,1.15871 -0.0651,1.23044 -0.53864,1.12589 -0.76927,0.98286 -0.68891,1.09024 -0.0139,1.28959 -1.3039,0.1613 -1.11274,0.69856 -0.64197,1.12352 -0.91509,0.91489 -0.59555,1.14366 -0.15745,1.27978 -0.86545,0.9318 -0.73334,1.03898 -0.17973,1.29709 0.0241,1.30926 -0.45319,1.30409 -1.15959,0.74925 0.3826,1.28937 -0.1314,1.33851 0.64368,1.22888 -0.19788,1.37306 -0.35629,1.31393 -0.93798,0.98668 -0.67239,1.13762 -0.78167,1.06549 -0.6021,1.39082 -1.37329,0.6411 -1.48287,0.0219 -1.21207,0.85457 0.32045,1.43257 -0.56186,1.35618 -0.18074,1.47142 -1.05747,1.039 -0.69578,1.2412 -1.23555,0.70576 -1.37901,-0.0681 -1.35704,0.25444 -1.10509,0.68332 -1.17079,0.56336 -1.25934,0.31779 -1.28304,0.2019"
+ id="path5708"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 293.09492,107.91929 -0.92749,1.27111 -0.47396,1.50044 -0.45848,1.49053 -0.72339,1.38153 -1.00985,1.23091 -1.44553,0.66738 -0.96742,1.27006 -1.4409,0.68758 -0.4843,1.46536 -0.2312,1.5259 -0.0514,1.5384 -0.18371,1.52825 0.27663,1.69814 -0.83692,1.50325 -0.82062,1.52762 -1.62002,0.61855 -1.38425,1.05192 -0.29639,1.71314 0.33265,1.60958 -0.24646,1.62502 -1.2317,1.01026 -0.73972,1.41086 -0.95394,1.30919 -1.49149,0.63199 -1.25125,1.0954 -0.53777,1.57363 -0.60277,1.5051 -0.1798,1.6113 -1.55402,0.426 -1.5139,0.55188 -1.18214,1.09922 -1.32834,0.91719 -1.25648,0.97368 -0.90288,1.30828 -0.63212,1.43915 -0.73414,1.38989 -1.29295,1.06089 -0.28151,1.64863 -1.43633,0.77023 -0.81114,1.41363 -0.44844,1.6054 -0.61824,1.54795 -1.07511,1.30319 -1.45198,0.86366 0.60986,1.58875 -0.44084,1.64369 0.0787,1.66936 -0.73735,1.49976 0.26085,1.63747 0.53582,1.56914 0.92511,1.3779 1.17032,1.17676 -0.24814,1.60424 0.13807,1.61745 -0.3487,1.61028 0.33464,1.61326 0.0471,1.59978 -0.40598,1.54812 0.37086,1.56909 -0.22868,1.59601 -0.6916,1.4835 -1.00456,1.29226 -0.2481,1.61377 0.0368,1.63232 -0.23881,1.30829 0.13664,1.32287 -1.12706,0.81225 -0.40596,1.32861 0.0868,1.2589 0.0441,1.26112 -0.27729,1.30171 0.56433,1.20534 0.52659,1.21577 -0.27532,1.29598 1.03457,0.86221 0.21903,1.32881 0.3369,1.29322 1.03924,0.84017 0.21994,1.25344 0.0399,1.27196 0.39263,1.2654 -0.0269,1.32463 -0.32147,1.26821 -0.25351,1.28353 -0.6223,1.29339 0.42408,1.37122 0.4468,1.27186 0.76748,1.10826 0.68976,1.17289 0.28357,1.33081 1.05511,0.83708 1.16735,0.67174 0.91943,0.89886 0.88988,0.92811 0.83116,1.03169 1.21775,0.52183 0.4798,1.36667 -0.22729,1.43049 0.86892,1.10499 0.96516,1.022 1.18265,0.66997 0.89241,1.02525 1.03728,0.86294 0.80439,1.08331 0.97703,1.01269 1.39202,0.20585 1.19242,0.71929 1.3909,-0.0684 1.23019,0.55378 1.15123,0.70335 1.10008,0.82824 0.66407,1.2063 0.45779,1.32077 1.0184,0.95754 -0.13215,1.42513 0.75164,1.21799 0.36518,1.35739 1.02004,0.96715 -0.16358,1.42898 0.78627,1.20437 -0.16763,1.52087 -0.9267,1.21753 0.54903,1.36845 0.54566,1.36981 -0.39526,1.33521 -0.84026,1.11041 -0.30025,1.3599 -0.7615,1.16602 1.42948,-0.99505 0.77304,-1.56076 1.21166,-1.17376 1.20499,-1.18061 1.77782,0.17311 1.65641,0.66854 1.61819,-0.71616 1.67408,-0.57349 1.47905,-0.63451 1.5911,-0.242 1.70157,-0.032 1.27208,-1.13057 1.54165,-0.59858 1.46576,-0.76587 0.77002,-1.47902 1.14795,-1.2094 0.18735,-1.65802 0.4527,-1.60598 0.5642,-1.66501 -0.57553,-1.66113 1.7248,-0.55352 1.19581,-1.36064 1.09036,-1.46508 0.0813,-1.82448 1.0367,-1.49951 -0.262,-1.80407 1.53419,-0.79755 1.11782,-1.3192 0.44563,-1.68995 1.35062,-1.10921 1.3951,-0.9289 1.58166,-0.55456 1.56639,-0.63021 1.66965,0.25106 1.52156,0.58224 1.53207,0.55399 1.61051,0.0612 1.59066,-0.25942 1.32855,-1.00055 1.65334,-0.18063 1.33016,-0.92201 1.44225,-0.7344 1.60851,-0.14391 1.60375,-0.18973 1.18993,-1.11575 1.57283,-0.43249 1.16865,-1.07099 1.26179,-0.9595 1.55898,-0.32647 1.58444,0.16287 1.47187,0.55865 1.44258,0.6304 1.48881,0.40487 1.53824,0.11958 1.61148,-0.24811 1.40584,0.82587 1.49971,-0.47245 1.56179,0.18199 1.5608,0.51485 1.5117,-0.64495 1.53466,-0.4058 1.53978,0.38591 1.53598,0.0746 1.53778,-0.007 1.68721,-0.15254 1.47127,0.83982 1.4728,-0.86644 1.69444,0.22072 1.59745,-0.45784 1.65499,-0.14984 1.37563,0.98419 1.65725,0.33844 0.97664,-1.47927 1.53104,-0.89329 1.69467,-0.41935 1.49443,-0.90246 1.67264,0.35406 1.70961,0.0161 1.53528,0.87884 1.7679,-0.0629 1.74666,-0.35947 1.06305,-1.43178 1.40226,-0.9525 1.65225,-0.37905 0.46679,-1.65279 1.17297,-1.2545 -0.0508,-1.77385 1.09497,-1.39646 0.98457,-1.40119 0.37604,-1.67071 1.03092,-1.3269 1.09119,-1.27779 1.45467,-0.87422 1.67783,-0.25538 1.6172,-0.41927 1.52628,-0.67938 0.88257,-1.47538 1.14025,-1.28666 -0.1598,-1.76467 0.74218,-1.60897 0.49007,-1.62843 0.41716,-1.64861 0.53533,-1.744 1.57326,-0.92357 -0.9342,-1.48935 -0.88892,-1.51681 -0.36004,-1.78462 -1.20782,-1.36222 0.24984,-1.85168 1.11175,-1.5017 -0.85975,-1.73199 0.49594,-1.86895 1.19382,-1.19639 0.59177,-1.58315 0.91143,-1.46761 1.57707,-0.70529 0.98405,-1.32238 1.11928,-1.21005 0.27503,-1.70439 1.20541,-1.23594 1.46716,-0.77689 1.22065,-1.12523 1.74389,-0.0363 1.34081,-1.11565 1.28923,-1.13171 1.25397,-1.17065 1.70941,-0.14843 1.69946,-0.23663 0.83997,-1.43339 1.3837,-0.91951 1.5457,-0.7438 1.67171,0.38444 0.65825,-1.39509 0.85287,-1.28537 0.55239,-1.45741 0.0643,-1.55724 1.15848,-1.0762 0.48261,-1.50578 0.55854,-1.42617 0.41163,-1.47529 -0.29819,-1.63283 -1.27994,-1.05679 0.48895,-1.59841 -0.71267,-1.51198 1.38206,-0.27198 1.32199,-0.4862 0.57516,-1.346 1.21266,-0.81974 1.26589,-0.52482 0.94441,-0.99298 0.97702,-0.92625 1.12952,-0.73258 1.21663,-0.69183 0.79777,-1.14996 1.31098,-0.51562 0.90201,-1.08208 1.35254,-0.22197 1.29026,-0.46243 1.42535,-0.1056 1.11493,-0.89428 1.18033,-0.77124 0.50211,-1.31753 0.012,-1.399 0.77438,-1.1652 0.89785,-1.07913 1.33309,-0.43996 0.24849,-1.41972 1.12081,-0.90616 0.51346,-1.28881 0.99012,-0.97177 0.53454,-1.29088 -0.11907,-1.3921 0.4756,-1.28786 0.24705,-1.35047 0.18811,-1.44858 -0.81071,-1.21513 0.3572,-1.36519 0.9846,-1.0109 0.83496,-1.08426 0.99221,-0.9425 -0.2707,-1.43093 0.63463,-1.31076 0.17392,-1.47818 -0.88937,-1.19343 -0.14482,-1.31929 0.11093,-1.32257 -0.1362,-1.39968 0.7975,-1.15829 0.4649,-1.25506 0.9334,-0.9592 0.90152,-0.976239 0.5215,-1.222221 -1.37616,-0.488361 -1.45973,0.03862 -1.48761,0.130757 -1.33143,-0.676264 -1.53565,0.0082 -1.15834,-1.008221 -1.3566,-0.485366 -1.41372,-0.278154 -0.50446,-1.540168 0.1349,-1.615055 -1.15013,-1.099427 -1.01504,-1.225236 -1.61201,0.02442 -1.44156,-0.721822 -1.11939,-1.095397 -1.14185,-1.07197 -1.13493,-1.005587 -1.36616,-0.657925 -1.45175,-0.399156 -1.4934,-0.191415 -1.15825,-0.971278 -1.34761,-0.684743 -0.48799,-1.484913 -1.2039,-0.996866 -1.53438,0.353608 -1.57455,0.01113 -1.30346,0.866845 -1.27114,0.913593 -1.50814,-0.484734 -1.56718,0.231099 -1.51802,-0.395595 -1.27816,-0.909496 -1.33754,-0.828582 -1.57088,0.08884 -1.48416,0.241003 -1.44112,0.428961 -0.93019,1.345041 -1.58526,0.401702 -1.53606,0.401363 -1.52617,-0.437465 -1.15579,-1.036313 -1.11119,-1.083991 -1.17188,-1.084286 -0.54838,-1.499422 -1.42085,-0.761549 -1.50156,-0.586596 -1.58039,0.311813 -1.60215,0.167211 -1.4118,0.517295 -1.46386,-0.343363 -1.45672,-0.17085 -1.29016,-0.697644 -1.47317,-0.01355 -1.28864,-0.714029 -1.2751,-0.646104 -1.2122,-0.757568 -1.59519,-0.02524 -1.2663,-0.970418 -1.44215,0.552832 -1.54395,-0.04029 -1.15727,1.00862 -1.52051,0.211218 -1.35772,0.613239 -1.10032,1.004354 -0.78897,-1.084422 -1.04659,-0.838517 -0.83648,-1.073888 -0.30633,-1.326307 -0.20788,-1.349455 -0.007,-1.365352 -0.39821,-1.387879 -1.18079,-0.830965 -0.7369,-1.216647 -1.31403,-0.544611 -1.27647,-0.557983 -1.389,0.106769 -1.2058,-0.655215 -0.93621,-1.003378 -1.32406,-0.366817 -1.37093,0.09078 -1.26542,-0.830717 -1.49258,0.252138 -1.13804,0.894809 -1.41797,0.291827 -0.90721,-1.108505 -0.83274,-1.165488 -1.3479,-0.576797 -1.46545,0.04438 -0.89214,-1.066631 -1.03646,-0.927022 -1.41808,0.205964 -1.33899,-0.510373 -0.55638,-1.197026 -0.61918,-1.165778 -0.81097,-1.050028 -1.01056,-0.859641 -1.03289,-1.05976 -0.0185,-1.479734 -0.18567,-1.394445 -0.75087,-1.1896 -0.54346,-1.403791 0.37949,-1.456697 0.48014,-1.375008 0.93634,-1.115543 0.13529,-1.375991 -0.29206,-1.351427 -0.21112,-1.376734 -0.72281,-1.190594 -1.25073,-0.670613 -1.09201,-0.906399 -0.27167,-1.415151 -0.80322,-1.196367 -0.85948,-1.172117 -0.79037,-1.219798 -0.27629,-1.429647 -0.0837,-1.45369 -0.74777,-1.240225 -1.19144,-0.823282 -1.45371,-0.432394 -0.79071,-1.294224 -1.28546,-0.776235 -1.50071,0.05287 -0.92861,-1.128538 -1.25863,-0.742814 -1.23593,-0.875938 -1.51442,-0.03589 -1.50782,-0.17535 -1.33905,0.714976 -0.7358,1.087744 -1.02,0.827158 -1.22748,0.425325 -1.21806,0.451596 -0.94297,0.87689 -0.58834,1.145419 -0.37739,1.223079 -0.69001,1.078069 -0.54703,1.157611 -0.87363,0.935986 -0.11754,1.260339 -0.20432,1.24921 -0.45317,1.248616 -1.01859,0.852578 0.14607,1.289254 -0.24475,1.274211 -1.18415,0.689728 -1.35743,-0.187896 -0.79309,1.128514 -1.33415,0.350121 -0.44038,1.224848 -0.3386,1.256796 -0.73195,1.096468 -1.04709,0.801004 -1.14671,0.478281 -0.88326,0.87381 -1.28456,0.20953 -0.83379,0.999406 -0.83701,0.991079 -1.20699,0.475388 -0.5283,1.141662 -0.56354,1.124684 -0.0328,1.354534 -0.41313,1.290409 -0.59826,1.236323 -0.0218,1.373295 -1.36515,0.525921 -0.96667,1.098075 -0.6114,1.301088 -0.19128,1.424798 -0.0274,1.387452 0.8079,1.128303 0.71947,1.199354 -0.20367,1.383694 -0.0515,1.390571 0.42443,1.325217 0.84719,1.078939 0.93332,1.005373 -0.90251,1.061215 -0.59625,1.259048 -0.42372,1.321214 -0.66796,1.216131 1.17714,0.994389 0.34954,1.500754 0.25242,1.513212 -0.66443,1.382771 -1.45667,0.0539 -1.45028,0.146389 -1.01835,1.042289 -0.97753,1.080673 -0.80826,1.246368 0.1113,1.481327 -0.6968,1.297837 -1.30668,0.680075 -0.006,0.375785 0.0636,0.370417 -0.12396,0.361148 -0.25491,0.284276 0.16268,0.339001 0.16923,0.335778 -0.12499,0.359416 -0.01,0.380402 -0.29373,0.207568 -0.18535,0.308227 -0.14316,0.329629 -0.26178,0.246208 -0.28472,0.222547 -0.27391,0.235724 -0.22767,0.294998 -0.0601,0.367753 -0.0498,0.346966 -0.0675,0.34396 -0.27705,0.231672 -0.13578,0.334655 0.003,0.359667 -0.15412,0.324984 -0.20595,0.284443 -0.23708,0.259071 -0.0694,0.336691 -0.0209,0.343137 0.0988,0.336209 -0.0452,0.347495 0.0255,0.352283 -0.13527,0.326276 -0.0626,0.350712 0.12423,0.333904 -0.31871,0.203007 -0.37637,0.03374 -0.24267,0.280724 -0.31301,0.199287 -0.36932,0.07008 -0.36529,0.08871 -0.36154,0.170251 -0.16893,0.362163 -0.17583,0.33515 0.004,0.37846 -0.0967,0.37567 -0.30653,0.23774 0.0113,0.36834 -0.0883,0.35777 -0.11153,0.34866 -0.16086,0.32882 -0.27824,0.26065 -0.12616,0.35978 0.008,0.38203 -0.17557,0.3394 -0.31679,0.18097 -0.30969,0.19287 -0.27845,0.23965 -0.32719,0.16708 -0.12083,0.33252 0.002,0.35378 -0.0656,0.34218 -0.0435,0.3457 -0.0275,0.34917 -0.10056,0.33551 -0.15977,0.3215 0.0105,0.35886"
+ id="path5714"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 253.36048,71.799171 -0.88433,-0.599558 -1.02804,-0.29094 -1.03524,-0.20222 -1.03851,-0.184687 -0.93725,0.651028 -1.14012,-0.04879 -0.96671,-0.618228 -1.14019,0.129236 -1.07341,-0.450866 -0.63049,-0.978762 -1.0972,0.309012 -1.12385,-0.190594 -0.72657,-0.803311 -0.83138,-0.694269 -0.98832,-0.603705 -1.13771,0.216424 -1.0554,-0.51684 -1.06554,-0.495585 -0.13508,-1.217167 -0.77132,-0.951208 -0.96482,-0.700045 -1.14702,-0.32449 -1.04764,0.613214 -1.21381,0.01556 -0.66443,-0.909833 -0.9914,-0.535152 -1.09572,-0.09348 -1.08491,-0.179694 -0.0575,-1.181416 -0.72687,-0.933121 -0.91424,-0.688688 -1.0931,-0.339481 0.24236,-1.179348 0.26058,-1.175457 0.19962,-1.229865 0.78509,-0.967501 -0.70146,-1.028483 -0.0581,-1.243555 -0.21197,-1.206107 -0.68426,-1.015584 -0.42285,-1.088673 -0.38453,-1.102794 -1.15007,-0.477063 -0.56262,-1.11073 -0.31082,-1.172432 -0.83461,-0.880138 -0.92353,-0.745028 -1.09174,-0.464841 -1.16362,0.213663 -1.13508,-0.33355 -1.17009,0.250101 -1.12668,-0.402788 -0.46889,-1.120494 -0.79782,-0.915881 -0.8912,-0.916687 -1.2732,-0.116157 -0.94935,-0.712894 -1.18084,-0.122874 -1.1259,-0.324699 -0.88397,-0.769215 -0.73319,-0.91873 -0.2493,-1.148685 -0.466,-1.062453 -0.78425,-0.854933 -0.92593,-0.622762 -0.44571,-1.022992 -1.04397,-0.296258 -1.08409,0.04878 -1.03075,-0.37481 -1.09221,0.100069 -0.42303,-1.036916 -0.93292,-0.619529 -0.97628,0.300294 -0.89049,0.500323 -1.00703,0.140326 -0.98911,0.2355 -1.03093,0.212468 -1.01376,0.283289 -1.04428,-0.198621 -0.94463,-0.487504 -1.00565,-0.09553 -0.91832,0.420909 -0.97466,-0.04452 -0.97515,-0.03164 -1.02291,0.08595 -0.86132,0.558431 -0.97591,-0.222329 -1.00072,-0.01945 -0.92201,0.688082 -1.14926,-0.05227 -1.02971,-0.33743 -1.01429,-0.381247 -0.49322,-0.949769 -0.84746,-0.653551 -0.99837,-0.361017 -0.81092,-0.685193 -0.89102,0.539831 -1.02771,0.170764 -1.07135,0.144602 -0.93598,-0.540969 -0.9488,0.321914 -0.90828,0.422935 -0.99665,0.160895 -1.00358,-0.109583 -1.01163,0.435294 -1.04505,-0.347499 -0.98135,-0.35173 -0.82172,-0.641525 -1.01241,-0.344846 -0.5661,-0.907432 -0.97422,-0.261202 -0.94457,-0.353718 -1.04396,0.198656 -0.64841,0.841943 -0.96794,0.444863 -1.01503,-0.32331 -0.80282,0.61667 -0.99792,0.170147 -0.98553,-0.145264 -0.97923,0.182928 -0.75099,0.803126 -1.09762,0.06493 -1.02516,-0.08536 -1.01561,0.163607 -1.04232,-0.289164 -0.70006,-0.824587 -1.02926,-0.109361 -1.03494,-0.01491 -1.29115,-0.21924 -1.2058,0.51106 -0.84378,0.934547 -0.94648,0.830365 -1.08691,0.575904 -1.22329,0.128736 -0.69306,1.083706 -1.22951,0.378229 -1.28048,-0.210101 -1.11891,0.657131 -1.19673,-0.488955 -1.24071,0.363134 -1.22407,-0.34054 -0.92494,-0.871085 -1.15439,-0.654497 -1.28915,0.314777 -1.24638,-0.205257 -1.19923,0.396789 -0.94111,0.883682 -1.28177,0.153866 -1.07985,0.718059 -0.36648,1.243938 -0.79395,0.966386 -1.1369,0.521268 -1.04785,0.787576 -0.30846,1.274014 -0.26933,1.208227 -0.072,1.235784 -1.1394,0.468367 -0.97797,0.749112 -0.93061,0.810497 -0.66117,1.042005 -0.56626,1.064308 -1.00013,0.673171 -1.05091,0.513605 -1.06024,0.494072 -1.15059,0.271059 -1.16165,-0.218856 -1.19084,0.03702 -1.03568,0.58892 -1.03031,0.457936 -0.91226,0.662594 -0.89432,0.688827 -0.712432,0.875633 -1.176359,0.202877 -1.097568,0.469385 -0.514446,1.079962 -0.780916,0.90617 -0.523976,1.138464 -1.108998,0.58376 -1.072215,0.617364 -0.565275,1.100567 -0.164606,1.246989 -0.793423,0.975989 -0.112763,1.209163 0.0865,1.211325 -0.485619,1.201714 -1.127223,0.639774 -1.15024,0.639819 -1.27671,-0.320047 -1.052182,0.741436 -0.314645,1.248124 -1.238055,0.107795 -1.047445,0.668774 -1.131597,0.744722 -0.439101,1.281528 -1.156191,0.562008 -1.058296,0.729822 -1.002721,0.77638 -0.967176,0.820235 -1.04587,0.799499 -0.479629,1.22597 -0.03933,1.424389 -0.508894,1.330962 0.894147,1.138041 0.258355,1.424038 -0.963069,1.083891 -1.310645,0.620107 0.185795,1.508958 -0.865585,1.249894 0.874237,1.032463 0.196427,1.338539 0.0059,1.303047 -0.148415,1.29458 -0.910202,0.979723 -0.124678,1.331458 -0.672167,1.119005 -0.06451,1.303771 -0.125394,1.308516 0.683874,1.122611 -0.429709,1.204324 0.130045,1.27206 0.671341,1.129574 0.933752,0.924523 -0.456235,1.295537 0.410021,1.3109 -1.334312,-0.26326 -1.334848,0.26053 -1.21941,0.59935 -0.912378,1.00685 -1.354815,0.24439 -1.150799,-0.75558 -1.277922,0.0633 -1.269765,0.15743 -0.695848,1.16978 -1.112933,0.78356 -0.658531,1.15803 -0.562857,1.20743 -1.277083,0.42075 -1.146841,0.70194 -1.336498,0.0711 -1.316488,0.24113 0.04415,1.47719 -0.72971,1.28514 -1.130957,0.86449 -1.173275,0.80612 -0.229658,1.32875 0.05192,1.34746 -0.171424,1.36321 0.42365,1.307 -0.961592,0.97005 -0.842601,1.07503 -0.277301,1.39932 -1.015331,1.00205 -1.130385,0.85051 -1.266082,0.63102 -1.407748,-0.43987 -1.409689,0.43361 1.204553,0.4913 0.71616,1.08602 0.484075,1.1865 -0.135303,1.27428 -0.100501,1.16942 0.0025,1.17372 0.07896,1.19575 0.554813,1.06218 1.041539,0.59347 1.187603,0.16312 1.178274,0.10429 1.134352,0.33533 1.022166,0.78822 1.27126,0.22361 0.486766,1.15617 0.58217,1.1112 0.100366,1.10008 -0.312808,1.05944 -0.322833,1.04708 -0.599916,0.91689 -0.236696,1.1481 0.589302,1.01335 0.07017,1.15683 -0.661001,0.95198 -0.14567,1.14378 -0.655084,0.94884 -0.31126,1.08084 -0.114714,1.11889 0.224483,1.13055 0.01419,1.15253 0.905958,0.78045 0.343083,1.14549 -0.329431,1.06297 -0.516315,0.98581 -0.168862,1.13496 -0.714407,0.89793 0.151549,1.13623 0.651578,0.9431 0.05678,1.11922 0.288152,1.08298 -0.207502,1.1259 0.470111,1.04389 0.821805,0.76702 0.381925,1.05727 -0.366897,1.03353 0.03157,1.09626 -0.02379,1.09792 0.389125,1.02693 0.430187,1.07937 0.797077,0.84545 0.913156,0.68876 0.994392,0.56518 -0.317642,1.13379 0.264616,1.14733 0.755765,0.92129 0.12041,1.18552 1.124321,0.36948 0.944855,0.71265 1.150997,0.31259 1.17994,-0.17392 0.653138,0.94056 0.721461,0.88925 0.756086,0.88921 0.353692,1.11232 1.474496,-0.16537 1.449565,-0.31662 1.024185,-1.10263 1.341034,-0.68292 1.435228,-0.10166 1.436451,-0.0826 1.419535,-0.28666 1.447592,0.0416 1.346316,0.46466 1.30804,0.56348 1.187713,0.82384 1.398591,0.36515 1.298084,0.6242 1.426073,0.20241 1.382672,0.33861 1.39116,0.30184 1.302118,-0.59387 1.276844,-0.64642 1.31475,-0.78477 1.50366,0.28887 1.246126,-0.7471 0.815742,-1.20231 0.763765,-1.21947 1.12231,-0.90048 1.416698,-0.37099 1.40201,0.42314 1.4851,-0.0849 1.13064,-0.96664 1.47538,0.17002 1.46821,-0.22363 1.15723,-0.91346 1.04888,-1.03607 1.41303,0.32813 1.45063,-2.1e-4 1.29296,-0.66262 1.41791,-0.31677 1.12771,-0.95758 0.67835,-1.31474 1.21315,-0.87315 1.4799,-0.20981 1.33125,-0.46106 1.39672,-0.18425 1.3464,-0.38959 1.34734,-0.38634 1.4423,0.16952 1.19277,0.82841 1.32863,0.62597 1.45581,-0.19428 1.4504,0.21742 1.39235,-0.46074 1.41147,-0.36249 1.43869,0.23198 0.81395,1.3076 1.47333,0.44903 1.36495,0.46701 1.33464,0.54766 1.24071,-0.66179 1.40562,-0.0397 1.36881,-0.14108 1.31152,-0.4165 1.42151,0.29354 1.34425,-0.54757 1.30537,-0.48606 1.21415,-0.68271 1.0073,-0.94499 1.31699,-0.41617 1.14082,-0.79167 0.63122,-1.23685 1.3634,0.0802 1.25635,-0.53559 1.36867,0.20998 1.26758,-0.55731 1.35247,0.24767 1.31176,-0.41208 1.41485,-0.16701 0.95906,-1.05352 1.37605,0.33821 1.10304,0.88949 1.25163,-0.76207 1.45375,0.18412 1.26689,-0.54356 1.37379,-0.1147 1.41161,-0.25273 1.2817,0.64324 1.12332,-0.73817 1.2626,-0.46109 1.07769,-0.82585 1.30151,-0.3867 1.45512,0.27035 1.11037,0.97854 1.50608,0.0524 1.22551,-0.87701 1.17078,0.70714 0.97746,0.95673 1.4226,-0.10275 1.21855,0.74126 1.41718,-0.3485 1.14083,-0.91015 1.40022,-0.57169 0.72719,-1.32614 1.41874,-0.37906 1.42486,-0.35532 0.92596,-1.14643 1.10485,-0.97518 0.64949,-1.46658 0.0243,-1.60378 -0.37573,-1.54294 -0.79705,-1.37352 0.33174,-1.56263 1.24509,-1.00082 0.77837,-1.30465 1.10405,-1.04358 1.45966,-0.37142 0.84943,-1.24379 1.15685,-0.87444 0.62527,-1.30842 1.45974,0.10864 1.28459,-0.70175 1.40484,-0.24234 1.40284,0.25362 1.40565,-0.14744 1.3906,0.25272 1.31274,0.55413 1.42467,0.0261 1.4198,-0.23606 1.19812,-0.79754 1.05754,-0.93405 1.18104,-0.77201 0.14498,-1.35476 0.55985,-1.24216 1.12957,-0.86019 0.37837,-1.36846 1.46701,-0.27759 0.95703,-1.14599 0.97306,-1.13092 0.04,-1.49137 0.24324,-1.44754 0.89797,-1.16111 0.3971,-1.39954 -0.19999,-1.44097 -1.05382,-0.9894 -0.64274,-1.29473 -0.56544,-1.31356 -0.28709,-1.40097 0.90763,-1.14955 0.34588,-1.42324 0.74233,-1.34028 1.44738,-0.50246 1.15222,-0.93405 1.38295,-0.53621 1.42951,0.53357 1.49298,-0.31496 0.98417,-1.04566 0.0727,-1.43412 -0.1833,-1.35335 0.2574,-1.34124 0.10538,-1.41388 1.01709,-0.98778 0.75286,-1.13764 0.146,-1.35635 -0.46659,-1.46302 -0.90916,-1.23754 0.0647,-1.53327 0.5394,-1.43671 -0.92532,-1.26683 -1.48796,-0.49706 -0.33484,-1.46938 -0.69774,-1.335797 0.39045,-1.420857 0.67069,-1.312039 -0.68345,-1.385074 0.28066,-1.518802 -0.14668,-1.573676 0.83192,-1.343827 1.2606,-0.825408 1.06031,-1.070579 0.92458,-1.296887 0.14076,-1.586486 1.54715,-0.348768 1.19203,-1.04611 1.35438,-0.521809 1.44996,-0.065 1.43528,-0.199527 1.31064,-0.618116 1.13617,-0.961321 1.24474,-0.815877 0.57843,-1.368296 0.58399,-1.365929 -0.55901,-1.403733 -0.10706,-1.507148 0.85319,-1.282405 0.13919,-1.533986"
+ id="path5717"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 108.46536,-25.451935 -0.79578,1.37989 -0.95409,1.275573 -1.33195,0.869388 -1.28731,0.934222 -1.62754,-0.311907 -1.46697,0.770823 -1.658726,-0.107192 -1.347298,0.973471 -0.702211,1.356984 -0.471698,1.453274 -1.192008,1.104653 -0.178052,1.615375 -0.6075,1.51561 -1.465412,0.720207 -1.076271,1.087325 -1.243835,0.8907914 -1.191997,1.0989272 -0.646012,1.4869988 0.04331,1.5872667 0.183938,1.5771679 -0.729946,1.3685867 -1.328872,0.7999693 -0.896867,1.19629281 -0.91611,1.18162175 -0.738632,1.35117974 -0.0094,1.5398625 -1.381048,0.8152084 -0.459361,1.5365039 -1.412298,0.6895283 -1.044755,1.1741047 -0.967243,1.3298332 0.132859,1.6390127 -1.556779,0.323485 -1.467071,-0.61311 -1.56581,-0.1987683 -1.438105,0.6504813 -0.790202,1.450688 -1.392232,0.88916 -1.60391,0.08054 -1.565642,0.357464 -1.56718,0.0023 -1.3908,0.722308 -1.019676,1.156843 -1.329731,0.780921 -0.694794,1.377777 -1.290678,0.845671 -1.12959,0.975244 -1.22175,0.856972 -0.663834,1.455894 -1.213805,1.042583 -1.034096,1.227233 -0.382809,1.558497 -1.558425,0.517221 -1.609223,-0.326504 -1.591657,0.352116 -1.267026,1.025672 -1.457815,0.477343 -1.525277,0.163138 -0.832396,1.332354 -1.355445,0.794241 -0.485616,1.488591 -0.726488,1.387063 -1.542284,0.411756 -1.234935,1.011493 -1.327843,0.690265 -1.474394,0.256512 -1.478724,-0.212836 -1.479131,0.209986 -1.109403,1.206563 -0.02672,1.638857 -0.995961,1.282686 -1.579679,0.376613 -1.354745,0.629626 -1.445703,-0.37644 -1.383334,0.306885 -1.264583,0.639237 L 23.86036,41.268644 22.410036,40.777855 21.295993,39.759123 19.793097,39.616957 18.46805,39.093683 17.506313,38.04267 16.169315,37.594373 14.759808,37.63712 13.28674,37.437063 11.991514,38.166682 10.760054,37.451731 9.3763346,37.11562 8.3385097,35.96122 8.1961723,34.415433 6.8869938,33.737542 5.5345796,33.150634 4.0818232,33.180808 2.6288133,33.167617 1.1520685,32.727356 0.27990274,31.456949 l -1.50621474,0.08308 -1.2182231,0.889672 -1.4628937,-0.339578 -1.4271661,0.467513 -0.8906009,1.140768 -1.0805774,0.962743 -0.9848192,1.102439 -0.4105723,1.420096 -1.4222963,0.240578 -1.228662,-0.755773 -1.433256,0.241587 -1.20678,-0.810105 -1.407407,0.0029 -1.362856,-0.35132 -1.491616,0.04156 -1.092095,1.016845 -1.286245,-0.871442 -1.550157,-0.104171 -1.497774,0.176169 -1.427878,0.485308 -1.138789,-0.990622 -1.395568,-0.574946 -1.148311,-1.061728 -0.31816,-1.531228 -1.333818,-0.604178 -1.437193,0.280311 -1.398097,-0.07721 -1.390367,0.165884 -1.236865,0.669683 -1.352015,0.387771 -0.908883,1.155715 -1.414732,0.400346 0.170897,-1.207982 0.381157,-1.158941 0.438633,-1.201896 1.066994,-0.706028 -0.219604,-1.290719 0.620623,-1.152825 -0.832549,-0.984459 -0.175502,-1.277301 -0.304361,-1.183433 -0.512993,-1.109048 0.500865,-1.191587 -0.369325,-1.238687 0.803337,-0.968717 0.963969,-0.809028 0.61229,-1.17096 -0.214001,-1.303936 -0.89098,-0.906597 -1.026878,-0.749189 -0.282604,-1.241724 -0.528155,-1.158791 -0.785466,-0.982618 -0.388484,-1.196484 -0.03894,-1.2504481 -0.399093,-1.1856907 0.649228,-1.0886307 0.267486,-1.2389775 -0.225513,-1.2362524 0.01567,-1.2565552 0.236498,-1.2034289 0.321006,-1.18369214 0.420915,-1.15836432 0.653162,-1.04515924 -0.446231,-1.0946408 -0.791173,-0.8782979 -0.625203,-1.0511296 -1.12031,-0.4905706 -1.061852,-0.6339948 -0.593126,-1.0852101 -0.32592,-1.1485159 -0.246864,-1.1680629 -0.234166,-1.1706242 0.23905,-1.169637 -0.269545,-1.151246 0.06868,-1.180384 0.269713,-1.271914 -0.632151,-1.136176 -1.081254,-0.67302 -0.517886,-1.163555 0.02248,-1.349038 -0.824686,-1.067849 -0.877239,-1.051163 -1.358856,-0.16734 -1.053314,-0.66677 -0.874527,-0.888402 -0.164143,-1.245417 -0.566036,-1.121431 -0.206164,-1.298541 -0.94888,-0.910132 0.303184,-1.278085 -0.523816,-1.204591 0.418102,-1.158061 0.128456,-1.224506 0.705061,-1.094501 -0.170333,-1.290748 1.058602,-0.840128 1.169999,-0.676431 -0.09698,-1.411686 0.73981,-1.206211 0.970153,-0.827531 1.146479,-0.558203 1.103455,-0.684294 0.690421,-1.099633 1.204121,-0.539745 0.657711,-1.143963 1.23623,-0.402041 0.86644,-0.969115 1.204056,-0.377536 1.078225,-0.655527 0.847594,-1.042163 1.32849,-0.199079 0.696718,-1.163492 1.231027,-0.568945 0.522106,-1.189866 0.689752,-1.101191 0.463058,-1.319265 1.172238,-0.762063 1.161898,-0.665933 1.308831,-0.283606 0.235424,-1.375303 0.53582,-1.288325 0.9627,-1.047409 1.323259,-0.522342 -0.168523,-1.327283 0.410449,-1.273425 0.44791,-1.253613 -0.06265,-1.329754 1.292105,-0.796753 1.51007,0.155042 1.04321,-1.142473 1.542991,-0.112737 1.27119,-0.784523 0.923713,-1.173948 0.443716,-1.404479 0.590457,-1.349372 0.883367,-1.267033 1.398982,-0.654645 -0.08448,-1.553933 0.777518,-1.348076 0.06031,-1.543485 -0.881899,-1.268163 0.836956,-1.309478 -0.175705,-1.544137 1.352804,-0.426349 0.697063,-1.235297 0.885022,-1.045972 1.299573,-0.434085 1.3924921,0.279127 1.4093129,0.175452 0.9181504,-1.172664 1.4269939,-0.426414 1.3716618,0.04154 1.3049551,0.424587 1.3505775,-0.264529 1.19750649,-0.678243 1.16806301,-0.800856 0.7747477,-1.18554 1.4175776,0.139447 1.3394345,-0.484651 1.5231918,-0.275265 1.3530798,-0.751704 1.2654872,-0.859623 1.1528172,-1.005694 1.119787,-1.197483 0.03685,-1.639064 1.097883,-1.071977 0.961118,-1.196133 1.586954,-0.580415 1.004554,-1.358741 1.61673,-0.07645 1.618307,-0.02733 1.325685,0.834841 1.509735,0.418449 1.473705,0.502561 1.542074,0.215365 1.368407,0.115706 1.353967,0.22956 1.308117,-0.541228 1.407836,0.148644 1.319313,-0.512575 1.405345,0.168305 1.31101,0.503864 1.40227,-0.07914 1.398002,0.0071 1.395131,-0.08981 1.385402,0.300528 1.205812,0.745436 1.36468,-0.313746 1.371119,0.284287 1.365743,-0.07897 1.364279,-0.10115 1.206256,-0.718065 1.066034,-0.913368 1.25648,-0.671137 0.916255,-1.090707 0.994047,-1.003072 1.231858,-0.690511 1.205817,-0.73907 0.934149,-1.06188 1.423266,0.0572 1.423823,-0.0411 1.214206,-0.86776 1.492328,-0.0159 1.306475,-0.52448 1.273014,-0.60116 1.288955,-0.59126 1.394673,-0.25666 0.208841,-1.44761 0.141529,-1.45572 0.829839,-1.21447 0.547825,-1.36509 1.327037,-0.6495 1.372407,-0.54717 0.721451,-1.31943 1.161646,-0.95498 -0.01088,-1.49333 0.884821,-1.20302 0.529349,-1.32101 0.759919,-1.20325 0.718478,-1.31635 0.85225,-1.23396 1.445541,-0.40496 1.375873,-0.60047 1.058614,-0.44747 1.14024,-0.14401 1.155699,-0.08 1.047719,-0.49429 1.13638,-0.38224 0.850839,-0.84471 0.774843,-0.89055 0.483798,-1.07676 0.689793,-0.96342 0.915832,-0.75183 1.256758,0.0568 0.97286,-0.79763 1.196751,0.0631 1.109449,0.45312 1.220879,-0.0736 1.021398,-0.67284 0.94887,-0.69412 0.633892,-0.99013 1.185014,-0.11934 0.990222,-0.66178 1.13374,0.0243 1.09952,-0.27745 1.103,-0.22348 1.12063,-0.10369 1.06515,-0.45893 1.15916,0.0388 1.15158,-0.28108 1.10767,0.42211 1.21516,-0.0102 1.17196,-0.32126 0.52211,-1.1319 1.01378,-0.72531 1.14278,-0.62083 1.29792,-0.0822 1.08793,-0.66315 0.96734,-0.82921 1.00696,0.88332 1.19308,0.60892 1.27943,-0.58969 1.36718,0.33985 1.1847,0.41451 1.18922,-0.40138 1.02271,0.75063 1.26367,-0.1118 1.16464,-0.24795 1.18983,0.0464 1.17945,0.0803 1.17162,0.15758 1.31006,-0.008 1.30783,-0.0767 1.06053,0.78408 1.21515,0.51274 1.31854,0.59667 1.38465,-0.42108 1.24036,0.69193 0.61841,1.27861 0.30235,1.4376 1.20792,0.83607 1.10632,0.81676 1.27185,0.52293 0.54604,1.32104 0.8568,1.14422 -0.42212,1.36096 -0.15189,1.4168 0.94156,0.93459 0.8508,1.0179 1.11675,0.76715 1.33231,0.24619 1.30371,0.0861 1.28338,-0.24498 1.31185,-0.26728 1.27652,0.40362 0.90269,0.98204 0.50653,1.23397 0.43417,1.30489 -0.38324,1.32075 0.96098,0.9031 0.43404,1.24527 0.96305,0.84655 1.03939,0.75087 1.06405,0.88104 0.34305,1.33818 -0.46302,1.27582 0.2148,1.34014 -0.78403,1.00929 -0.3974,1.21468 -0.50834,1.19093 0.0874,1.29193 0.82581,0.87902 0.72781,0.96173 0.60592,1.041833 0.52647,1.084152 0.0254,1.272444 0.24052,1.249765 0.73505,1.055027 1.03927,0.757169 -0.16526,1.170158 -0.071,1.179633 -0.68079,0.965374 -0.73362,0.925865 -0.49926,1.047125 -0.26115,1.13028 -0.40791,1.14983 0.38874,1.156453 -0.0148,1.237702 -0.76345,0.974313 -0.42272,1.164989 -1.04815,0.661279 0.21216,1.213251 -0.61229,1.068686 0.24858,1.167776 -0.32954,1.147561 -0.7134,1.036076 -0.0879,1.254853 0.57259,1.117003 -0.0543,1.25404 0.64232,1.022147 0.11947,1.201284 0.43073,1.136663 -0.18734,1.201013 -0.33966,1.229161 0.35104,1.225961 0.60095,1.07042 0.60663,1.067218 0.9865,0.706535 0.9512,0.753398 0.34342,1.2003 0.85654,0.908295 -0.33363,1.128183 -0.56024,1.034525 -0.96483,0.668314 -1.05749,0.509188 -0.65677,0.948262 -0.98995,0.592061 -1.1325,0.207427 -0.95701,0.640084 -1.26209,0.253895 -1.17616,-0.523461 -0.99575,0.716203 -1.0026,0.706586 -1.17207,-0.03692 -1.09079,-0.430434 -1.18688,-0.205022 -0.88593,-0.815982 -1.2586,-0.242995 -0.82621,-0.98003 -1.25794,-0.180048 -1.12344,0.59389 -1.08179,0.437873 -1.16637,0.04002 -0.86347,0.800961 -1.12289,0.355302 -0.31528,1.122292 -0.58614,1.007654 -0.8576,0.877767 -0.11194,1.222055 -1.23224,0.08269 -0.88401,0.862424 -0.86058,0.811808 -1.11093,0.406772 -1.18438,0.293402 -1.21245,-0.137199 -0.88196,0.819956 -0.99306,0.681186 -1.00024,-0.726225 -1.22446,-0.169085 -1.24645,-0.08398 -1.09528,0.600876 -0.38094,1.119742 -0.9859,0.653409 -0.68552,0.890222 -0.5226,0.994646 -0.32005,1.150172 -0.60324,1.030257 -0.94288,0.742934 -1.13341,0.395383 -1.06475,0.431083 -0.72072,0.894478 -0.33723,1.071592 -0.62666,0.932379 -1.05426,0.611438 -1.19852,-0.220996 -0.53842,1.051641 -0.98358,0.654523 -0.54033,1.012202 0.16881,1.134906 -0.57913,0.956284 -0.10294,1.113226 -0.87644,0.747307 -0.27246,1.119099 -1.01413,0.523023 -0.57653,0.984701"
+ id="path5720"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 233.83822,355.62913 -0.81939,-0.0908 -0.67826,0.46861 -0.73177,0.36492 -0.80023,-0.16824 -0.67198,-0.38896 -0.7448,-0.21939 -0.72978,-0.25237 -0.69634,-0.33373 -0.7987,-0.27674 -0.84481,0.0286 -0.6805,-0.5051 -0.4343,-0.72774 -0.34221,-0.70788 -0.39443,-0.68018 -0.0244,-0.81778 -0.4585,-0.6776 -0.79691,-0.14716 -0.47631,-0.65562 -0.35828,-0.67331 -0.55505,-0.5231 -0.83493,-0.0129 -0.60165,-0.57906 -0.80403,-0.0337 -0.71157,0.37588 -0.68914,-0.27634 -0.73569,0.10021 -0.68779,0.2088 -0.70557,0.13719 -0.71011,-0.20353 -0.61779,-0.40497 -0.73194,0.0152 -0.72284,0.11606 -0.76527,-0.16751 -0.77673,-0.10188 -0.71484,-0.33212 -0.77288,-0.15475 -0.77984,-0.29828 -0.81163,0.19586 -0.79095,0.15719 -0.70933,0.3836 -0.62452,0.45309 -0.54604,0.54513 -0.56188,0.53526 -0.68268,0.36902 -0.68494,0.44545 -0.44403,0.68587 -0.8155,0.0238 -0.73999,0.34353 -0.83426,0.21358 -0.79277,-0.33635 -0.74622,0.33164 -0.77211,0.26584 -0.80793,-0.23383 -0.49357,-0.68104 -0.70278,-0.37744 -0.63784,-0.47909 -0.22403,-0.77533 -0.63092,-0.50326 -0.61558,-0.46292 -0.56084,-0.52792 -0.60233,-0.49532 -0.72941,-0.27588 -0.75223,-0.16284 -0.74404,-0.19694 -0.30409,-0.70969 -0.34403,-0.6912 -0.57383,-0.59388 -0.82349,-0.0619 -0.72965,0.0244 -0.72963,-0.0248 -0.68329,-0.28674 -0.74022,-0.0344 -0.12967,-0.71964 -0.39877,-0.61292 -0.0653,-0.71702 0.071,-0.71648 -0.65511,-0.35774 -0.59138,-0.45544 -0.1049,-0.75078 -0.37851,-0.65681 -0.27584,-0.61608 -0.45215,-0.50121 0.11533,-0.69716 -0.34564,-0.61633 -0.026,-0.66017 0.11848,-0.64996 -0.21757,-0.6331 0.04,-0.66824 0.0732,-0.67395 -0.12927,-0.66547 -0.15965,-0.67745 -0.48785,-0.49641 -0.11955,-0.69902 0.38936,-0.59272 0.11402,-0.67321 -0.23586,-0.64077 -0.31308,-0.71827 -0.69193,-0.36766 -0.12639,-0.73685 0.0889,-0.74231 0.14828,-0.68875 0.34844,-0.61234 0.27372,-0.66345 -0.0702,-0.71427 0.24457,-0.63223 0.47307,-0.48552 0.61896,-0.31297 0.34333,-0.60266 0.40332,-0.62918 -0.13542,-0.73499 0.54993,-0.42807 0.48331,-0.50206 -0.0284,-0.64638 0.27913,-0.5837 -0.1592,-0.62694 0.15321,-0.62842 0.0699,-0.65317 -0.28012,-0.59418 -0.0815,-0.65259 0.27488,-0.59747 0.038,-0.63219 0.005,-0.6333 -0.23218,-0.59026 -0.15911,-0.614 -0.0516,-0.62432 -0.16822,-0.60343 -0.2431,-0.59547 0.0685,-0.63953 0.41377,-0.38607 0.30542,-0.47643 0.50951,-0.23784 0.48154,-0.29032 0.56071,0.0294 0.53058,-0.18371 0.53726,-0.13711 0.55426,-0.0155 -0.0444,-0.56729 0.0529,-0.56656 0.15374,-0.54606 0.19208,-0.53379 0.45852,-0.33087 0.45742,-0.33238 0.35801,-0.43768 0.35211,-0.44243 0.3423,-0.41051 0.39246,-0.36285 0.32714,-0.46958 0.55847,-0.12509 0.58734,-0.0837 0.37363,-0.46083 0.55969,-0.12797 0.54332,0.18557 0.41548,-0.33403 0.20097,-0.49377 0.13422,-0.52689 0.42253,-0.34219 0.543,-0.16923 0.34998,-0.44832 0.23205,-0.49429 0.12071,-0.53253 0.46315,-0.34934 0.58013,-0.003 0.46591,-0.30013 0.5216,-0.18728 0.56995,-0.11816 0.4014,-0.42154 0.41026,-0.37634 0.35919,-0.42536 0.39428,-0.49629 0.59761,-0.21123 0.39488,-0.52245 -0.0683,-0.65133 -0.0827,-0.58798 -0.22181,-0.55078 0.0924,-0.58245 0.13218,-0.57472 0.45357,-0.37323 0.28021,-0.51625 0.58471,0.0238 0.55842,-0.17501 0.19549,-0.50163 0.2669,-0.46756 0.11839,-0.55121 0.41658,-0.37989 0.54371,0.0841 0.51454,-0.1948 0.5265,-0.0967 0.49233,-0.21014 0.21053,-0.52622 0.47593,-0.30777 0.43541,-0.33154 0.51842,-0.17537 0.63854,-0.0825 0.62604,0.15041 0.6223,-0.12034 0.60907,-0.17544 0.65986,-0.0268 0.557,0.35481 0.6206,0.20472 0.63808,-0.14108 0.44149,0.48216 0.50515,0.415 0.61032,0.2304 0.622,0.19666 0.66079,-0.12922 0.60344,0.29867 0.64097,-0.0233 0.63143,0.11263 0.67639,0.13113 0.59511,-0.34721 0.63854,-0.25912 0.65077,0.22666 0.69326,-0.037 0.56727,-0.40023 0.53531,-0.42134 0.32417,-0.59916 0.69052,0.088 0.67426,-0.17296 0.56361,-0.38762 0.58646,-0.35211 0.44287,-0.58028 0.67493,-0.27806 0.0723,-0.70537 0.22644,-0.67195 0.58215,0.1347 0.57998,0.14382 0.60329,0.0496 0.55671,0.23769 0.61821,0.0421 0.61902,-0.0279 0.52801,-0.32319 0.5501,-0.28395 0.5108,0.36319 0.60966,0.14539 0.60054,0.13493 0.59129,0.171 0.64595,0.25375 0.66551,-0.19682 0.48457,-0.44408 0.52909,-0.38997 0.4944,-0.50258 0.21695,-0.67077 0.59437,-0.38896 0.70924,-0.0393 0.66525,0.0967 0.62748,-0.24119 0.6462,0.0819 0.63346,0.15165 0.48432,0.39567 0.59969,0.17749 0.62619,-0.0155 0.57987,0.23686 0.53244,0.35893 0.64148,-0.0286 0.60847,0.0407 0.60941,0.0226 0.26455,0.50429 0.33027,0.46392 0.19224,0.54026 0.0404,0.57201 0.52937,0.25359 0.30556,0.50117 0.25073,0.5135 0.41133,0.39669 0.32196,0.49198 0.26002,0.52736 0.2611,0.5551 0.52599,0.31567 0.49199,0.34429 0.58311,0.14345 0.58066,0.11471 0.5912,0.0284 0.0523,0.60518 -0.0576,0.60471 0.23857,0.56577 0.41547,0.4521 0.35876,0.48071 0.22668,0.55534 -0.15725,0.60658 0.23503,0.58089 0.47704,0.4593 0.11502,0.65215 0.55177,0.31932 0.42612,0.47415 0.62159,0.0455 0.62312,0.0131 0.55595,0.30199 0.62575,0.0933 0.57145,0.23537 0.43401,0.43997 0.59499,-0.11411 0.60031,-0.0815 0.38283,0.46176 0.17301,0.57432 0.52287,0.26899 0.51138,0.29026 0.48636,0.27589 0.43845,0.347 0.53696,0.22343 0.32791,0.48033 0.59049,0.0428 0.47756,0.34991 0.55669,-0.22243 0.57924,0.15445 0.26721,0.5414 0.46717,0.38244 0.58581,0.0809 0.57004,0.15745 0.59949,0.0744 0.55908,-0.22881 0.59245,0.13712 0.42904,0.43095 0.36274,0.47759 0.585,0.13208 0.44454,0.3871 0.15042,0.56995 0.57479,0.11498 0.57556,0.11106 0.32132,0.4931 0.40431,0.4277 0.53127,-0.49059 0.68433,-0.23372 0.70858,-0.0535 0.68644,-0.18367 0.63848,-0.33176 0.7023,-0.15649 0.42521,-0.58177 0.57026,-0.44052 0.77208,0.0687 0.74312,0.22047 0.68821,-0.34818 0.69093,-0.34275 0.64298,0.3561 0.57324,0.46003 0.75243,0.12619 0.56619,0.51137 0.76375,0.0652 0.67195,0.36884 0.72361,-0.20046 0.73995,-0.12755 0.7149,0.39664 0.26909,0.77201 0.76429,0.0875 0.72225,0.26484 0.41704,-0.63466 0.70746,-0.27608 0.73217,-0.0207 0.69026,-0.24504 0.62729,-0.42831 0.41818,-0.63409 0.72093,-0.27273 0.76162,0.11855 0.72489,-0.17413 0.64979,0.36546 0.54777,0.42776 0.49786,0.48493 0.69729,0.14966 0.60504,0.37755 0.27115,0.65535 0.4394,0.55673 0.57066,0.33774 0.55063,0.36948 0.37916,0.59206 0.66704,0.22214 0.60748,0.31424 0.51084,0.45477 0.42769,0.53643 0.25325,0.6376 0.56947,0.46897 0.28956,0.67852 0.74859,0.0319 0.60345,0.44414 0.72068,-0.0563 0.68354,-0.23523 0.69037,0.20632 0.63698,0.33681 0.43732,0.62084 0.71387,0.259 0.47239,0.59083 0.0685,0.75334 0.54214,0.51491 0.74156,0.0955 0.72116,-0.1135 0.69637,0.21916 -0.0854,0.51164 -0.37782,0.3554 -0.37401,0.3311 -0.46637,0.17889 -0.44934,0.18116 -0.48312,0.0363 -0.3479,0.35884 -0.48795,0.10821 -0.34882,0.42819 -0.54721,0.0748 -0.2489,0.4581 -0.0812,0.51498 -0.0627,0.48032 -0.16593,0.45507 -0.21889,0.46735 0.1518,0.49323 -0.23177,0.40511 -0.277,0.37562 -0.25808,0.40275 -0.40921,0.24772 -0.31048,0.39883 -0.49453,0.10443 -0.49139,-0.11574 -0.45158,0.2257 -0.43146,0.24946 -0.17997,0.46475 -0.4908,-0.0228 -0.42042,0.25426 -0.33053,0.33343 -0.43402,0.17902 -0.43973,0.18544 -0.47277,-0.0651 -0.50653,0.0466 -0.50801,0.0257 -0.45135,0.29263 -0.5358,-0.0476 -0.54057,0.11586 -0.43056,0.34677 -0.0745,0.55977 -0.3856,0.41257 -0.0763,0.51779 -0.39735,0.34067 -0.20405,0.45821 0.004,0.50158 -0.44874,0.26794 -0.14573,0.50192 -0.10982,0.49385 -0.35478,0.36068 -0.3082,0.43767 -0.27776,0.4576 -0.0395,0.54043 0.13203,0.52554 0.14269,0.50793 0.38079,0.36517 0.34035,0.42582 -0.0315,0.54422 -0.10254,0.49106 -0.36702,0.342 -0.0413,0.50398 -0.3427,0.37183 -0.42486,0.28924 -0.3592,0.36762 -0.0404,0.51083 -0.10377,0.50181 -0.99923,0.29895 -0.98742,0.33589 -0.63742,0.91007 -1.07518,0.28023 -1.0332,0.17745 -1.04513,0.0819 -0.98886,-0.37291 -1.0525,-0.0957 -0.77578,0.79714 -1.11085,0.0574 -0.77393,0.71981 -0.42998,0.9655 -0.97722,0.29734 -0.79477,0.64164 -0.73337,0.69567 -0.88462,0.48913 -1.02831,0.0952 -0.83849,0.60284 -0.84326,0.65289 -1.06389,-0.0742 -1.0119,-0.16333 -0.98266,0.29152 -0.96793,-0.36586 -1.02096,0.16844 -0.95097,0.34658 -0.78193,0.6427 -0.97762,0.20466 -0.99259,0.11132 -0.95156,0.50328 -1.05296,-0.22369 -0.73391,0.71118 -0.90182,0.48072 -1.01232,0.0848 -0.96944,0.30358 -0.91082,0.43815 -0.86823,0.51744 -0.26892,1.08943 -0.90224,0.66719 -1.05587,0.17039 -0.94722,0.49667 -1.10513,-0.0144 -0.94914,0.56626 -0.83082,0.66491 -0.78515,0.71828 -1.04429,0.33614 -1.05845,-0.28846 -1.08845,-0.0479 -0.91565,-0.59041 -0.94367,0.36122 -0.77346,0.65019 -0.86733,0.5018 -0.74276,0.67257 -0.93316,0.35043 -0.93633,0.34188 -0.98493,0.16962 -0.94984,0.31093 -0.96668,-0.50127 -1.07386,0.18051 -1.0163,0.2712 -0.84229,0.63007 -0.97305,0.29297 -0.99848,-0.18888 -0.95684,0.26235 -0.98996,0.0659"
+ id="path5729"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path15533"
+ d="m 620.46536,-25.451935 -0.79578,1.37989 -0.95409,1.275573 -1.33195,0.869388 -1.28731,0.934222 -1.62754,-0.311907 -1.46697,0.770823 -1.65873,-0.107192 -1.34729,0.973471 -0.70221,1.356984 -0.4717,1.453274 -1.19201,1.104653 -0.17805,1.615375 -0.6075,1.51561 -1.46541,0.720207 -1.07628,1.087325 -1.24383,0.8907914 -1.192,1.0989272 -0.64601,1.4869988 0.0433,1.5872667 0.18394,1.5771679 -0.72994,1.3685867 -1.32888,0.7999693 -0.89686,1.19629281 -0.91611,1.18162175 -0.73864,1.35117974 -0.009,1.5398625 -1.38105,0.8152084 -0.45936,1.5365039 -1.41229,0.6895283 -1.04476,1.1741047 -0.96724,1.3298332 0.13286,1.6390127 -1.55678,0.323485 -1.46707,-0.61311 -1.56581,-0.1987683 -1.43811,0.6504813 -0.7902,1.450688 -1.39223,0.88916 -1.60391,0.08054 -1.56565,0.357464 -1.56717,0.0023 -1.39081,0.722308 -1.01967,1.156843 -1.32973,0.780921 -0.6948,1.377777 -1.29067,0.845671 -1.12959,0.975244 -1.22175,0.856972 -0.66384,1.455894 -1.2138,1.042583 -1.0341,1.227233 -0.38281,1.558497 -1.55842,0.517221 -1.60923,-0.326504 -1.59165,0.352116 -1.26703,1.025672 -1.45781,0.477343 -1.52528,0.163138 -0.8324,1.332354 -1.35544,0.794241 -0.48562,1.488591 -0.72649,1.387063 -1.54228,0.411756 -1.23493,1.011493 -1.32785,0.690265 -1.47439,0.256512 -1.47873,-0.212836 -1.47913,0.209986 -1.1094,1.206563 -0.0267,1.638857 -0.99596,1.282686 -1.57968,0.376613 -1.35474,0.629626 -1.44571,-0.37644 -1.38333,0.306885 -1.26458,0.639237 -1.41062,0.595406 -1.45034,-0.490747 -1.11405,-1.018732 -1.50289,-0.142166 -1.32505,-0.523274 -0.96174,-1.051013 -1.337,-0.448297 -1.4095,0.04275 -1.47307,-0.200057 -1.29523,0.729619 -1.23146,-0.714951 -1.38372,-0.336111 -1.03782,-1.1544 -0.14234,-1.545787 -1.30918,-0.677891 -1.35241,-0.586908 -1.45276,0.03017 -1.45301,-0.01319 -1.47674,-0.440261 -0.87217,-1.270407 -1.50621,0.08308 -1.21823,0.889672 -1.46289,-0.339578 -1.42716,0.467513 -0.89061,1.140768 -1.08057,0.962743 -0.98482,1.102439 -0.41057,1.420096 -1.4223,0.240578 -1.22866,-0.755773 -1.43326,0.241587 -1.20678,-0.810105 -1.40741,0.0029 -1.36285,-0.35132 -1.49162,0.04156 -1.09209,1.016845 -1.28625,-0.871442 -1.55015,-0.104171 -1.49778,0.176169 -1.42788,0.485308 -1.13879,-0.990622 -1.39556,-0.574946 -1.14832,-1.061728 -0.31816,-1.531228 -1.33381,-0.604178 -1.4372,0.280311 -1.39809,-0.07721 -1.39037,0.165884 -1.23687,0.669683 -1.35201,0.387771 -0.90888,1.155715 -1.41474,0.400346 0.1709,-1.207982 0.38116,-1.158941 0.43863,-1.201896 1.067,-0.706028 -0.21961,-1.290719 0.62063,-1.152825 -0.83255,-0.984459 -0.17551,-1.277301 -0.30436,-1.183433 -0.51299,-1.109048 0.50087,-1.191587 -0.36933,-1.238687 0.80334,-0.968717 0.96397,-0.809028 0.61229,-1.17096 -0.21401,-1.303936 -0.89097,-0.906597 -1.02688,-0.749189 -0.28261,-1.241724 -0.52815,-1.158791 -0.78547,-0.982618 -0.38848,-1.196484 -0.0389,-1.2504481 -0.39909,-1.1856907 0.64923,-1.0886307 0.26748,-1.2389775 -0.22551,-1.2362524 0.0157,-1.2565552 0.2365,-1.2034289 0.321,-1.18369214 0.42092,-1.15836432 0.65316,-1.04515924 -0.44623,-1.0946408 -0.79117,-0.8782979 -0.62521,-1.0511296 -1.12031,-0.4905706 -1.06185,-0.6339948 -0.59313,-1.0852101 -0.32592,-1.1485159 -0.24686,-1.1680629 -0.23417,-1.1706242 0.23905,-1.169637 -0.26954,-1.151246 0.0687,-1.180384 0.26972,-1.271914 -0.63215,-1.136176 -1.08126,-0.67302 -0.51788,-1.163555 0.0225,-1.349038 -0.82469,-1.067849 -0.87724,-1.051163 -1.35885,-0.16734 -1.05332,-0.66677 -0.87452,-0.888402 -0.16415,-1.245417 -0.56603,-1.121431 -0.20617,-1.298541 -0.94888,-0.910132 0.30319,-1.278085 -0.52382,-1.204591 0.41811,-1.158061 0.12845,-1.224506 0.70506,-1.094501 -0.17033,-1.290748 1.0586,-0.840128 1.17,-0.676431 -0.097,-1.411686 0.73981,-1.206211 0.97015,-0.827531 1.14648,-0.558203 1.10345,-0.684294 0.69042,-1.099633 1.20412,-0.539745 0.65771,-1.143963 1.23623,-0.402041 0.86645,-0.969115 1.20405,-0.377536 1.07823,-0.655527 0.84759,-1.042163 1.32849,-0.199079 0.69672,-1.163492 1.23103,-0.568945 0.5221,-1.189866 0.68975,-1.101191 0.46306,-1.319265 1.17224,-0.762063 1.1619,-0.665933 1.30883,-0.283606 0.23542,-1.375303 0.53582,-1.288325 0.9627,-1.047409 1.32326,-0.522342 -0.16852,-1.327283 0.41045,-1.273425 0.44791,-1.253613 -0.0627,-1.329754 1.29211,-0.796753 1.51007,0.155042 1.04321,-1.142473 1.54299,-0.112737 1.27119,-0.784523 0.92371,-1.173948 0.44372,-1.404479 0.59046,-1.349372 0.88336,-1.267033 1.39899,-0.654645 -0.0845,-1.553933 0.77752,-1.348076 0.0603,-1.543485 -0.8819,-1.268163 0.83695,-1.309478 -0.1757,-1.544137 1.3528,-0.426349 0.69707,-1.235297 0.88502,-1.045972 1.29957,-0.434085 1.39249,0.279127 1.40932,0.175452 0.91815,-1.172664 1.42699,-0.426414 1.37166,0.04154 1.30496,0.424587 1.35057,-0.264529 1.19751,-0.678243 1.16806,-0.800856 0.77475,-1.18554 1.41758,0.139447 1.33943,-0.484651 1.52319,-0.275265 1.35308,-0.751704 1.26549,-0.859623 1.15282,-1.005694 1.11979,-1.197483 0.0368,-1.639064 1.09788,-1.071977 0.96112,-1.196133 1.58695,-0.580415 1.00455,-1.358741 1.61674,-0.07645 1.6183,-0.02733 1.32569,0.834841 1.50973,0.418449 1.47371,0.502561 1.54207,0.215365 1.36841,0.115706 1.35396,0.22956 1.30812,-0.541228 1.40784,0.148644 1.31931,-0.512575 1.40535,0.168305 1.31101,0.503864 1.40227,-0.07914 1.398,0.0071 1.39513,-0.08981 1.3854,0.300528 1.20581,0.745436 1.36468,-0.313746 1.37112,0.284287 1.36574,-0.07897 1.36428,-0.10115 1.20626,-0.718065 1.06603,-0.913368 1.25648,-0.671137 0.91626,-1.090707 0.99405,-1.003072 1.23185,-0.690513 1.20582,-0.73907 0.93415,-1.06188 1.42327,0.0572 1.42382,-0.0411 1.21421,-0.86776 1.49232,-0.0159 1.30648,-0.52448 1.27301,-0.60116 1.28896,-0.59126 1.39467,-0.25666 0.20884,-1.44761 0.14153,-1.45572 0.82984,-1.21447 0.54782,-1.36509 1.32704,-0.6495 1.37241,-0.54717 0.72145,-1.31943 1.16165,-0.95498 -0.0109,-1.49333 0.88482,-1.20302 0.52935,-1.32101 0.75992,-1.20325 0.71848,-1.31635 0.85225,-1.23396 1.44554,-0.40496 1.37587,-0.60047 1.05862,-0.44747 1.14024,-0.14401 1.1557,-0.08 1.04771,-0.49429 1.13638,-0.38224 0.85084,-0.84471 0.77485,-0.89055 0.48379,-1.07676 0.6898,-0.96342 0.91583,-0.75183 1.25676,0.0568 0.97286,-0.79763 1.19675,0.0631 1.10945,0.45312 1.22088,-0.0736 1.02139,-0.67284 0.94887,-0.69412 0.6339,-0.99013 1.18501,-0.11934 0.99022,-0.66178 1.13374,0.0243 1.09952,-0.27745 1.103,-0.22348 1.12063,-0.10369 1.06515,-0.45893 1.15916,0.0388 1.15158,-0.28108 1.10767,0.42211 1.21516,-0.0102 1.17196,-0.32126 0.52211,-1.1319 1.01378,-0.72531 1.14278,-0.62083 1.29792,-0.0822 1.08793,-0.66315 0.96734,-0.82921 1.00696,0.88332 1.19308,0.60892 1.27943,-0.58969 1.36718,0.33985 1.1847,0.41451 1.18922,-0.40138 1.02271,0.75063 1.26367,-0.1118 1.16464,-0.24795 1.18983,0.0464 1.17945,0.0803 1.17162,0.15758 1.31006,-0.008 1.30783,-0.0767 1.06053,0.78408 1.21515,0.51274 1.31854,0.59667 1.38465,-0.42108 1.24036,0.69193 0.61841,1.27861 0.30235,1.4376 1.20792,0.83607 1.10632,0.81676 1.27185,0.52293 0.54604,1.32104 0.8568,1.14422 -0.42212,1.36096 -0.15189,1.4168 0.94156,0.93459 0.8508,1.0179 1.11675,0.76715 1.33231,0.24619 1.30371,0.0861 1.28338,-0.24498 1.31185,-0.26728 1.27652,0.40362 0.90269,0.98204 0.50653,1.23397 0.43417,1.30489 -0.38324,1.32075 0.96098,0.9031 0.43404,1.24527 0.96305,0.84655 1.03939,0.75087 1.06405,0.88104 0.34305,1.33818 -0.46302,1.27582 0.2148,1.34014 -0.78403,1.00929 -0.3974,1.21468 -0.50834,1.19093 0.0874,1.29193 0.82581,0.87902 0.72781,0.96173 0.60592,1.041835 0.52647,1.084152 0.0254,1.272444 0.24052,1.249765 0.73505,1.055027 1.03927,0.757169 -0.16526,1.170158 -0.071,1.179633 -0.68079,0.965374 -0.73362,0.925865 -0.49926,1.047125 -0.26115,1.13028 -0.40791,1.14983 0.38874,1.156453 -0.0148,1.237702 -0.76345,0.974313 -0.42272,1.164989 -1.04815,0.661279 0.21216,1.213251 -0.61229,1.068686 0.24858,1.167776 -0.32954,1.147561 -0.7134,1.036076 -0.0879,1.254853 0.57259,1.117003 -0.0543,1.25404 0.64232,1.022147 0.11947,1.201284 0.43073,1.136663 -0.18734,1.201013 -0.33966,1.229161 0.35104,1.225961 0.60095,1.07042 0.60663,1.067218 0.9865,0.706535 0.9512,0.753398 0.34342,1.2003 0.85654,0.908295 -0.33363,1.128183 -0.56024,1.034525 -0.96483,0.668314 -1.05749,0.509188 -0.65677,0.948262 -0.98995,0.592061 -1.1325,0.207427 -0.95701,0.640084 -1.26209,0.253895 -1.17616,-0.523461 -0.99575,0.716203 -1.0026,0.706586 -1.17207,-0.03692 -1.09079,-0.430434 -1.18688,-0.205022 -0.88593,-0.815982 -1.2586,-0.242995 -0.82621,-0.98003 -1.25794,-0.180048 -1.12344,0.59389 -1.08179,0.437873 -1.16637,0.04002 -0.86347,0.800961 -1.12289,0.355302 -0.31528,1.122292 -0.58614,1.007654 -0.8576,0.877767 -0.11194,1.222055 -1.23224,0.08269 -0.88401,0.862424 -0.86058,0.811808 -1.11093,0.406772 -1.18438,0.293402 -1.21245,-0.137199 -0.88196,0.819956 -0.99306,0.681186 -1.00024,-0.726225 -1.22446,-0.169085 -1.24645,-0.08398 -1.09528,0.600876 -0.38094,1.119742 -0.9859,0.653409 -0.68552,0.890222 -0.5226,0.994646 -0.32005,1.150172 -0.60324,1.030257 -0.94288,0.742934 -1.13341,0.395383 -1.06475,0.431083 -0.72072,0.894478 -0.33723,1.071592 -0.62666,0.932379 -1.05426,0.611438 -1.19852,-0.220996 -0.53842,1.051641 -0.98358,0.654523 -0.54033,1.012202 0.16881,1.134906 -0.57913,0.956284 -0.10294,1.113226 -0.87644,0.747307 -0.27246,1.119099 -1.01413,0.523023 -0.57653,0.984701"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path15535"
+ d="m 108.46536,486.54806 -0.79578,1.3799 -0.95409,1.27557 -1.33195,0.86939 -1.28731,0.93422 -1.62754,-0.31191 -1.46697,0.77082 -1.658726,-0.10719 -1.347298,0.97347 -0.702211,1.35699 -0.471698,1.45327 -1.192008,1.10465 -0.178052,1.61538 -0.6075,1.51561 -1.465412,0.72021 -1.076271,1.08732 -1.243835,0.89079 -1.191997,1.09893 -0.646012,1.487 0.04331,1.58727 0.183938,1.57716 -0.729946,1.36859 -1.328872,0.79997 -0.896867,1.19629 -0.91611,1.18162 -0.738632,1.35118 -0.0094,1.53987 -1.381048,0.8152 -0.459361,1.53651 -1.412298,0.68953 -1.044755,1.1741 -0.967243,1.32983 0.132859,1.63902 -1.556779,0.32348 -1.467071,-0.61311 -1.56581,-0.19877 -1.438105,0.65048 -0.790202,1.45069 -1.392232,0.88916 -1.60391,0.0805 -1.565642,0.35747 -1.56718,0.002 -1.3908,0.7223 -1.019676,1.15685 -1.329731,0.78092 -0.694794,1.37777 -1.290678,0.84567 -1.12959,0.97525 -1.22175,0.85697 -0.663834,1.45589 -1.213805,1.04259 -1.034096,1.22723 -0.382809,1.5585 -1.558425,0.51722 -1.609223,-0.32651 -1.591657,0.35212 -1.267026,1.02567 -1.457815,0.47735 -1.525277,0.16313 -0.832396,1.33236 -1.355445,0.79424 -0.485616,1.48859 -0.726488,1.38706 -1.542284,0.41176 -1.234935,1.01149 -1.327843,0.69027 -1.474394,0.25651 -1.478724,-0.21284 -1.479131,0.20999 -1.109403,1.20656 -0.02672,1.63886 -0.995961,1.28269 -1.579679,0.37661 -1.354745,0.62962 -1.445703,-0.37644 -1.383334,0.30689 -1.264583,0.63924 -1.410614,0.5954 -1.450347,-0.49075 -1.114043,-1.01873 -1.502896,-0.14216 -1.325047,-0.52328 -0.961737,-1.05101 -1.336998,-0.4483 -1.409507,0.0427 -1.473068,-0.20006 -1.295226,0.72962 -1.23146,-0.71495 -1.3837194,-0.33611 -1.0378249,-1.1544 -0.1423374,-1.54579 -1.3091785,-0.67789 -1.3524142,-0.58691 -1.4527564,0.0302 -1.4530099,-0.0132 -1.4767448,-0.44026 -0.87216576,-1.27041 -1.50621474,0.0831 -1.2182231,0.88967 -1.4628937,-0.33957 -1.4271661,0.46751 -0.8906009,1.14077 -1.0805774,0.96274 -0.9848192,1.10244 -0.4105723,1.42009 -1.4222963,0.24058 -1.228662,-0.75577 -1.433256,0.24159 -1.20678,-0.81011 -1.407407,0.003 -1.362856,-0.35132 -1.491616,0.0416 -1.092095,1.01684 -1.286245,-0.87144 -1.550157,-0.10417 -1.497774,0.17617 -1.427878,0.4853 -1.138789,-0.99062 -1.395568,-0.57494 -1.148311,-1.06173 -0.31816,-1.53123 -1.333818,-0.60418 -1.437193,0.28031 -1.398097,-0.0772 -1.390367,0.16588 -1.236865,0.66969 -1.352015,0.38777 -0.908883,1.15571 -1.414732,0.40035 0.170897,-1.20798 0.381157,-1.15894 0.438633,-1.2019 1.066994,-0.70603 -0.219604,-1.29072 0.620623,-1.15282 -0.832549,-0.98446 -0.175502,-1.2773 -0.304361,-1.18343 -0.512993,-1.10905 0.500865,-1.19159 -0.369325,-1.23869 0.803337,-0.96871 0.963969,-0.80903 0.61229,-1.17096 -0.214001,-1.30394 -0.89098,-0.9066 -1.026878,-0.74918 -0.282604,-1.24173 -0.528155,-1.15879 -0.785466,-0.98262 -0.388484,-1.19648 -0.03894,-1.25045 -0.399093,-1.18569 0.649228,-1.08863 0.267486,-1.23898 -0.225513,-1.23625 0.01567,-1.25656 0.236498,-1.20342 0.321006,-1.1837 0.420915,-1.15836 0.653162,-1.04516 -0.446231,-1.09464 -0.791173,-0.8783 -0.625203,-1.05113 -1.12031,-0.49057 -1.061852,-0.63399 -0.593126,-1.08521 -0.32592,-1.14852 -0.246864,-1.16806 -0.234166,-1.17063 0.23905,-1.16963 -0.269545,-1.15125 0.06868,-1.18038 0.269713,-1.27192 -0.632151,-1.13617 -1.081254,-0.67302 -0.517886,-1.16356 0.02248,-1.34904 -0.824686,-1.06785 -0.877239,-1.05116 -1.358856,-0.16734 -1.053314,-0.66677 -0.874527,-0.8884 -0.164143,-1.24542 -0.566036,-1.12143 -0.206164,-1.29854 -0.94888,-0.91013 0.303184,-1.27809 -0.523816,-1.20459 0.418102,-1.15806 0.128456,-1.2245 0.705061,-1.09451 -0.170333,-1.29074 1.058602,-0.84013 1.169999,-0.67643 -0.09698,-1.41169 0.73981,-1.20621 0.970153,-0.82753 1.146479,-0.5582 1.103455,-0.6843 0.690421,-1.09963 1.204121,-0.53975 0.657711,-1.14396 1.23623,-0.40204 0.86644,-0.96912 1.204056,-0.37753 1.078225,-0.65553 0.847594,-1.04216 1.32849,-0.19908 0.696718,-1.16349 1.231027,-0.56895 0.522106,-1.18986 0.689752,-1.10119 0.463058,-1.31927 1.172238,-0.76206 1.161898,-0.66593 1.308831,-0.28361 0.235424,-1.3753 0.53582,-1.28833 0.9627,-1.04741 1.323259,-0.52234 -0.168523,-1.32728 0.410449,-1.27343 0.44791,-1.25361 -0.06265,-1.32975 1.292105,-0.79676 1.51007,0.15504 1.04321,-1.14247 1.542991,-0.11274 1.27119,-0.78452 0.923713,-1.17395 0.443716,-1.40448 0.590457,-1.34937 0.883367,-1.26703 1.398982,-0.65465 -0.08448,-1.55393 0.777518,-1.34808 0.06031,-1.54348 -0.881899,-1.26816 0.836956,-1.30948 -0.175705,-1.54414 1.352804,-0.42635 0.697063,-1.23529 0.885022,-1.04598 1.299573,-0.43408 1.3924921,0.27913 1.4093129,0.17545 0.9181504,-1.17267 1.4269939,-0.42641 1.3716618,0.0415 1.3049551,0.42459 1.3505775,-0.26453 1.19750649,-0.67825 1.16806301,-0.80085 0.7747477,-1.18554 1.4175776,0.13945 1.3394345,-0.48466 1.5231918,-0.27526 1.3530798,-0.75171 1.2654872,-0.85962 1.1528172,-1.00569 1.119787,-1.19749 0.03685,-1.63906 1.097883,-1.07198 0.961118,-1.19613 1.586954,-0.58041 1.004554,-1.35874 1.61673,-0.0765 1.618307,-0.0273 1.325685,0.83484 1.509735,0.41845 1.473705,0.50256 1.542074,0.21537 1.368407,0.1157 1.353967,0.22956 1.308117,-0.54123 1.407836,0.14865 1.319313,-0.51258 1.405345,0.16831 1.31101,0.50386 1.40227,-0.0791 1.398002,0.007 1.395131,-0.0898 1.385402,0.30053 1.205812,0.74543 1.36468,-0.31374 1.371119,0.28428 1.365743,-0.079 1.364279,-0.10115 1.206256,-0.71807 1.066034,-0.91336 1.25648,-0.67114 0.916255,-1.09071 0.994047,-1.00307 1.231858,-0.69051 1.205817,-0.73907 0.934149,-1.06188 1.423266,0.0572 1.423823,-0.0411 1.214206,-0.86776 1.492328,-0.0159 1.306475,-0.52448 1.273014,-0.60116 1.288955,-0.59126 1.394673,-0.25666 0.208841,-1.44761 0.141529,-1.45572 0.829839,-1.21447 0.547825,-1.36509 1.327037,-0.6495 1.372407,-0.54717 0.721451,-1.31943 1.161646,-0.95498 -0.01088,-1.49333 0.884821,-1.20302 0.529349,-1.32101 0.759919,-1.20325 0.718478,-1.31635 0.85225,-1.23396 1.445541,-0.40496 1.375873,-0.60047 1.058614,-0.44747 1.14024,-0.14401 1.155699,-0.08 1.047719,-0.49429 1.13638,-0.38224 0.850839,-0.84471 0.774843,-0.89055 0.483798,-1.07676 0.689793,-0.96342 0.915832,-0.75183 1.256758,0.0567 0.97286,-0.79763 1.196751,0.0631 1.109449,0.45312 1.220879,-0.0736 1.021398,-0.67284 0.94887,-0.69412 0.633892,-0.99013 1.185014,-0.11934 0.990222,-0.66178 1.133743,0.0243 1.09952,-0.27745 1.103,-0.22348 1.12063,-0.10369 1.06515,-0.45893 1.15916,0.0388 1.15158,-0.28108 1.10767,0.42211 1.21516,-0.0102 1.17196,-0.32126 0.5221,-1.1319 1.01378,-0.72531 1.14278,-0.62083 1.29793,-0.0822 1.08793,-0.66315 0.96733,-0.82921 1.00697,0.88332 1.19307,0.60892 1.27944,-0.58969 1.36718,0.33985 1.1847,0.41451 1.18922,-0.40138 1.02271,0.75063 1.26367,-0.1118 1.16464,-0.24795 1.18983,0.0464 1.17945,0.0803 1.17162,0.15758 1.31006,-0.008 1.30783,-0.0767 1.06053,0.78408 1.21514,0.51274 1.31855,0.59667 1.38465,-0.42108 1.24036,0.69193 0.61841,1.27861 0.30235,1.4376 1.20792,0.83607 1.10632,0.81676 1.27185,0.52293 0.54604,1.32104 0.8568,1.14422 -0.42212,1.36096 -0.15189,1.4168 0.94156,0.93459 0.8508,1.0179 1.11675,0.76715 1.33231,0.24619 1.30371,0.0861 1.28338,-0.24498 1.31184,-0.26728 1.27653,0.40362 0.90269,0.98204 0.50653,1.23397 0.43416,1.30489 -0.38324,1.32075 0.96099,0.9031 0.43404,1.24527 0.96305,0.84655 1.03939,0.75087 1.06405,0.88104 0.34305,1.33818 -0.46302,1.27582 0.2148,1.34014 -0.78403,1.00929 -0.3974,1.21468 -0.50834,1.19093 0.0874,1.29193 0.82581,0.87902 0.72781,0.96173 0.60592,1.04183 0.52647,1.08415 0.0254,1.27245 0.24053,1.24976 0.73505,1.05503 1.03926,0.75717 -0.16525,1.17016 -0.071,1.17963 -0.68079,0.96537 -0.73363,0.92587 -0.49925,1.04712 -0.26115,1.13028 -0.40791,1.14983 0.38874,1.15646 -0.0148,1.2377 -0.76345,0.97431 -0.42272,1.16499 -1.04815,0.66128 0.21216,1.21325 -0.61229,1.06869 0.24858,1.16777 -0.32954,1.14756 -0.7134,1.03608 -0.0879,1.25485 0.57259,1.11701 -0.0543,1.25404 0.64232,1.02214 0.11947,1.20129 0.43073,1.13666 -0.18734,1.20101 -0.33966,1.22916 0.35104,1.22596 0.60095,1.07042 0.60663,1.06722 0.9865,0.70654 0.9512,0.7534 0.34342,1.20029 0.85654,0.9083 -0.33363,1.12818 -0.56024,1.03453 -0.96483,0.66831 -1.05749,0.50919 -0.65677,0.94826 -0.98995,0.59206 -1.1325,0.20743 -0.95701,0.64008 -1.26209,0.2539 -1.17616,-0.52346 -0.99575,0.7162 -1.0026,0.70659 -1.17207,-0.0369 -1.09079,-0.43043 -1.18688,-0.20503 -0.88593,-0.81598 -1.2586,-0.24299 -0.82621,-0.98003 -1.25794,-0.18005 -1.12344,0.59389 -1.08179,0.43787 -1.16637,0.04 -0.86347,0.80096 -1.12289,0.3553 -0.31528,1.1223 -0.58614,1.00765 -0.8576,0.87777 -0.11194,1.22205 -1.23224,0.0827 -0.88401,0.86243 -0.86058,0.81181 -1.11093,0.40677 -1.18438,0.2934 -1.21245,-0.1372 -0.88196,0.81996 -0.99306,0.68118 -1.00024,-0.72622 -1.22446,-0.16909 -1.24645,-0.084 -1.09528,0.60087 -0.38094,1.11975 -0.9859,0.6534 -0.68552,0.89023 -0.5226,0.99464 -0.32005,1.15018 -0.60324,1.03025 -0.94288,0.74294 -1.13341,0.39538 -1.06475,0.43108 -0.72072,0.89448 -0.33723,1.07159 -0.62666,0.93238 -1.05426,0.61144 -1.19852,-0.221 -0.53842,1.05164 -0.98358,0.65453 -0.54033,1.0122 0.16881,1.1349 -0.57913,0.95629 -0.10294,1.11322 -0.87644,0.74731 -0.27246,1.1191 -1.01413,0.52302 -0.57653,0.9847"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 620.46536,486.54806 -0.79578,1.37989 -0.95409,1.27558 -1.33195,0.86939 -1.28731,0.93422 -1.62754,-0.31191 -1.46697,0.77082 -1.65873,-0.10719 -1.34729,0.97347 -0.70221,1.35699 -0.4717,1.45327 -1.19201,1.10465 -0.17805,1.61538 -0.6075,1.51561 -1.46541,0.72021 -1.07628,1.08732 -1.24383,0.89079 -1.192,1.09893 -0.64601,1.487 0.0433,1.58727 0.18394,1.57716 -0.72994,1.36859 -1.32888,0.79997 -0.89686,1.19629 -0.91611,1.18162 -0.73864,1.35118 -0.009,1.53987 -1.38105,0.8152 -0.45936,1.53651 -1.41229,0.68953 -1.04476,1.1741 -0.96724,1.32983 0.13286,1.63902 -1.55678,0.32348 -1.46707,-0.61311 -1.56581,-0.19877 -1.43811,0.65049 -0.7902,1.45068 -1.39223,0.88916 -1.60391,0.0805 -1.56565,0.35747 -1.56717,0.002 -1.39081,0.7223 -1.01967,1.15685 -1.32973,0.78092 -0.6948,1.37778 -1.29067,0.84567 -1.12959,0.97524 -1.22175,0.85697 -0.66384,1.4559 -1.2138,1.04258 -1.0341,1.22723 -0.38281,1.5585 -1.55842,0.51722 -1.60923,-0.3265 -1.59165,0.35211 -1.26703,1.02567 -1.45781,0.47735 -1.52528,0.16314 -0.8324,1.33235 -1.35544,0.79424 -0.48562,1.48859 -0.72649,1.38706 -1.54228,0.41176 -1.23493,1.01149 -1.32785,0.69027 -1.47439,0.25651 -1.47873,-0.21283 -1.47913,0.20998 -1.1094,1.20656 -0.0267,1.63886 -0.99596,1.28269 -1.57968,0.37661 -1.35474,0.62963 -1.44571,-0.37644 -1.38333,0.30688 -1.26458,0.63924 -1.41062,0.5954 -1.45034,-0.49074 -1.11405,-1.01874 -1.50289,-0.14216 -1.32505,-0.52328 -0.96174,-1.05101 -1.337,-0.44829 -1.4095,0.0427 -1.47307,-0.20005 -1.29523,0.72962 -1.23146,-0.71495 -1.38372,-0.33611 -1.03782,-1.1544 -0.14234,-1.54579 -1.30918,-0.67789 -1.35241,-0.58691 -1.45276,0.0302 -1.45301,-0.0132 -1.47674,-0.44026 -0.87217,-1.27041 -1.50621,0.0831 -1.21823,0.88967 -1.46289,-0.33958 -1.42716,0.46752 -0.89061,1.14077 -1.08057,0.96274 -0.98482,1.10244 -0.41057,1.42009 -1.4223,0.24058 -1.22866,-0.75577 -1.43326,0.24159 -1.20678,-0.81011 -1.40741,0.003 -1.36285,-0.35132 -1.49162,0.0416 -1.09209,1.01685 -1.28625,-0.87145 -1.55015,-0.10417 -1.49778,0.17617 -1.42788,0.48531 -1.13879,-0.99062 -1.39556,-0.57495 -1.14832,-1.06173 -0.31816,-1.53122 -1.33381,-0.60418 -1.4372,0.28031 -1.39809,-0.0772 -1.39037,0.16588 -1.23687,0.66969 -1.35201,0.38777 -0.90888,1.15571 -1.41474,0.40035 0.1709,-1.20798 0.38116,-1.15895 0.43863,-1.20189 1.067,-0.70603 -0.21961,-1.29072 0.62063,-1.15282 -0.83255,-0.98446 -0.17551,-1.2773 -0.30436,-1.18344 -0.51299,-1.10904 0.50087,-1.19159 -0.36933,-1.23869 0.80334,-0.96872 0.96397,-0.80902 0.61229,-1.17096 -0.21401,-1.30394 -0.89097,-0.9066 -1.02688,-0.74918 -0.28261,-1.24173 -0.52815,-1.15879 -0.78547,-0.98262 -0.38848,-1.19648 -0.0389,-1.25045 -0.39909,-1.18569 0.64923,-1.08863 0.26748,-1.23898 -0.22551,-1.23625 0.0157,-1.25656 0.2365,-1.20343 0.321,-1.18369 0.42092,-1.15836 0.65316,-1.04516 -0.44623,-1.09464 -0.79117,-0.8783 -0.62521,-1.05113 -1.12031,-0.49057 -1.06185,-0.63399 -0.59313,-1.08522 -0.32592,-1.14851 -0.24686,-1.16806 -0.23417,-1.17063 0.23905,-1.16964 -0.26954,-1.15124 0.0687,-1.18039 0.26972,-1.27191 -0.63215,-1.13618 -1.08126,-0.67302 -0.51788,-1.16355 0.0225,-1.34904 -0.82469,-1.06785 -0.87724,-1.05116 -1.35885,-0.16734 -1.05332,-0.66677 -0.87452,-0.8884 -0.16415,-1.24542 -0.56603,-1.12143 -0.20617,-1.29854 -0.94888,-0.91013 0.30319,-1.27809 -0.52382,-1.20459 0.41811,-1.15806 0.12845,-1.22451 0.70506,-1.0945 -0.17033,-1.29075 1.0586,-0.84012 1.17,-0.67643 -0.097,-1.41169 0.73981,-1.20621 0.97015,-0.82753 1.14648,-0.55821 1.10345,-0.68429 0.69042,-1.09963 1.20412,-0.53975 0.65771,-1.14396 1.23623,-0.40204 0.86645,-0.96912 1.20405,-0.37753 1.07823,-0.65553 0.84759,-1.04216 1.32849,-0.19908 0.69672,-1.16349 1.23103,-0.56895 0.5221,-1.18986 0.68975,-1.1012 0.46306,-1.31926 1.17224,-0.76206 1.1619,-0.66594 1.30883,-0.2836 0.23542,-1.37531 0.53582,-1.28832 0.9627,-1.04741 1.32326,-0.52234 -0.16852,-1.32728 0.41045,-1.27343 0.44791,-1.25361 -0.0627,-1.32976 1.29211,-0.79675 1.51007,0.15504 1.04321,-1.14247 1.54299,-0.11274 1.27119,-0.78452 0.92371,-1.17395 0.44372,-1.40448 0.59046,-1.34937 0.88336,-1.26703 1.39899,-0.65465 -0.0845,-1.55393 0.77752,-1.34808 0.0603,-1.54348 -0.8819,-1.26816 0.83695,-1.30948 -0.1757,-1.54414 1.3528,-0.42635 0.69707,-1.2353 0.88502,-1.04597 1.29957,-0.43408 1.39249,0.27912 1.40932,0.17546 0.91815,-1.17267 1.42699,-0.42641 1.37166,0.0415 1.30496,0.42459 1.35057,-0.26453 1.19751,-0.67825 1.16806,-0.80085 0.77475,-1.18554 1.41758,0.13944 1.33943,-0.48465 1.52319,-0.27526 1.35308,-0.75171 1.26549,-0.85962 1.15282,-1.00569 1.11979,-1.19749 0.0368,-1.63906 1.09788,-1.07198 0.96112,-1.19613 1.58695,-0.58041 1.00455,-1.35875 1.61674,-0.0764 1.6183,-0.0273 1.32569,0.83485 1.50973,0.41844 1.47371,0.50257 1.54207,0.21536 1.36841,0.11571 1.35396,0.22956 1.30812,-0.54123 1.40784,0.14864 1.31931,-0.51257 1.40535,0.1683 1.31101,0.50387 1.40227,-0.0791 1.398,0.007 1.39513,-0.0898 1.3854,0.30052 1.20581,0.74544 1.36468,-0.31375 1.37112,0.28429 1.36574,-0.079 1.36428,-0.10115 1.20626,-0.71806 1.06603,-0.91337 1.25648,-0.67114 0.91626,-1.09071 0.99405,-1.00307 1.23185,-0.69051 1.20582,-0.73907 0.93415,-1.06188 1.42327,0.0572 1.42382,-0.0411 1.21421,-0.86776 1.49232,-0.0159 1.30648,-0.52448 1.27301,-0.60116 1.28896,-0.59126 1.39467,-0.25666 0.20884,-1.44761 0.14153,-1.45572 0.82984,-1.21447 0.54782,-1.36509 1.32704,-0.6495 1.37241,-0.54717 0.72145,-1.31943 1.16165,-0.95498 -0.0109,-1.49333 0.88482,-1.20302 0.52935,-1.32101 0.75992,-1.20325 0.71848,-1.31635 0.85225,-1.23396 1.44554,-0.40496 1.37587,-0.60047 1.05862,-0.44747 1.14024,-0.14401 1.1557,-0.08 1.04771,-0.49429 1.13638,-0.38224 0.85084,-0.84471 0.77485,-0.89055 0.48379,-1.07676 0.6898,-0.96342 0.91583,-0.75183 1.25676,0.0568 0.97286,-0.79763 1.19675,0.0631 1.10945,0.45312 1.22088,-0.0736 1.02139,-0.67284 0.94887,-0.69412 0.6339,-0.99013 1.18501,-0.11934 0.99022,-0.66178 1.13374,0.0243 1.09952,-0.27745 1.103,-0.22348 1.12063,-0.10369 1.06515,-0.45893 1.15916,0.0388 1.15158,-0.28108 1.10767,0.42211 1.21516,-0.0102 1.17196,-0.32126 0.52211,-1.1319 1.01378,-0.72531 1.14278,-0.62083 1.29792,-0.0822 1.08793,-0.66315 0.96734,-0.82921 1.00696,0.88332 1.19308,0.60892 1.27943,-0.58969 1.36718,0.33985 1.1847,0.41451 1.18922,-0.40138 1.02271,0.75063 1.26367,-0.1118 1.16464,-0.24795 1.18983,0.0464 1.17945,0.0803 1.17162,0.15758 1.31006,-0.008 1.30783,-0.0767 1.06053,0.78408 1.21515,0.51274 1.31854,0.59667 1.38465,-0.42108 1.24036,0.69193 0.61841,1.27861 0.30235,1.4376 1.20792,0.83607 1.10632,0.81676 1.27185,0.52293 0.54604,1.32104 0.8568,1.14422 -0.42212,1.36096 -0.15189,1.4168 0.94156,0.93459 0.8508,1.0179 1.11675,0.76715 1.33231,0.24619 1.30371,0.0861 1.28338,-0.24498 1.31185,-0.26728 1.27652,0.40362 0.90269,0.98204 0.50653,1.23397 0.43417,1.30489 -0.38324,1.32075 0.96098,0.9031 0.43404,1.24527 0.96305,0.84655 1.03939,0.75087 1.06405,0.88104 0.34305,1.33818 -0.46302,1.27582 0.2148,1.34014 -0.78403,1.00929 -0.3974,1.21468 -0.50834,1.19093 0.0874,1.29193 0.82581,0.87902 0.72781,0.96173 0.60592,1.04184 0.52647,1.08415 0.0254,1.27244 0.24052,1.24977 0.73505,1.05502 1.03927,0.75717 -0.16526,1.17016 -0.071,1.17963 -0.68079,0.96538 -0.73362,0.92586 -0.49926,1.04713 -0.26115,1.13028 -0.40791,1.14983 0.38874,1.15645 -0.0148,1.2377 -0.76345,0.97431 -0.42272,1.16499 -1.04815,0.66128 0.21216,1.21325 -0.61229,1.06869 0.24858,1.16778 -0.32954,1.14756 -0.7134,1.03607 -0.0879,1.25486 0.57259,1.117 -0.0543,1.25404 0.64232,1.02215 0.11947,1.20128 0.43073,1.13666 -0.18734,1.20102 -0.33966,1.22916 0.35104,1.22596 0.60095,1.07042 0.60663,1.06722 0.9865,0.70653 0.9512,0.7534 0.34342,1.2003 0.85654,0.90829 -0.33363,1.12819 -0.56024,1.03452 -0.96483,0.66832 -1.05749,0.50918 -0.65677,0.94827 -0.98995,0.59206 -1.1325,0.20742 -0.95701,0.64009 -1.26209,0.25389 -1.17616,-0.52346 -0.99575,0.7162 -1.0026,0.70659 -1.17207,-0.0369 -1.09079,-0.43043 -1.18688,-0.20502 -0.88593,-0.81599 -1.2586,-0.24299 -0.82621,-0.98003 -1.25794,-0.18005 -1.12344,0.59389 -1.08179,0.43787 -1.16637,0.04 -0.86347,0.80096 -1.12289,0.35531 -0.31528,1.12229 -0.58614,1.00765 -0.8576,0.87777 -0.11194,1.22205 -1.23224,0.0827 -0.88401,0.86243 -0.86058,0.81181 -1.11093,0.40677 -1.18438,0.2934 -1.21245,-0.1372 -0.88196,0.81996 -0.99306,0.68118 -1.00024,-0.72622 -1.22446,-0.16909 -1.24645,-0.084 -1.09528,0.60088 -0.38094,1.11974 -0.9859,0.65341 -0.68552,0.89022 -0.5226,0.99465 -0.32005,1.15017 -0.60324,1.03026 -0.94288,0.74293 -1.13341,0.39538 -1.06475,0.43109 -0.72072,0.89448 -0.33723,1.07159 -0.62666,0.93238 -1.05426,0.61143 -1.19852,-0.22099 -0.53842,1.05164 -0.98358,0.65452 -0.54033,1.0122 0.16881,1.13491 -0.57913,0.95628 -0.10294,1.11323 -0.87644,0.74731 -0.27246,1.1191 -1.01413,0.52302 -0.57653,0.9847"
+ id="path15537"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc"
+ id="path15539"
+ d="m 654.85633,315.86567 -1.14832,0.0801 -0.89796,0.72021 -0.98031,0.54691 -0.67757,0.895 -0.95416,0.61877 -1.13595,-0.0539 -1.03024,0.33372 -1.04666,0.27793 -1.09995,-0.47809 -1.1581,0.31184 -1.08339,0.40481 -0.83052,0.80488 -1.22516,0.11332 -0.82406,0.91365 -1.21615,0.14292 -1.00871,-0.69424 -0.58135,1.0941 -1.09205,0.58517 -1.1965,-0.11653 -1.16833,0.28323 -1.13651,0.36747 -0.81638,0.87191 -0.50545,1.04035 -0.47244,1.05574 -0.52587,1.0414 -1.00021,0.60054 -0.93196,0.63954 -0.73699,0.85696 -0.34185,1.21311 0.46943,1.16967 -0.98035,0.75267 -0.46733,1.1442 -1.09228,0.39385 -1.1571,-0.0964 -0.6056,1.01511 -1.05723,0.52866 -0.35109,1.04748 -0.74352,0.81711 -0.43016,1.00639 -0.7193,0.82491 -0.96031,0.51661 -0.56842,0.93058 -1.08766,0.23815 -0.70942,0.85816 -0.96546,0.47129 -0.8495,0.65771 -1.07353,0.0485 -1.03992,0.27092 -0.46783,0.9864 -0.67732,0.85621 -0.67143,0.86373 -0.87125,0.66164 -1.12113,0.10454 -1.12556,-0.031 -0.92883,0.63303 -0.91209,0.65694 -0.18039,1.0908 -0.45791,1.00634 -0.43652,1.05069 -0.91673,0.67389 -1.09207,0.24648 -1.0827,0.28484 -0.98382,0.60064 -0.59325,0.9883 -1.40765,-0.42847 -1.47067,-0.0467 -1.03925,-1.13829 -1.51842,-0.26485 -1.00812,-1.18019 -0.32751,-1.5172 -1.13516,-1.0524 -1.4897,-0.42064 -1.42732,-0.40127 -1.03959,-1.05712 -0.84655,-1.2749 -1.47619,-0.40362 -1.50136,-0.42761 -1.18651,-1.01446 -1.39241,0.77769 -1.58922,-0.13411 -0.89967,-1.2692 -1.28031,-0.8838 0.1535,-1.62792 -0.95041,-1.33057 -0.61287,-1.46493 -0.82423,-1.3573 0.54341,-1.49397 0.27223,-1.56624 -0.8708,-1.22504 -0.6145,-1.37163 -1.43676,-0.66044 -0.72882,-1.40331 -1.50535,-0.25369 -1.22377,-0.91259 -1.15103,-0.96216 -1.38093,-0.58622 -1.43757,-0.46744 -1.47723,0.32084 -1.05302,1.04737 -1.36318,0.58954 -1.51905,-0.12013 -1.26693,-0.84665 -1.50341,0.20218 -1.24508,0.86655 -1.45023,-0.355 -1.43698,0.40533 -1.34763,-0.57533 -1.07572,-0.99497 -1.39674,-0.20349 -1.32947,-0.4741 -1.45475,-0.31622 -1.33292,0.66302 -1.41964,0.4243 -1.3129,0.68678 -1.33994,0.83065 -1.55457,-0.26224 -1.20854,-0.97472 -1.53623,-0.22502 -1.49136,-0.49267 -1.5039,0.45292 -0.58708,-1.41835 -1.32376,-0.7772 -1.15215,-0.95446 -1.45891,-0.33166 -1.44487,-0.28758 -1.13535,-0.9388 -1.16779,-0.82999 -1.2817,-0.64022 -0.0199,-1.17581 -0.56511,-1.03129 -0.0782,-1.14927 -0.37892,-1.08783 0.27499,-1.2584 -0.61604,-1.13124 0.89216,-0.87941 0.31014,-1.21373 -0.94,-0.70839 -0.35754,-1.12143 -0.16882,-1.18597 -0.90725,-0.78226 -0.94154,-0.68492 -0.44837,-1.07451 -0.6387,-0.94196 -0.92029,-0.66955 0.44295,-1.03855 0.78104,-0.81534 0.39566,-1.03799 0.36749,-1.04831 -0.0396,-1.10918 0.0853,-1.1066 -0.53568,-1.03329 0.16623,-1.15196 0.0258,-1.09268 0.0494,-1.09188 -0.0376,-1.09485 -0.18665,-1.07947 -0.0233,-1.1432 0.43422,-1.05778 0.91737,-0.71196 0.42327,-1.08132 -0.77814,-0.8986 -0.60771,-1.0216 0.22927,-1.21033 -0.44759,-1.14766 -1.09206,-0.72124 -0.35774,-1.2589 -1.161,-0.45949 -1.24861,-0.006 -0.9674,-0.62329 -0.39081,-1.08243 -0.6273,-0.91434 -0.91374,-0.62819 -0.0225,-1.16852 -0.73114,-0.91179 -0.50753,-1.02146 -0.92966,-0.66084 -0.76102,-0.9665 -0.81716,-0.91954 0.0682,-1.23146 -0.12343,-1.22715 0.64553,-1.00034 0.69826,-0.96427 0.27053,-1.16255 0.0899,-1.19022 0.0806,-1.0911 0.20049,-1.07554 -0.0799,-1.09974 0.21924,-1.08061 -0.1896,-1.10919 -0.54688,-0.98346 0.0716,-1.1082 -0.0351,-1.10996 0.23924,-1.29171 -0.26412,-1.28686 -0.9912,-0.89022 -0.43155,-1.26045 -0.22962,-1.28679 0.0646,-1.30552 -1.18273,-0.71047 -0.46195,-1.30009 -0.83056,-1.16583 0.11741,-1.4266 -1.40186,-0.32471 -0.82897,-1.17619 0.45601,-1.2906 -0.41029,-1.30586 -0.81543,-1.04302 -0.35343,-1.2759 0.87948,-0.9993 0.27101,-1.30332 0.97371,-0.85887 0.71534,-1.08352 1.02065,-0.89253 0.24276,-1.33394 0.69707,-1.07888 0.86713,-0.94761 -0.12793,-1.32228 0.39134,-1.26949 -0.6406,-1.19541 0.0984,-1.35266 0.22891,-1.27702 0.0215,-1.2972 -0.10481,-1.38346 0.85696,-1.09112 -0.67343,-1.15137 -0.75819,-1.09742 -1.30404,-0.28134 -1.27646,-0.38772 -1.15003,-0.50867 -1.18776,-0.41296 -1.25043,-0.14575 -1.25884,0.0105 -1.04181,-0.68711 -0.71446,-1.02325 -1.07531,-0.6134 -0.86282,-0.88776 -0.55978,-1.13509 -0.32765,-1.22248 -0.74691,-1.05275 -1.1249,-0.63307 -1.09188,-0.83863 -1.34351,-0.3008 -0.63552,-1.18675 -0.50883,-1.24633 -0.56598,-1.18983 0.13733,-1.3104 0.38323,-1.27261 -0.4109,-1.26395 -0.10325,-1.26117 -0.61278,-1.10713 -0.0695,-1.25647 -0.51756,-1.14703 -0.40653,-1.26112 -0.88961,-0.98198 -1.06252,-0.7827 -1.27863,-0.32657 0.87941,-0.63436 1.05331,-0.25752 0.59486,-0.88348 0.66077,-0.83533 0.14131,-1.11238 0.86142,-0.71788 0.34157,-0.99813 0.0361,-1.05435 0.89219,-0.46165 0.78271,-0.62966 0.8188,-0.66768 1.05621,-0.0256 0.91913,-0.37758 0.93494,-0.33654 0.83058,-0.58737 1.00057,-0.18366 1.02567,-0.26987 1.00632,0.33488 0.80689,-0.63796 0.96203,-0.36412 0.81803,-0.56061 0.86551,-0.4841 0.88422,-0.54927 1.03851,0.0709 1.01271,0.1941 0.98974,0.28927 0.95061,-0.39795 0.97475,-0.33448 0.99253,-0.45406 1.08857,0.0793 0.96433,0.45511 0.81449,0.68823 0.17841,-0.96396 0.6187,-0.76043 0.41943,-0.88237 0.77497,-0.59489 0.69473,-0.72218 0.99072,-0.15059 0.55583,-0.8093 0.88378,-0.42762 0.90053,-0.49596 0.6178,-0.82174 0.29889,-0.97859 -0.0813,-1.01999 0.70526,-0.63224 0.82017,-0.47376 0.57527,-0.74795 0.6556,-0.67864 0.81899,-0.45228 0.79994,-0.48519 0.63097,-0.69125 0.58246,-0.73259 0.83833,-0.45627 0.49765,-0.81445 0.6055,-0.70026 0.72253,-0.57875 0.74619,-0.71454 0.62927,-0.81938 0.0111,-1.03338 0.17531,-1.01846 0.93963,-0.37856 0.67611,-0.75439 0.82152,-0.63358 1.03703,-0.0297 0.006,1.53612 -0.45258,1.46796 -0.60164,1.49935 0.50058,1.53604 0.86519,1.39283 1.4736,0.71906 0.62618,1.45841 0.25917,1.56585 1.63159,0.58634 0.88315,1.49195 1.62293,0.41457 1.63876,-0.34677 1.02031,1.32673 1.42346,0.88033 0.36136,1.61564 0.0166,1.65548 0.60421,1.33344 -0.20369,1.44971 1.21077,0.88202 0.35081,1.45632 0.54953,1.37308 1.09428,0.99494 0.28402,1.44728 -0.34159,1.43478 0.3371,1.41611 1.0766,0.97978 0.24982,1.36836 0.26885,1.36474 0.76142,1.29456 -0.32797,1.46563 0.81909,1.13674 0.63648,1.24818 -0.20432,1.4524 -0.14393,1.45961 -0.38485,1.52822 0.7603,1.38041 -0.20308,1.48412 -0.19856,1.48474 -0.84169,1.23937 -0.88336,1.21004 0.60654,1.32118 0.56552,1.33926 0.18095,1.52041 1.05232,1.11222 0.73385,1.33921 0.14659,1.52004 -0.39148,1.44939 -0.13969,1.49482 0.84125,1.27857 0.57411,1.41875 0.25431,1.54255 0.90663,1.27366 -0.82563,1.39711 0.26397,1.60121 -0.57422,1.50149 0.44034,1.54605 0.61591,1.48565 1.02278,1.24114 1.66814,-0.0482 1.39063,0.92258 1.22472,0.99559 1.37066,0.7826 -0.0497,1.64995 0.91258,1.37551 1.28849,-0.54064 0.96413,-1.01142 1.36392,-0.16724 1.37072,0.0967 1.28678,-0.5479 0.71846,-1.19992 1.39731,-0.0868 1.07339,-0.89882 1.04718,-0.91894 0.30153,-1.36019 0.80515,-1.11328 1.26296,-0.54092 0.50158,-1.28456 0.64819,-1.21719 1.35028,-0.388 1.09094,-0.88523 1.39529,-0.24153 1.26104,0.64416 1.33498,-0.46025 1.35122,0.41015 1.29092,-0.44219 1.02711,-0.89835 1.14855,-0.69334 1.22732,-0.54179 1.22104,-0.74764 1.43066,0.0556 1.41835,0.20333 1.06221,0.96164 1.30335,-0.0601 1.2866,0.21679 1.28459,-0.18547 1.27129,-0.26153 1.41216,0.0926 1.24407,0.67458 1.39029,-0.056 1.34175,-0.36839 0.51377,-1.3634 1.05244,-1.00757 1.22619,-0.78234 1.44101,-0.19771 1.24782,-0.32415 1.27571,0.18626 1.21451,-0.36791 1.26134,-0.13939 1.26776,0.14587 1.27371,-0.0784 1.14557,-0.67234 1.32606,0.0768 0.83566,-1.23499 1.44098,-0.38355 1.45584,0.35489 1.31335,-0.72147 1.27828,0.53333 1.29213,0.49882 1.38295,-0.0862 1.38563,7.3e-4 1.02751,0.99189 1.40841,0.23667 1.05086,0.89996 0.69558,1.19599 1.25367,0.57686 1.37712,-0.0895 1.31009,0.28993 1.24974,0.48842 0.5006,1.119 0.97363,0.74483 1.20154,0.19641 1.00373,0.68904 1.02277,0.69902 0.52624,1.1215 -0.18295,1.23383 0.52361,1.13211 -0.0794,1.14669 -0.0309,1.14902 0.65477,0.96717 0.27299,1.13561 0.71099,0.89244 0.36463,1.0812 0.68137,0.96456 -0.0111,1.1809 1.20111,0.0468 1.18909,-0.17579 1.1742,-0.38689 1.21442,0.2315 0.49519,1.19515 0.76805,1.041 1.1439,0.63455 1.29823,0.16052 0.81697,0.83073 1.11908,0.32434 0.76673,0.82627 0.76447,0.82837 0.96151,0.60582 0.94763,0.6273 0.89313,0.76036 0.41842,1.09578 1.18114,-0.17594 1.0766,0.51668 1.07462,0.39649 1.12456,0.21759 1.14025,-0.46959 0.77615,-0.95827 1.18273,-0.43922 1.20612,0.37019 1.09576,0.27145 0.92223,0.65107 1.02454,0.43256 1.07465,0.28626 0.67875,0.96942 1.14668,0.29262 0.89638,0.65945 0.78617,0.7876 1.06185,0.61359 0.55404,1.09409 1.16443,0.22894 1.18283,-0.0961 0.98769,0.54358 1.11263,0.18184 1.10609,-0.16403 1.11469,0.0883 1.05674,-0.41823 1.12079,0.18827 1.09722,-0.0585 1.09134,0.12754 1.08481,-0.22219 1.09948,-0.13155 1.13821,-0.20982 0.82418,-0.81258 -0.92373,0.89975 -1.24912,0.32016 -1.08261,0.62645 -0.95611,0.80642 -0.64961,1.09696 -0.44912,1.19314 -1.19225,0.56709 -0.71621,1.10909 -1.05916,0.87775 -0.28874,1.34496 -1.13579,0.73324 -0.57592,1.22311 0.52767,1.2483 0.32446,1.31583 -0.34751,1.30556 -0.34166,1.30709 -0.86576,1.07407 0.0163,1.37946 -1.26166,0.41314 -0.98213,0.89325 -0.18326,1.22 -0.54721,1.10568 -0.41907,1.15871 -0.0651,1.23044 -0.53864,1.12589 -0.76927,0.98286 -0.68891,1.09024 -0.0139,1.28959 -1.3039,0.1613 -1.11274,0.69856 -0.64197,1.12352 -0.91509,0.91489 -0.59555,1.14366 -0.15745,1.27978 -0.86545,0.9318 -0.73334,1.03898 -0.17973,1.29709 0.0241,1.30926 -0.45319,1.30409 -1.15959,0.74925 0.3826,1.28937 -0.1314,1.33851 0.64368,1.22888 -0.19788,1.37306 -0.35629,1.31393 -0.93798,0.98668 -0.67239,1.13762 -0.78167,1.06549 -0.6021,1.39082 -1.37329,0.6411 -1.48287,0.0219 -1.21207,0.85457 0.32045,1.43257 -0.56186,1.35618 -0.18074,1.47142 -1.05747,1.039 -0.69578,1.2412 -1.23555,0.70576 -1.37901,-0.0681 -1.35704,0.25444 -1.10509,0.68332 -1.17079,0.56336 -1.25934,0.31779 -1.28304,0.2019"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="strata"
+ style="display:inline">
+ <path
+ style="color:#000000;fill:#606480;fill-opacity:0.60784314;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m -333.1875,72.751445 c -7.03306,-0.09544 -13.20073,1.31587 -17.75,4.864967 -0.47736,32.325518 -5.16733,73.476068 -1.28125,98.403158 59.63124,-36.676 110.68948,-9.68016 129.28125,-3.47498 39.22729,13.09248 66.02403,-13.235 87.84375,-12.67344 50.89307,1.30979 41.93028,2.59476 86.28125,3.6385 20.28407,0.47736 85.77747,-16.7044 139.21875,-19.33722 23.5781,-1.16159 47.57649,7.32394 67.90625,12.10109 22.11005,5.19551 36.47051,4.05336 53.07788,1.90104 40.12308,-5.19995 63.83734,9.75254 77.67212,14.37003 39.22729,13.09248 66.02403,-13.235 87.84375,-12.67344 50.89307,1.30979 41.93028,2.59476 86.28125,3.6385 20.28407,0.47736 85.77747,-16.7044 139.21875,-19.33722 53.29176,-2.62545 110.9375,31.84714 110.9375,31.84714 0,-31.2738 26.28572,-62.55057 0,-93.824366 -17.26966,-3.397162 -38.7233,-6.817879 -84,-0.245292 C 583.09141,88.664129 538.07169,118.53455 517.5,118.90731 466.66575,119.82839 415.23016,101.31051 364.53125,97.444218 343.53577,95.843106 286.23795,131.10178 252.5625,103.08594 236.55352,89.767496 183.68054,66.307173 161.0625,77.616412 147.08569,84.604949 109.62328,87.352993 97.235004,89.124491 50.982664,95.838711 26.07169,118.53455 5.5,118.90731 c -50.83425,0.92108 -102.26984,-17.5968 -152.96875,-21.463092 -20.99548,-1.601112 -78.2933,33.657562 -111.96875,5.641722 -12.50702,-10.405039 -48.63195,-29.993643 -73.75,-30.334495 z"
+ id="rect3366"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sccssssssssssccssssscssss" />
+ <path
+ style="color:#000000;fill:#2e323e;fill-opacity:0.62341775;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 22.40625,322.7855 c -39.698855,0.48589 -79.65884,12.25079 -118.8125,19.82549 -41.30524,7.99095 -84.22551,50.47503 -121.875,32.27891 -23.88652,-11.54443 -70.84789,-43.32561 -109.6875,-34.61132 0,0 -25.23007,68.21251 0,89.13143 39.61395,4.72813 70.37316,-14.91556 106.03125,-15.24397 42.57552,-0.39216 84.29649,18.36788 126.75,15.24397 42.95298,-3.16067 81.45057,-29.58936 124.28125,-34.02821 45.32521,-4.69741 41.03579,0.24318 86.53125,-2.54067 18.23877,-1.11604 38.02079,17.81237 62,28.44709 37.44368,3.86005 84.88255,-6.33793 112.4375,-7.12218 42.57552,-0.39216 84.29649,18.36788 126.75,15.24397 42.95298,-3.16067 81.45057,-29.58936 124.28125,-34.02821 45.32521,-4.69741 41.03579,0.24318 86.53125,-2.54067 25.7309,-1.57448 54.5017,36.8312 93.84375,35.40267 l 0,-89.13142 c -22.43897,0 -20.442,15.59136 -51.625,15.53552 -38.12971,-0.0684 -66.46119,-24.36016 -108.03125,-30.19639 -48.63845,-6.8286 -98.02963,8.83677 -146.21875,18.15948 -41.30524,7.99095 -84.22551,50.47503 -121.875,32.27891 -27.68678,-6.45184 -49.82979,-26.69492 -76.17292,-31.36271 -26.79093,-4.74715 -71.55679,3.76459 -81.02954,3.81133 -38.129708,-0.0684 -45.13373,-17.05078 -86.70379,-22.88701 -9.119709,-1.28037 -18.244976,-1.77814 -27.40625,-1.66601 z"
+ id="path3375"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssccssssccsssccssscacss" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="main"
+ style="display:inline">
+ <g
+ id="layer3"
+ inkscape:label="tmp"
+ style="display:inline"
+ transform="translate(552.95262,83.18474)" />
+ <g
+ id="g5112"
+ transform="translate(5.1705564,-6.0323158)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.54945,483.28613 c 14.08566,23.24358 69.94066,36.93966 92.47158,15.13116 12.51803,-12.11665 13.5899,-44.76498 7.38892,-60.21006 -5.77367,-14.38078 -53.67308,-41.05185 -58.65132,-9.0227 -1.457,33.60898 -56.65739,28.60958 -41.20918,54.1016 z"
+ id="path4967"
+ sodipodi:nodetypes="csscs"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path2409"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscsssc"
+ id="path4574"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscccc"
+ id="path4676"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5118">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ id="path4962"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3189"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cczcccc"
+ id="path4579"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path4681"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g4947"
+ transform="translate(-0.8617594,-3.4470376)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 153.59545,325.33608 c -26.19673,9.35369 -59.746556,10.06149 -77.027534,34.66971 -11.833855,25.7314 27.631694,42.37949 44.362644,24.76657 15.76674,-35.99146 48.41417,17.31305 66.93781,-13.68617 21.12032,-22.54634 -8.42316,-54.23981 -34.27292,-45.75011 z"
+ id="path4919"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3217"
+ d="m 148.60577,322.76996 c -24.34489,8.69248 -55.52308,9.35025 -71.58247,32.21892 -10.997322,23.91245 25.67841,39.38369 41.22666,23.01583 14.65219,-33.44724 44.99178,16.08919 62.20599,-12.7187 19.62733,-20.95255 -7.82773,-50.40561 -31.85018,-42.51605 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssccsc"
+ id="path4599"
+ d="m 175.4729,329.06052 c 5.57272,8.67906 3.97278,18.54559 -7.05549,25.06289 -9.53815,5.63671 -28.22611,-10.36828 -55.75555,12.07243 -10.94791,8.92422 -24.784054,12.1112 -34.660294,5.42645 6.906913,13.11437 27.838124,17.14114 39.279794,5.09633 14.65219,-33.44723 43.27155,15.26748 62.43419,-12.07243 9.8771,-14.09196 7.06622,-26.81672 -4.24265,-35.58567 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path4686"
+ d="m 157.68834,322.12633 c -3.01141,-0.0912 -6.84498,0.40277 -9.84779,1.38897 -24.34489,8.69248 -53.564154,8.70376 -69.623544,31.57243 -5.626659,12.23454 0.687368,21.93296 10.805151,26.61434 -3.313134,-4.99176 -4.901043,-11.11378 -1.64632,-18.19081 16.059393,-22.86867 47.248873,-23.52626 71.593753,-32.21875 7.61426,-2.50071 15.55463,-1.23031 22.25,2.3125 -5.5452,-6.95863 -14.32063,-11.19966 -23.53125,-11.47868 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g4953"
+ transform="matrix(0.996898,-0.07870497,0.07870497,0.996898,-31.147293,-4.6451223)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 23.614453,423.05879 c -3.569625,-21.75537 -3.996086,-45.57257 5.06812,-65.93591 21.163929,-17.57014 18.32793,18.9004 14.047616,30.88672 -2.502601,27.12323 47.852315,43.45388 21.433318,72.36563 -31.175776,18.10786 -29.181672,-20.52556 -40.549054,-37.31644 z"
+ id="path4934"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3239"
+ d="m 21.017662,418.18389 c -3.351217,-20.42427 -3.751585,-42.78421 4.758027,-61.90162 19.869014,-16.49511 17.206535,17.74398 13.188112,28.99691 -2.349479,25.4637 44.92447,40.79516 20.12192,67.93794 -29.268285,16.99993 -27.39619,-19.2697 -38.068059,-35.03323 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccccsccc"
+ id="path4594"
+ d="m 35.521194,351.93522 c 1.585155,7.91809 -0.995074,19.71741 -2.188055,25.73958 -1.695132,8.55703 3.576638,16.30199 9.5531,23.55192 -3.121787,-4.96353 -5.19862,-10.32134 -4.668777,-16.06379 3.172634,-8.88445 6.242974,-31.96773 -2.696268,-33.22771 z m 21.010835,65.58894 c 5.239849,8.41477 6.363604,15.53061 -4.683621,24.78312 -8.621377,7.22076 -14.339041,7.96883 -18.799177,4.44935 4.522513,9.22686 9.858744,14.17412 24.761897,5.51791 12.832666,-14.04349 7.621446,-23.9913 -1.279099,-34.75038 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssccccc"
+ id="path4691"
+ d="m 35.273918,351.89842 c -2.354076,-0.21815 -5.460651,1.01776 -9.496544,4.36832 -8.509612,19.11742 -7.578285,41.56635 -4.227068,61.99063 6.268014,9.25854 7.683976,25.49427 14.148491,33.95277 -3.457034,-8.52085 -6.084938,-18.27092 -8.352239,-26.02376 -5.699627,-19.48935 -6.798194,-44.03422 3.540216,-61.76613 3.281264,-5.62785 7.959865,-5.22056 10.449451,-4.00534 -0.778438,-4.70815 -2.614578,-8.19699 -6.062307,-8.51649 z m 9.507292,51.17593 c 3.819536,10.06227 13.900009,18.76832 20.298835,27.91743 -3.482068,-9.66983 -13.695292,-18.3514 -20.298835,-27.91743 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g4941"
+ transform="translate(0.4308797,-6.0323158)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 64.059207,304.10953 C 48.577824,298.83697 14.78163,275.2373 27.917609,262.34117 c 9.704193,-9.527 32.493002,-8.10072 49.144088,-10.45178 16.643327,-0.9642 47.834633,2.64559 44.810403,22.73516 -3.32179,22.0662 -39.008531,35.88925 -57.812893,29.48498 z"
+ id="path4929"
+ sodipodi:nodetypes="cscss"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscss"
+ id="path3227"
+ d="m 59.616826,297.41386 c -14.794601,-5.03866 -47.091533,-27.5914 -34.53829,-39.91543 9.273697,-9.10437 31.051552,-7.74136 46.963966,-9.98812 15.904998,-0.92143 45.712598,2.52822 42.822528,21.72658 -3.17443,21.0873 -37.278039,34.29714 -55.248204,28.17697 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscssc"
+ id="path4614"
+ d="m 108.3415,256.10205 c -1.18195,26.26297 -32.475414,29.45447 -52.820966,25.70444 -9.207346,-1.69706 -25.212565,-7.46472 -33.202199,-17.13863 0.905097,12.43256 25.938163,27.29006 38.174259,31.45736 17.970165,6.12017 50.105356,-6.023 53.279786,-27.1103 0.8691,-5.77335 -1.65338,-9.67852 -5.43088,-12.91287 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscsccc"
+ id="path4696"
+ d="m 75.377525,248.46381 c -1.091299,0.0207 -2.130938,0.0674 -3.125,0.125 -15.912414,2.24676 -36.617854,-0.18157 -45.891551,8.9228 -5.295899,5.1992 -3.873507,12.21163 2.113611,18.96875 -1.371454,-3.82185 -0.969133,-7.43054 2.09375,-10.4375 9.273697,-9.10436 29.548257,-4.95252 45.460671,-7.19928 10.885775,-0.63066 28.279744,-2.00676 37.249994,5.10553 -2.65381,-13.54745 -23.273144,-15.76226 -37.901475,-15.4853 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5131"
+ transform="translate(-3.0161579,-0.4308797)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046931999999999;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 168.58782,286.39964 c -18.13365,-14.75335 1.98121,-37.9864 20.70134,-27.05725 14.82974,-6.62963 31.51866,-34.31735 46.67223,-11.35128 13.77361,14.35676 19.0125,41.40772 0.8538,54.45599 -20.93911,14.21706 -46.33877,-2.83336 -65.21908,-12.57599 -1.06649,-1.09714 -1.99341,-2.32627 -3.00829,-3.47147 z"
+ id="path4939"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3250"
+ d="m 166.11717,279.85585 c -17.3715,-14.13327 1.89794,-36.38985 19.83127,-25.92005 14.20646,-6.35099 30.19395,-32.87501 44.71063,-10.87419 13.19471,13.75335 18.21341,39.66738 0.81791,52.16723 -20.05905,13.61953 -44.39118,-2.71427 -62.47796,-12.04742 -1.02166,-1.05103 -1.90962,-2.2285 -2.88185,-3.32557 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ id="path4604"
+ d="m 236.09303,250.15697 c 3.62678,12.37291 -0.85155,18.6966 -12.08528,26.76879 -20.05905,11.862 -40.82721,4.62686 -58.91399,-4.70629 -1.94187,-1.68373 -2.4259,-3.19662 -4.2739,-4.98603 0.23117,6.73558 3.32898,11.96156 8.93346,15.20074 17.82475,9.68657 41.00933,25.54306 61.06839,11.92353 14.73084,-10.5851 14.04077,-29.90742 5.27132,-44.20074 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccscccc"
+ id="path4701"
+ d="m 217.47796,235.36248 c -10.84363,-0.10042 -20.89941,14.87272 -31.1103,19.4375 -17.7627,-10.37018 -37.23113,10.48999 -20.71213,24.63824 -2.30958,-12.23372 10.66838,-16.56761 24.97464,-15.2114 13.7503,1.30352 29.61086,-20.46929 46.1191,-11.4136 0.6688,0.69712 1.31258,1.43124 1.93751,2.1875 -2.04266,-4.46044 -5.44043,-7.70153 -8.67757,-11.07574 -4.08283,-6.18772 -8.2881,-8.52321 -12.53125,-8.5625 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5042">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ id="path5013"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3265"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ id="path4619"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path4706"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g3448"
+ transform="translate(63.770192,-27.5763)">
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 180.30774,201.6402 c 23.35892,-19.73126 62.42481,-7.2478 80.81689,-34.29538 15.22207,-28.30585 -21.27325,-46.96912 -45.25948,-42.66859 -33.9203,-9.60925 -47.18916,30.24418 -52.36597,55.78348 -10.5555,12.75646 -16.91044,48.24074 10.35932,34.43322 3.3873,-3.85804 3.05696,-9.39371 6.44924,-13.25273 z"
+ id="path5018" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3280"
+ d="m 178.91694,193.7562 c 21.55177,-18.20476 57.59535,-6.68708 74.56454,-31.64214 14.04442,-26.11598 -19.62746,-43.33538 -41.75801,-39.36756 -31.29608,-8.86583 -43.5384,27.90436 -48.31471,51.46783 -9.73888,11.76956 -15.60217,44.50862 9.55788,31.76931 3.12524,-3.55956 2.82046,-8.66697 5.9503,-12.22744 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csccccccc"
+ id="path4624"
+ d="m 248.46909,133.06315 c 2.24225,5.64435 -4.79294,11.4858 -10.06172,17.83898 -20.65251,24.90314 -44.9637,15.14707 -66.37578,33.37977 -3.12984,3.56047 -5.85967,7.79742 -8.98491,11.35699 -4.66662,2.36285 -3.95463,2.9393 -6.65995,2.59706 0.47268,8.04488 2.72624,12.69437 15.28972,6.33309 3.12525,-3.55956 3.88486,-8.33512 7.0147,-11.89559 21.55177,-18.20476 56.62383,-6.23906 73.59302,-31.19412 6.4204,-11.93891 4.04723,-21.37001 -3.81508,-28.41618 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccssccc"
+ id="path4711"
+ d="m 202.55622,122.91498 c -24.2844,0.36794 -33.81853,30.3182 -38.07243,51.30442 -7.60121,9.18616 -13.91829,29.8478 -3.8897,32.98861 -0.48616,-8.06856 7.04512,-16.74942 9.3897,-23.86361 7.35471,-22.31646 20.02612,-51.84692 47.2353,-51.46875 12.82571,0.17826 29.67851,2.60638 38.6875,12.25 -4.75779,-15.51582 -27.24931,-22.82654 -43.75662,-19.86692 -3.42301,-0.9697 -6.61146,-1.38894 -9.59375,-1.34375 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <g
+ id="g5156"
+ transform="translate(-2.5852782,-6.4631955)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 231.17733,341.55425 c -19.80953,-13.06288 -21.43048,15.01309 -15.50131,30.69545 4.35735,11.52494 -21.3869,42.11622 8.42655,42.6912 18.21045,5.28821 42.461,-6.98854 41.1185,-27.94385 2.7342,-21.37225 -11.15786,-44.2048 -34.04374,-45.4428 z"
+ id="path4924"
+ sodipodi:nodetypes="csccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccc"
+ id="path3200"
+ d="m 229.31612,340.90684 c -18.03103,-11.8901 -19.50645,13.66522 -14.1096,27.93962 3.96614,10.49024 -19.4668,38.33506 7.67,38.85842 16.57554,4.81344 38.64889,-6.36111 37.42691,-25.43507 2.48873,-19.45346 -10.15611,-40.23612 -30.98731,-41.36297 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccsc"
+ id="path4722"
+ d="m 241.57997,345.51158 c 7.92523,8.09629 10.587,18.94311 10.48272,30.67611 -0.16914,19.02994 -20.83071,30.25092 -37.40625,25.4375 -1.72326,-0.0332 -2.39662,-0.59498 -3.73199,-0.83713 1.19585,3.77916 4.13974,6.02204 12.16618,6.17684 16.57554,4.81345 36.81974,-5.6609 37.22206,-24.68346 0.32302,-15.27297 -5.47726,-29.97373 -18.73272,-36.76986 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscscccc"
+ id="path4727"
+ d="m 220.73622,338.49026 c -9.88253,0.35661 -9.14818,18.75573 -4.76324,30.35368 3.6397,9.62681 -15.88762,33.42676 1.86103,37.75662 -3.23323,-8.93066 7.21296,-24.77663 4.38493,-32.25662 -5.39685,-14.2744 -3.93728,-39.82759 14.09375,-27.9375 5.09085,0.27539 9.49171,2.57606 13.50331,4.89301 -5.27819,-5.44928 -12.12302,-9.18564 -20.50331,-9.63897 -3.38082,-2.22939 -6.29589,-3.25251 -8.57647,-3.17022 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5100"
+ transform="translate(-2.5852782,6.0323158)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 400.99505,322.10323 c 7.76038,17.86046 10.89505,41.86369 30.2968,50.90426 26.38786,4.45559 19.67376,-43.11216 50.49306,-36.48737 15.81388,2.63656 39.75625,-19.40635 12.51894,-22.81542 -28.36194,-8.83432 -56.93481,-22.47229 -87.25265,-19.95287 -14.89339,0.90923 -5.81285,19.52479 -6.05615,28.3514 z"
+ id="path4984"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4508"
+ d="m 402.75488,318.67813 c 6.76221,15.56319 9.49368,36.47905 26.39993,44.35679 22.99376,3.8825 17.14326,-37.56693 43.99847,-31.79424 13.77986,2.29743 34.64268,-16.91025 10.90872,-19.88084 -24.71394,-7.69802 -49.61168,-19.58183 -76.02993,-17.38646 -12.97776,0.79228 -5.06519,17.01344 -5.27719,24.70475 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccccc"
+ id="path4666"
+ d="m 481.54919,311.89917 c -3.6146,5.22453 -14.38627,5.66331 -21.66433,6.87354 -23.88975,3.97249 -19.06729,28.76968 -38.39856,31.35037 -2.40288,-1.11966 -4.30834,-0.77661 -6.19081,-2.37023 3.42512,6.37669 8.19524,11.17413 15.15294,14.41618 22.99376,3.88251 13.26687,-37.98482 40.12208,-32.21213 13.63243,2.27284 33.52059,-14.7795 10.97868,-18.05773 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccsccccc"
+ id="path4738"
+ d="m 413.39917,295.01093 c -1.63959,0.0317 -3.28636,0.11279 -4.9375,0.25 -12.97776,0.79227 -3.99205,15.51936 -4.20405,23.21067 5.85328,13.47129 7.18426,31.1503 18.80442,40.71544 -6.35844,-9.69435 -5.85551,-19.7531 -8.42319,-30.53641 -1.74141,-7.31327 -1.87962,-17.43202 11.09813,-18.2243 26.41825,-2.19537 40.29862,0.84393 65.01256,8.54196 1.45675,0.18233 2.77357,0.42281 3.90625,0.71875 1.00459,-3.7365 -1.5971,-7.18646 -10.59375,-8.3125 -23.16933,-7.21688 -46.06905,-16.83875 -70.66287,-16.36361 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5088"
+ transform="translate(1.7235188,-4.7396767)">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path4989"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path4488"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path4629"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path4743"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5106"
+ transform="translate(-3.4470376,-4.7396767)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 421.18271,436.17142 c -11.16147,18.32846 -14.41657,50.24995 14.46856,46.97211 17.94094,-2.03592 39.66066,6.00096 53.08036,-2.32822 9.27612,-5.75739 7.59744,-38.68848 -12.68783,-34.49797 -10.43657,-13.10641 25.83273,-39.60867 -3.25371,-41.38059 -4.13074,-1.04845 -7.33292,-4.00828 -14.215,-0.24189 -19.1296,12.95412 -23.65816,8.92335 -37.39238,31.47656 z"
+ id="path4972"
+ sodipodi:nodetypes="csscccs"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csscccs"
+ id="path4503"
+ d="m 419.45862,432.96729 c -10.49665,17.23675 -13.55786,47.25687 13.60676,44.17427 16.87231,-1.91465 37.29832,5.64352 49.91869,-2.18954 8.7236,-5.41446 7.14491,-36.38404 -11.93209,-32.44314 -9.81493,-12.32574 24.29403,-37.24942 -3.05991,-38.9158 -3.8847,-0.986 -6.89614,-3.76953 -13.3683,-0.22748 -17.99017,12.18252 -22.24899,8.39184 -35.16515,29.60169 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscsccsscssc"
+ id="path4671"
+ d="m 468.08309,404.59513 c 3.02835,8.67716 -10.59888,25.32343 -5.4228,32.6121 1.97424,2.78001 4.81528,4.21317 7.05442,5.2257 -4.32999,-12.11159 7.07193,-22.75328 7.89316,-30.20597 0.4534,-4.11464 -2.26044,-7.1337 -9.52478,-7.63183 z m 5.04892,38.16618 c 1.15065,7.14612 2.80191,17.20087 -1.88162,19.04376 -14.32754,5.63767 -30.14778,1.73217 -47.12539,2.50808 -5.31121,0.24273 -7.76801,0.46881 -11.12023,-1.0625 2.09049,9.06023 7.17661,14.3118 20.27648,13.25 16.92252,-1.37164 35.11396,5.29222 48.09487,-2.0772 7.76951,-4.41084 9.86109,-28.82551 -8.24411,-31.66214 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscscccccccc"
+ id="path4748"
+ d="m 461.02794,402.17822 c -1.64441,-0.0414 -3.54169,0.39048 -5.96875,1.71875 -17.99016,12.18252 -22.8572,7.94708 -35.05919,29.61434 -7.18032,12.7502 -12.69213,29.71583 -2.98934,38.38089 -4.41753,-10.03699 5.1078,-20.3231 10.77682,-30.87612 11.7835,-21.93529 12.19037,-15.7083 30.18054,-27.89082 6.64519,-3.46343 13.4222,-3.74464 20.44485,-1.49888 0.13112,-3.8498 -1.81104,-6.87477 -10.19743,-7.38566 -2.42793,-0.61625 -4.44681,-1.99355 -7.1875,-2.0625 z m 10.83898,40.44081 c -0.11219,2.22617 0.34764,4.32464 1.78125,6.125 4.56349,-0.94272 8.82395,-0.39427 11.29926,1.47206 -2.07573,-5.30486 -7.35297,-8.11775 -13.08051,-7.59706 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5094">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 444.97362,137.04779 c -13.27903,-2.12414 -41.81047,12.83362 -20.5646,25.20802 21.14798,16.05649 -8.90255,36.26025 -1.11855,55.45191 11.14989,14.25831 41.69565,19.6363 50.88544,0.58383 5.60783,-20.0215 6.34384,-44.20353 -10.97394,-55.48888 0.15091,-9.9477 -8.15192,-24.83137 -18.22835,-25.75488 z"
+ id="path4994"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4496"
+ d="m 442.10081,137.63339 c -12.26923,-1.87561 -38.63102,11.33206 -19.00078,22.25862 19.53981,14.17784 -8.22556,32.01772 -1.03349,48.96391 10.30201,12.59005 38.52494,17.3388 47.01589,0.51552 5.1814,-17.67894 5.86143,-39.03161 -10.13943,-48.99655 0.13943,-8.7838 -7.53201,-21.92604 -16.84219,-22.7415 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccccccccc"
+ id="path4661"
+ d="m 446.74985,139.09447 c 3.41263,4.626 3.94356,11.40716 5.5,15.1875 1.05425,2.56062 4.34583,3.66415 6.1489,5.90625 0.0257,-7.24947 -4.63442,-17.33354 -11.6489,-21.09375 z m -30.03125,14.96875 c 0.77154,1.59319 2.27263,3.20791 4.65625,4.78125 -1.06451,-1.63889 -2.57626,-3.2236 -4.65625,-4.78125 z m 43.90036,8.54668 c 8.6297,11.13037 0.85064,23.9644 -3.41467,38.51767 -8.78607,12.39305 -22.42161,9.26061 -33.95702,7.50146 10.30202,12.59006 36.3859,17.03136 44.87685,0.20809 4.59189,-17.41328 6.82529,-35.79366 -7.50516,-46.22722 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ id="path4753"
+ d="m 439.6561,137.46947 c -12.87893,-0.0542 -34.76566,12.09564 -16.78125,22.3125 -3.10176,-8.95841 15.83171,-15.90152 25.6875,-14.39486 1.93392,0.16939 3.79407,-0.40748 5.53125,0.67611 -3.06711,-4.51276 -7.3253,-8.02805 -12,-8.4375 -0.76683,-0.11722 -1.57524,-0.15261 -2.4375,-0.15625 z m -11.09375,28.28125 c 7.27188,13.06398 -12.7334,28.40642 -6.5,43.09375 1.62286,1.98331 3.6974,3.77205 6.0625,5.3125 -5.45276,-16.28794 21.48379,-29.68425 1.4375,-47.8125 -0.35593,-0.19812 -0.67395,-0.39424 -1,-0.59375 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5137"
+ transform="translate(-186.5709,25.852783)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 280.5597,63.430376 c -21.6581,4.239134 -8.10201,30.694561 6.82249,35.530244 23.94044,8.96476 -11.44287,41.92048 17.04386,42.26164 16.56164,6.47085 41.32506,5.86435 38.10592,-18.46251 C 343.6953,104.90838 336.60346,86.692204 327.01823,72.02951 314.98581,59.48727 296.22415,61.049062 280.5597,63.430376 z"
+ id="path4999"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4513"
+ d="m 276.57352,59.678177 c -20.38485,3.989922 -7.6257,28.890075 6.42141,33.441475 22.53302,8.437748 -10.77016,39.456048 16.04188,39.777148 15.588,6.09044 38.89562,5.5196 35.86573,-17.37712 1.09494,-16.801918 -5.57999,-33.947202 -14.60171,-47.747899 -11.32506,-11.8049 -28.98375,-10.334924 -43.72731,-8.093604 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccccccccc"
+ id="path4650"
+ d="m 314.00103,62.844322 c 7.85526,13.124329 12.64465,29.26952 9.1434,44.156248 -6.43048,27.34133 -17.23156,18.3756 -35.1434,17.21875 -0.155,5.00001 2.15072,7.93354 11.13897,8.04118 15.58801,6.09045 37.82769,6.06032 34.7978,-16.8364 1.09493,-16.801908 -4.60255,-33.841581 -13.62427,-47.642278 -1.92746,-2.009127 -4.06371,-3.635775 -6.3125,-4.9375 z m -44.0625,19.5625 c 3.12049,4.72643 11.07323,9.8428 15.87057,11.5772 -0.13326,-4.89069 -6.36505,-7.52703 -11.33932,-9.3897 -1.5364,-0.49781 -3.06734,-1.25682 -4.53125,-2.1875 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path4758"
+ d="m 293.90728,58.156822 c -5.86099,-0.03581 -11.81491,0.690755 -17.34375,1.53125 -18.47376,3.615867 -9.72635,24.40248 2.53125,31.65625 -5.54635,-8.80876 -3.86309,-17.727832 9.01543,-20.248541 12.01578,-1.826642 23.91531,-5.061546 34.79707,0.904791 -0.84574,-1.435552 -1.69621,-2.845773 -2.59375,-4.21875 -7.07817,-7.378063 -16.63794,-9.565314 -26.40625,-9.625 z m -2.78125,43.937498 c 2.03112,11.99449 -11.80992,29.56164 6.375,30.71875 2.25382,-11.47742 7.94767,-25.25194 -6.375,-30.71875 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5143">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 394.41802,29.511445 c -24.33094,-2.372993 -42.37819,38.315367 -24.52102,50.778736 21.76694,15.192179 49.18061,5.116888 73.90181,15.672028 18.1956,7.768911 30.80807,-38.146124 20.66121,-45.580654 -9.59667,-7.031405 -28.02351,-0.646227 -24.50155,-18.700484 -3.79288,-17.170263 -25.58383,-22.0551092 -29.61234,-3.536558 -4.70689,3.810284 -10.61753,1.202468 -15.92811,1.366932 z"
+ id="path5004"
+ sodipodi:nodetypes="csssccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csssccc"
+ id="path4524"
+ d="m 392.90083,26.612694 c -22.55566,-2.19985 -39.28612,35.519738 -22.73187,47.073733 20.17874,14.083702 45.59221,4.743542 68.50966,14.52854 16.86798,7.202069 28.5602,-35.362843 19.15369,-42.254922 -8.89646,-6.518368 -25.97881,-0.599076 -22.71383,-17.336028 -3.51614,-15.917458 -23.71713,-20.4458881 -27.45171,-3.278518 -4.36346,3.532272 -9.84284,1.114731 -14.76594,1.267195 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssczssc"
+ id="path4656"
+ d="m 429.07763,18.239089 c -0.49401,5.84967 1.13521,14.05791 4.9202,15.419083 2.66942,-4.0541 -2.24751,-13.109659 -4.9202,-15.419083 z m 26.36133,26.314883 c -0.47961,14.55212 -8.65051,27.198608 -25.00356,25.562789 -24.79524,-2.480303 -45.81596,4.828377 -65.99471,-9.255325 -0.32814,-0.22902 -0.61696,-0.458644 -0.91916,-0.707712 0.21178,5.528976 -1.34697,6.619821 10.94303,15.197594 12.28999,8.577773 41.44547,2.238565 64.36292,12.023563 16.86798,7.202071 28.39575,-34.510286 18.98924,-41.402365 -0.74818,-0.548189 -1.53076,-1.025416 -2.37776,-1.418544 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccsc"
+ id="path4763"
+ d="m 421.48839,14.567352 c -5.95658,-0.975869 -11.94973,2.205386 -13.81703,10.78907 -4.36347,3.532269 -9.85247,1.090809 -14.77557,1.243273 -22.07884,-2.153347 -38.57191,33.972848 -23.73311,46.336568 0.81198,-35.433817 24.95782,-24.934799 41.64127,-37.147859 4.9952,-11.402497 16.28238,-16.513817 23.63819,-9.518589 C 432.1363,19.661641 426.835,15.443287 421.48839,14.567352 z m 17.99603,25.678141 c 0.27756,10.771153 13.1337,7.748581 21.40027,12.06813 -0.44634,-2.888464 -1.43938,-5.14785 -3.06797,-6.341107 -5.22153,-3.825775 -13.23995,-3.374898 -18.3323,-5.727023 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5036">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 139.49219,53.310783 c 7.72437,24.866042 50.17839,39.81396 59.1167,22.557291 C 210.09914,53.68453 222.71463,33.777355 248.40188,31.425002 269.51226,17.82539 249.26997,-9.6399047 227.76933,0.13335984 202.92242,3.7785696 180.21881,25.997032 153.04117,10.872046 128.89093,4.422499 141.11979,40.889504 139.49219,53.310783 z"
+ id="path5023"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ id="path4518"
+ d="m 141.80976,46.316303 c 7.17296,23.090963 46.59637,36.971813 54.89661,20.947023 10.67001,-20.599956 22.38494,-39.086043 46.23849,-41.270472 19.6034,-12.628794 0.80612,-38.13346 -19.15968,-29.057867 -23.0732,3.384994 -44.1561,24.017376 -69.39364,9.972098 -22.42626,-5.989142 -11.07037,27.874641 -12.58178,39.409218 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cszcscc"
+ id="path4639"
+ d="m 243.31856,0.206855 c 2.06979,6.137125 -1.16573,14.451514 -10.05403,16.481262 -22.81135,5.209246 -38.08158,29.055698 -46.97279,37.403332 -8.99944,8.449247 -28.8771,11.361257 -42.83679,-3.701133 10.17491,20.58787 44.48003,30.85775 52.28052,15.7978 10.67001,-20.599954 21.85785,-39.31226 45.7114,-41.496689 11.85732,-7.638654 9.87343,-17.926135 1.87169,-24.484572 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccsccc"
+ id="path4768"
+ d="m 231.25017,-3.983955 c -2.38649,0.146504 -4.84803,0.740551 -7.34375,1.875 -23.0732,3.384995 -44.27643,24.476158 -69.51397,10.43088 -22.42625,-5.989142 -10.00514,26.255874 -11.51655,37.790451 1.68627,5.428391 4.73526,10.111815 9.16287,14.25331 -1.32799,-2.13406 -3.0426,-3.941992 -3.77132,-6.28787 1.51141,-11.534577 -4.44305,-35.083569 11.83971,-33.373934 28.50873,2.99332 47.05584,-12.616073 70.12904,-16.001066 7.29698,-3.316893 13.27282,-1.687395 18.44008,1.91691 -2.91879,-6.626734 -8.94429,-11.12437 -17.42611,-10.603681 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5030">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 11.565497,-11.57212 C 4.7232923,-9.6623195 -3.3260383,-12.801951 -8.3287763,-9.7036625 -21.278135,-1.6838851 -24.173562,20.345108 -23.681024,36.37459 -35.834604,68.381862 12.088762,80.839539 22.948108,52.272586 25.701964,37.061785 36.898362,27.868369 48.623407,20.309331 c 5.591619,-3.60487 10.937409,-9.601752 16.277207,-10.174876 5.902932,-0.6335658 11.200996,2.794501 14.802434,2.300204 9.91186,-1.360401 9.74522,-11.49705829 -0.366191,-24.006779 -12.007814,-9.894977 -34.747146,-15.985974 -51.652405,-11.110457 -6.5842,1.898899 -10.737392,9.608352 -16.118955,11.110457 z"
+ id="path5028"
+ sodipodi:nodetypes="csccssscss"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccssscss"
+ id="path4552"
+ d="m 9.760203,-13.968212 c -6.398148,1.785856 -13.9250798,-1.150015 -18.603142,1.747196 -12.10895,7.4992964 -14.816465,28.098615 -14.355892,43.087789 -11.364817,29.930011 33.448339,41.579189 43.602917,14.866221 2.575132,-14.223625 13.044887,-22.820391 24.008981,-29.88885 5.228725,-3.370915 10.227575,-8.9786015 15.220822,-9.51453 5.519833,-0.5924474 10.474055,2.6131387 13.841761,2.1509219 9.268583,-1.2721112 9.112758,-10.7509033 -0.342426,-22.4487479 -11.228511,-9.252796 -32.492068,-14.94849 -48.300181,-10.389392 -6.156888,1.775661 -10.040539,8.984773 -15.07284,10.389392 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csscssscc"
+ id="path4644"
+ d="m 71.320075,-14.172408 c 4.76023,10.9449346 -3.795801,7.983078 -20.34117,9.889531 C 35.531266,-2.502911 16.222819,10.075182 10.682956,30.599136 5.98025,48.02161 -11.934613,54.433868 -23.084717,45.641382 -17.796601,63.815964 13.456949,66.038566 19.771544,43.796173 23.745797,29.79735 34.620992,20.727784 45.345488,13.300304 50.367162,9.8224361 55.160105,5.6974929 60.067494,5.3594029 c 6.339923,-0.436783 11.402713,2.677915 14.789869,2.134406 10.235546,-3.5679734 2.788847,-17.09157 -3.537288,-21.6662169 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssccssccc"
+ id="path4773"
+ d="m 32.592516,-24.982889 c -10.609156,0.242509 -15.180976,8.179798 -22.400022,12.07647 -4.8555336,2.620904 -12.4718309,-0.9042 -16.6954893,0.811027 -14.1323667,5.7391505 -16.1185307,26.956965 -15.6269417,42.955524 -4.510721,11.879291 -1.242802,20.885897 6.266551,25.75 -1.88941,-4.564778 -2.635546,-11.157464 -2.179028,-17.980139 1.367919,-20.443612 12.556659,-35.065455 34.261389,-45.05919 13.505959,-6.21869 44.357887,-11.518712 61.125729,-0.3821817 -1.14422,-2.105606 -2.81056,-4.2510533 -4.69283,-6.5797803 -8.775986,-7.231805 -26.419014,-11.903528 -40.059358,-11.59173 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g3574"
+ transform="translate(2.1543985,1.2926391)">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 289.20753,305.67593 c -0.43168,8.56103 0.0564,17.35372 3.16203,25.42874 1.9361,7.20888 3.0682,14.61 3.79263,22.03165 2.11705,8.49967 9.63855,14.75737 17.84555,17.10126 11.44883,2.02963 23.43903,1.52291 35.0516,0.96304 8.67644,-3.10978 9.51469,-13.27503 9.7177,-21.27079 -0.55166,-6.18224 -5.33008,-11.20112 -10.78452,-13.68752 -6.74868,-3.32503 -14.30374,-4.54416 -21.07168,-7.82244 -15.85749,-3.34287 -2.65006,-21.20471 -1.3883,-30.52074 0.43731,-14.1619 -13.35151,-20.29546 -24.39764,-11.98201 -4.88334,6.01362 -8.28553,12.94137 -11.92737,19.75881 z"
+ id="path4979"
+ sodipodi:nodetypes="ccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ id="path3272"
+ d="m 287.09768,302.83302 c -0.40818,8.09493 0.0533,16.40891 2.98988,24.04429 1.83069,6.8164 2.90115,13.81457 3.58614,20.83216 2.00179,8.03691 9.11379,13.95391 16.87396,16.17019 10.82551,1.91913 22.16292,1.44 33.14325,0.91061 8.20406,-2.94047 8.99667,-12.55228 9.18863,-20.11272 -0.52163,-5.84565 -5.03989,-10.59128 -10.19737,-12.94231 -6.38125,-3.144 -13.52498,-4.29676 -19.92445,-7.39656 -14.99414,-3.16087 -2.50578,-20.05023 -1.31271,-28.85906 0.4135,-13.39087 -12.6246,-19.19049 -23.06934,-11.32966 -4.61747,5.68621 -7.83443,12.23679 -11.27799,18.68306 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccczccccccc"
+ id="path4589"
+ d="m 307.55611,281.62607 c 2.54891,2.56936 3.41424,5.43523 2.94541,10.18677 -7.20532,23.37246 -0.555,29.84765 5.99776,29.4301 -4.49977,-6.27564 2.80723,-18.78698 3.75353,-25.77385 -0.10011,-8.44541 -3.80768,-14.35676 -12.6967,-13.84302 z m 31.74377,59.40552 c -0.19196,7.56044 -4.04511,15.15479 -13.06542,16.86215 -9.0203,1.70736 -12.6401,3.39701 -22.42504,2.10256 2.16229,1.36714 4.5437,2.43241 6.96875,3.125 10.82552,1.91912 19.99027,1.97424 30.9706,1.44485 8.20407,-2.94046 10.9345,-12.31787 11.12646,-19.87831 -0.52162,-5.84566 -5.03002,-10.58647 -10.1875,-12.9375 -8.96714,-3.76881 -8.49028,-1.98657 -10.89032,-2.43189 1.37015,1.92452 6.52432,4.09242 7.50247,11.71314 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 308.33001,281.24041 c -3.28084,-0.0263 -6.47536,1.96775 -9.73934,4.42426 -4.61746,5.6862 -6.76049,10.73315 -10.20405,17.17942 -0.40817,8.09494 -1.22921,16.39587 1.70736,24.03125 1.83068,6.81639 3.44736,13.503 4.13235,20.52059 1.47745,5.93174 5.71782,10.7009 10.96875,13.6875 -7.32213,-8.36434 -4.89705,-19.80909 -7.07905,-29.99007 -3.99164,-14.37142 -0.88191,-48.65772 21.10295,-44.53052 -2.36182,-3.77441 -6.45534,-5.28685 -10.88897,-5.32243 z m 7.50224,40.25443 c 0.75552,2.52821 2.15205,6.97842 6.10699,8.46763 6.6085,2.48839 21.74298,5.95452 28.12422,9.09852 -1.92439,-5.32596 -5.53158,-6.36847 -7.37573,-7.31065 -6.68717,-2.92008 -20.20732,-5.25683 -26.85548,-10.2555 z"
+ id="path4977"
+ sodipodi:nodetypes="ccccccccccsccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5048"
+ transform="translate(0,512)">
+ <path
+ sodipodi:nodetypes="csccssscss"
+ id="path5050"
+ d="M 11.565497,-11.57212 C 4.7232923,-9.6623195 -3.3260383,-12.801951 -8.3287763,-9.7036625 -21.278135,-1.6838851 -24.173562,20.345108 -23.681024,36.37459 -35.834604,68.381862 12.088762,80.839539 22.948108,52.272586 25.701964,37.061785 36.898362,27.868369 48.623407,20.309331 c 5.591619,-3.60487 10.937409,-9.601752 16.277207,-10.174876 5.902932,-0.6335658 11.200996,2.794501 14.802434,2.300204 9.91186,-1.360401 9.74522,-11.49705829 -0.366191,-24.006779 -12.007814,-9.894977 -34.747146,-15.985974 -51.652405,-11.110457 -6.5842,1.898899 -10.737392,9.608352 -16.118955,11.110457 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 9.760203,-13.968212 c -6.398148,1.785856 -13.9250798,-1.150015 -18.603142,1.747196 -12.10895,7.4992964 -14.816465,28.098615 -14.355892,43.087789 -11.364817,29.930011 33.448339,41.579189 43.602917,14.866221 2.575132,-14.223625 13.044887,-22.820391 24.008981,-29.88885 5.228725,-3.370915 10.227575,-8.9786015 15.220822,-9.51453 5.519833,-0.5924474 10.474055,2.6131387 13.841761,2.1509219 9.268583,-1.2721112 9.112758,-10.7509033 -0.342426,-22.4487479 -11.228511,-9.252796 -32.492068,-14.94849 -48.300181,-10.389392 -6.156888,1.775661 -10.040539,8.984773 -15.07284,10.389392 z"
+ id="path5052"
+ sodipodi:nodetypes="csccssscss"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 71.320075,-14.172408 c 4.76023,10.9449346 -3.795801,7.983078 -20.34117,9.889531 C 35.531266,-2.502911 16.222819,10.075182 10.682956,30.599136 5.98025,48.02161 -11.934613,54.433868 -23.084717,45.641382 -17.796601,63.815964 13.456949,66.038566 19.771544,43.796173 23.745797,29.79735 34.620992,20.727784 45.345488,13.300304 50.367162,9.8224361 55.160105,5.6974929 60.067494,5.3594029 c 6.339923,-0.436783 11.402713,2.677915 14.789869,2.134406 10.235546,-3.5679734 2.788847,-17.09157 -3.537288,-21.6662169 z"
+ id="path5054"
+ sodipodi:nodetypes="csscssscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 32.592516,-24.982889 c -10.609156,0.242509 -15.180976,8.179798 -22.400022,12.07647 -4.8555336,2.620904 -12.4718309,-0.9042 -16.6954893,0.811027 -14.1323667,5.7391505 -16.1185307,26.956965 -15.6269417,42.955524 -4.510721,11.879291 -1.242802,20.885897 6.266551,25.75 -1.88941,-4.564778 -2.635546,-11.157464 -2.179028,-17.980139 1.367919,-20.443612 12.556659,-35.065455 34.261389,-45.05919 13.505959,-6.21869 44.357887,-11.518712 61.125729,-0.3821817 -1.14422,-2.105606 -2.81056,-4.2510533 -4.69283,-6.5797803 -8.775986,-7.231805 -26.419014,-11.903528 -40.059358,-11.59173 z"
+ id="path5056"
+ sodipodi:nodetypes="cssccssccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5058"
+ transform="translate(0,512)">
+ <path
+ sodipodi:nodetypes="cscccc"
+ id="path5060"
+ d="m 139.49219,53.310783 c 7.72437,24.866042 50.17839,39.81396 59.1167,22.557291 C 210.09914,53.68453 222.71463,33.777355 248.40188,31.425002 269.51226,17.82539 249.26997,-9.6399047 227.76933,0.13335984 202.92242,3.7785696 180.21881,25.997032 153.04117,10.872046 128.89093,4.422499 141.11979,40.889504 139.49219,53.310783 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 141.80976,46.316303 c 7.17296,23.090963 46.59637,36.971813 54.89661,20.947023 10.67001,-20.599956 22.38494,-39.086043 46.23849,-41.270472 19.6034,-12.628794 0.80612,-38.13346 -19.15968,-29.057867 -23.0732,3.384994 -44.1561,24.017376 -69.39364,9.972098 -22.42626,-5.989142 -11.07037,27.874641 -12.58178,39.409218 z"
+ id="path5062"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.31856,0.206855 c 2.06979,6.137125 -1.16573,14.451514 -10.05403,16.481262 -22.81135,5.209246 -38.08158,29.055698 -46.97279,37.403332 -8.99944,8.449247 -28.8771,11.361257 -42.83679,-3.701133 10.17491,20.58787 44.48003,30.85775 52.28052,15.7978 10.67001,-20.599954 21.85785,-39.31226 45.7114,-41.496689 11.85732,-7.638654 9.87343,-17.926135 1.87169,-24.484572 z"
+ id="path5064"
+ sodipodi:nodetypes="cszcscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 231.25017,-3.983955 c -2.38649,0.146504 -4.84803,0.740551 -7.34375,1.875 -23.0732,3.384995 -44.27643,24.476158 -69.51397,10.43088 -22.42625,-5.989142 -10.00514,26.255874 -11.51655,37.790451 1.68627,5.428391 4.73526,10.111815 9.16287,14.25331 -1.32799,-2.13406 -3.0426,-3.941992 -3.77132,-6.28787 1.51141,-11.534577 -4.44305,-35.083569 11.83971,-33.373934 28.50873,2.99332 47.05584,-12.616073 70.12904,-16.001066 7.29698,-3.316893 13.27282,-1.687395 18.44008,1.91691 -2.91879,-6.626734 -8.94429,-11.12437 -17.42611,-10.603681 z"
+ id="path5066"
+ sodipodi:nodetypes="ccccccsccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5068"
+ transform="translate(512,0)">
+ <path
+ sodipodi:nodetypes="csccssscss"
+ id="path5070"
+ d="M 11.565497,-11.57212 C 4.7232923,-9.6623195 -3.3260383,-12.801951 -8.3287763,-9.7036625 -21.278135,-1.6838851 -24.173562,20.345108 -23.681024,36.37459 -35.834604,68.381862 12.088762,80.839539 22.948108,52.272586 25.701964,37.061785 36.898362,27.868369 48.623407,20.309331 c 5.591619,-3.60487 10.937409,-9.601752 16.277207,-10.174876 5.902932,-0.6335658 11.200996,2.794501 14.802434,2.300204 9.91186,-1.360401 9.74522,-11.49705829 -0.366191,-24.006779 -12.007814,-9.894977 -34.747146,-15.985974 -51.652405,-11.110457 -6.5842,1.898899 -10.737392,9.608352 -16.118955,11.110457 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 9.760203,-13.968212 c -6.398148,1.785856 -13.9250798,-1.150015 -18.603142,1.747196 -12.10895,7.4992964 -14.816465,28.098615 -14.355892,43.087789 -11.364817,29.930011 33.448339,41.579189 43.602917,14.866221 2.575132,-14.223625 13.044887,-22.820391 24.008981,-29.88885 5.228725,-3.370915 10.227575,-8.9786015 15.220822,-9.51453 5.519833,-0.5924474 10.474055,2.6131387 13.841761,2.1509219 9.268583,-1.2721112 9.112758,-10.7509033 -0.342426,-22.4487479 -11.228511,-9.252796 -32.492068,-14.94849 -48.300181,-10.389392 -6.156888,1.775661 -10.040539,8.984773 -15.07284,10.389392 z"
+ id="path5072"
+ sodipodi:nodetypes="csccssscss"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 71.320075,-14.172408 c 4.76023,10.9449346 -3.795801,7.983078 -20.34117,9.889531 C 35.531266,-2.502911 16.222819,10.075182 10.682956,30.599136 5.98025,48.02161 -11.934613,54.433868 -23.084717,45.641382 -17.796601,63.815964 13.456949,66.038566 19.771544,43.796173 23.745797,29.79735 34.620992,20.727784 45.345488,13.300304 50.367162,9.8224361 55.160105,5.6974929 60.067494,5.3594029 c 6.339923,-0.436783 11.402713,2.677915 14.789869,2.134406 10.235546,-3.5679734 2.788847,-17.09157 -3.537288,-21.6662169 z"
+ id="path5074"
+ sodipodi:nodetypes="csscssscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 32.592516,-24.982889 c -10.609156,0.242509 -15.180976,8.179798 -22.400022,12.07647 -4.8555336,2.620904 -12.4718309,-0.9042 -16.6954893,0.811027 -14.1323667,5.7391505 -16.1185307,26.956965 -15.6269417,42.955524 -4.510721,11.879291 -1.242802,20.885897 6.266551,25.75 -1.88941,-4.564778 -2.635546,-11.157464 -2.179028,-17.980139 1.367919,-20.443612 12.556659,-35.065455 34.261389,-45.05919 13.505959,-6.21869 44.357887,-11.518712 61.125729,-0.3821817 -1.14422,-2.105606 -2.81056,-4.2510533 -4.69283,-6.5797803 -8.775986,-7.231805 -26.419014,-11.903528 -40.059358,-11.59173 z"
+ id="path5076"
+ sodipodi:nodetypes="cssccssccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="translate(512,512)"
+ id="g5078">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 11.565497,-11.57212 C 4.7232923,-9.6623195 -3.3260383,-12.801951 -8.3287763,-9.7036625 -21.278135,-1.6838851 -24.173562,20.345108 -23.681024,36.37459 -35.834604,68.381862 12.088762,80.839539 22.948108,52.272586 25.701964,37.061785 36.898362,27.868369 48.623407,20.309331 c 5.591619,-3.60487 10.937409,-9.601752 16.277207,-10.174876 5.902932,-0.6335658 11.200996,2.794501 14.802434,2.300204 9.91186,-1.360401 9.74522,-11.49705829 -0.366191,-24.006779 -12.007814,-9.894977 -34.747146,-15.985974 -51.652405,-11.110457 -6.5842,1.898899 -10.737392,9.608352 -16.118955,11.110457 z"
+ id="path5080"
+ sodipodi:nodetypes="csccssscss"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccssscss"
+ id="path5082"
+ d="m 9.760203,-13.968212 c -6.398148,1.785856 -13.9250798,-1.150015 -18.603142,1.747196 -12.10895,7.4992964 -14.816465,28.098615 -14.355892,43.087789 -11.364817,29.930011 33.448339,41.579189 43.602917,14.866221 2.575132,-14.223625 13.044887,-22.820391 24.008981,-29.88885 5.228725,-3.370915 10.227575,-8.9786015 15.220822,-9.51453 5.519833,-0.5924474 10.474055,2.6131387 13.841761,2.1509219 9.268583,-1.2721112 9.112758,-10.7509033 -0.342426,-22.4487479 -11.228511,-9.252796 -32.492068,-14.94849 -48.300181,-10.389392 -6.156888,1.775661 -10.040539,8.984773 -15.07284,10.389392 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csscssscc"
+ id="path5084"
+ d="m 71.320075,-14.172408 c 4.76023,10.9449346 -3.795801,7.983078 -20.34117,9.889531 C 35.531266,-2.502911 16.222819,10.075182 10.682956,30.599136 5.98025,48.02161 -11.934613,54.433868 -23.084717,45.641382 -17.796601,63.815964 13.456949,66.038566 19.771544,43.796173 23.745797,29.79735 34.620992,20.727784 45.345488,13.300304 50.367162,9.8224361 55.160105,5.6974929 60.067494,5.3594029 c 6.339923,-0.436783 11.402713,2.677915 14.789869,2.134406 10.235546,-3.5679734 2.788847,-17.09157 -3.537288,-21.6662169 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssccssccc"
+ id="path5086"
+ d="m 32.592516,-24.982889 c -10.609156,0.242509 -15.180976,8.179798 -22.400022,12.07647 -4.8555336,2.620904 -12.4718309,-0.9042 -16.6954893,0.811027 -14.1323667,5.7391505 -16.1185307,26.956965 -15.6269417,42.955524 -4.510721,11.879291 -1.242802,20.885897 6.266551,25.75 -1.88941,-4.564778 -2.635546,-11.157464 -2.179028,-17.980139 1.367919,-20.443612 12.556659,-35.065455 34.261389,-45.05919 13.505959,-6.21869 44.357887,-11.518712 61.125729,-0.3821817 -1.14422,-2.105606 -2.81056,-4.2510533 -4.69283,-6.5797803 -8.775986,-7.231805 -26.419014,-11.903528 -40.059358,-11.59173 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2407307,0,0,0.2407307,219.11532,331.96478)"
+ id="g5336">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5338"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5340"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5342"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5344"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5226"
+ transform="matrix(0.2407307,0,0,0.2407307,393.51796,312.4383)">
+ <path
+ id="path5228"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5230"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5232"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5234"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2407307,0,0,0.2407307,411.69716,148.46113)"
+ id="g5236">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5238"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5240"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5242"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5244"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5246"
+ transform="matrix(0.2407307,0,0,0.2407307,285.03991,355.23228)">
+ <path
+ id="path5248"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5250"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5252"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5254"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2245917,0,0,0.1927486,162.18635,27.239055)"
+ id="g5256">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.80626297px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5258"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5260"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.80626297px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5262"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.80626297px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5264"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.80626297px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5266"
+ transform="matrix(0.2407307,0,0,0.2407307,416.88911,42.413607)">
+ <path
+ id="path5268"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5270"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5272"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5274"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2407307,0,0,0.2407307,66.432073,249.86226)"
+ id="g5276">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5278"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5280"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5282"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5284"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5286"
+ transform="matrix(0.1976934,0,0,0.2887128,28.620146,146.91093)">
+ <path
+ id="path5288"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.18572712px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.18572712px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5290"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.18572712px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5292"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.18572712px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5294"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2578916,0.06540561,-0.07280693,0.2316752,192.2969,143.89224)"
+ id="g5296">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.93721938px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5298"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5300"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.93721938px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5302"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.93721938px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5304"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.93721938px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5306"
+ transform="matrix(0.2407307,0,0,0.2407307,126.47619,433.2215)">
+ <path
+ id="path5308"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5310"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5312"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5314"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5316"
+ transform="matrix(0.258854,0.04405617,-0.04405617,0.258854,24.115585,340.23608)">
+ <path
+ id="path5318"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.80841613px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.80841613px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5320"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.80841613px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5322"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.80841613px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5324"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2407307,0,0,0.2407307,288.67285,423.43821)"
+ id="g5326">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5328"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5330"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5332"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5334"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5346"
+ transform="matrix(0.2921472,-0.035634,0.035634,0.2921472,79.610335,78.9066)">
+ <path
+ id="path5348"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.39775062px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.39775062px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5350"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.39775062px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5352"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.39775062px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5354"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2407307,0,0,0.2407307,214.25532,-35.61637)"
+ id="g5356">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5358"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5360"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5362"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5364"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5366"
+ transform="matrix(0.2945273,0,0,0.220167,297.74511,66.270713)">
+ <path
+ id="path5368"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.92700195px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.92700195px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5370"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.92700195px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5372"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.92700195px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5374"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2407307,0,0,0.2407307,-59.819676,255.26602)"
+ id="g5376">
+ <path
+ sodipodi:nodetypes="ccscc"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ id="path5378"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscc"
+ id="path5380"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccssc"
+ id="path5382"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5384"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.15401936px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5386"
+ transform="matrix(0.2945273,0,0,0.2945273,290.41491,194.86151)">
+ <path
+ id="path5388"
+ d="m 329.14805,198.13977 c -20.82798,-0.93114 -42.1476,19.96569 -33.7535,41.24245 8.1608,13.8389 27.56918,17.45834 41.18564,17.85324 15.94762,0.4625 42.146,-13.98473 34.78735,-36.43177 -0.79854,-22.90142 -25.73289,-21.7376 -42.21949,-22.66392 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.39527106px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.39527106px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 325.45146,194.41382 c -19.22421,-0.85945 -38.90221,18.42832 -31.15446,38.06675 7.53242,12.7733 25.44634,16.11404 38.01432,16.47853 14.71965,0.42689 38.90074,-12.90789 32.10871,-33.6265 -0.73705,-21.138 -23.75144,-20.06379 -38.96857,-20.91878 z"
+ id="path5390"
+ sodipodi:nodetypes="ccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.39527106px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 353.76366,201.14597 c 6.12754,23.5358 -13.97417,27.54922 -33.52454,29.80673 -8.97297,0.34677 -18.4574,1.31547 -27.22468,-2.98113 0.28415,1.49305 0.66972,3.0195 1.26391,4.52561 7.53244,12.7733 25.47163,14.42062 38.03961,14.78511 14.71966,0.42689 37.12199,-10.91907 32.087,-31.94982 -2.06929,-8.64327 -4.61886,-11.36909 -10.6413,-14.1865 z"
+ id="path5392"
+ sodipodi:nodetypes="ccccssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.39527106px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 323.63368,195.78143 c -18.62456,0.36852 -36.86095,17.69102 -29.35533,36.71575 1.42916,2.42353 3.25429,4.28689 5.34104,5.78952 -2.96661,-32.82788 42.43567,-38.34233 63.92937,-28.5399 -7.24659,-15.65518 -24.83547,-13.70831 -39.91508,-13.96537 z"
+ id="path5394"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5396"
+ transform="matrix(0.1725946,0,0,0.1725946,125.59557,148.47967)">
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path5398"
+ d="m 243.54945,483.28613 c 14.08566,23.24358 69.94066,36.93966 92.47158,15.13116 12.51803,-12.11665 13.5899,-44.76498 7.38892,-60.21006 -5.77367,-14.38078 -53.67308,-41.05185 -58.65132,-9.0227 -1.457,33.60898 -56.65739,28.60958 -41.20918,54.1016 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ id="path5400"
+ sodipodi:nodetypes="csscs"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ id="path5402"
+ sodipodi:nodetypes="cscsssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ id="path5404"
+ sodipodi:nodetypes="ccscccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.1780253,-0.06492772,0.06456873,0.1790151,311.7867,308.09873)"
+ id="g5406">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:5.26596546px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.54945,483.28613 c 14.08566,23.24358 69.94066,36.93966 92.47158,15.13116 12.51803,-12.11665 13.5899,-44.76498 7.38892,-60.21006 -5.77367,-14.38078 -53.67308,-41.05185 -58.65132,-9.0227 -1.457,33.60898 -56.65739,28.60958 -41.20918,54.1016 z"
+ id="path5408"
+ sodipodi:nodetypes="csscs"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path5410"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.26596546px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscsssc"
+ id="path5412"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.26596546px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscccc"
+ id="path5414"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.26596546px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5416"
+ transform="matrix(0.1725946,0,0,0.1725946,291.48426,-41.969162)">
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path5418"
+ d="m 243.54945,483.28613 c 14.08566,23.24358 69.94066,36.93966 92.47158,15.13116 12.51803,-12.11665 13.5899,-44.76498 7.38892,-60.21006 -5.77367,-14.38078 -53.67308,-41.05185 -58.65132,-9.0227 -1.457,33.60898 -56.65739,28.60958 -41.20918,54.1016 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ id="path5420"
+ sodipodi:nodetypes="csscs"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ id="path5422"
+ sodipodi:nodetypes="cscsssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ id="path5424"
+ sodipodi:nodetypes="ccscccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.1725946,0,0,0.1725946,-29.952009,31.280389)"
+ id="g5426">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.54945,483.28613 c 14.08566,23.24358 69.94066,36.93966 92.47158,15.13116 12.51803,-12.11665 13.5899,-44.76498 7.38892,-60.21006 -5.77367,-14.38078 -53.67308,-41.05185 -58.65132,-9.0227 -1.457,33.60898 -56.65739,28.60958 -41.20918,54.1016 z"
+ id="path5428"
+ sodipodi:nodetypes="csscs"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path5430"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscsssc"
+ id="path5432"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscccc"
+ id="path5434"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.79392385px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5436"
+ transform="matrix(0.1523228,0,0,0.1902829,211.48288,236.84838)">
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path5438"
+ d="m 243.54945,483.28613 c 14.08566,23.24358 69.94066,36.93966 92.47158,15.13116 12.51803,-12.11665 13.5899,-44.76498 7.38892,-60.21006 -5.77367,-14.38078 -53.67308,-41.05185 -58.65132,-9.0227 -1.457,33.60898 -56.65739,28.60958 -41.20918,54.1016 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:5.87377977px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.87377977px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ id="path5440"
+ sodipodi:nodetypes="csscs"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.87377977px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ id="path5442"
+ sodipodi:nodetypes="cscsssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.87377977px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ id="path5444"
+ sodipodi:nodetypes="ccscccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.1725946,0,0,0.2168154,22.615311,374.14112)"
+ id="g5446">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:5.16941404px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.54945,483.28613 c 14.08566,23.24358 69.94066,36.93966 92.47158,15.13116 12.51803,-12.11665 13.5899,-44.76498 7.38892,-60.21006 -5.77367,-14.38078 -53.67308,-41.05185 -58.65132,-9.0227 -1.457,33.60898 -56.65739,28.60958 -41.20918,54.1016 z"
+ id="path5448"
+ sodipodi:nodetypes="csscs"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csscs"
+ id="path5450"
+ d="m 243.63725,475.53826 c 12.9435,21.35883 64.26938,33.94433 84.97334,13.90422 11.50298,-11.13415 12.48793,-41.13512 6.78977,-55.3278 -5.3055,-13.21469 -49.32089,-37.72308 -53.89546,-8.29108 -1.33885,30.88373 -52.06321,26.28971 -37.86765,49.71466 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.16941404px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscsssc"
+ id="path5452"
+ d="m 329.27294,428.10418 c 3.97839,15.27871 -3.66772,38.85733 -15.72789,46.88936 -24.66247,16.42512 -54.10128,12.53437 -71.11036,-5.81693 0.26702,1.78905 0.58083,3.88932 1.94412,6.13897 12.9435,21.35884 63.21884,33.19232 83.9228,13.15221 11.50299,-11.13416 12.04853,-39.82718 6.35037,-54.01986 -0.77867,-1.93948 -3.17977,-4.12396 -5.37904,-6.34375 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.16941404px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccscccc"
+ id="path5454"
+ d="m 297.03102,413.12219 c -7.71909,0.0194 -13.09698,2.68055 -14.66949,12.7978 -1.33885,30.88374 -52.93232,26.18608 -38.73676,49.61103 1.70396,2.8118 4.09184,5.48421 6.96875,7.9375 -12.94598,-22.73439 36.89168,-18.51323 38.21875,-49.125 3.62785,-23.34099 32.05306,-12.75253 46.3125,-0.78125 -4.08474,-8.68205 -23.66687,-20.47625 -38.09375,-20.44008 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.16941404px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5456"
+ transform="matrix(0.2443125,-0.08211815,0.06549837,0.1948664,416.42601,244.75447)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5458"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.34425926px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.34425926px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ id="path5460"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.34425926px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ id="path5462"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.34425926px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ id="path5464"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.1956079,0,0,0.2421112,345.76948,262.26841)"
+ id="g5466">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.59514666px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ id="path5468"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5470"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.59514666px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ id="path5472"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.59514666px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path5474"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.59514666px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5476"
+ transform="matrix(0.2304854,0,0,0.2910464,65.977959,12.812596)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5478"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.8609767px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.8609767px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ id="path5480"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.8609767px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ id="path5482"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.8609767px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ id="path5484"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2049038,-0.03098801,0.0362033,0.2393891,155.60128,366.6461)"
+ id="g5486">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.46439219px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ id="path5488"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5490"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.46439219px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ id="path5492"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.46439219px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path5494"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.46439219px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5496"
+ transform="matrix(0.2149843,0,0,0.2421112,102.60229,-26.3139)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5498"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.38317871px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.38317871px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ id="path5500"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.38317871px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ id="path5502"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.38317871px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ id="path5504"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2421112,0,0,0.2421112,474.97205,97.446594)"
+ id="g5506">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ id="path5508"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5510"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ id="path5512"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path5514"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5516"
+ transform="matrix(0.2421112,0,0,0.2421112,10.459102,429.02283)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5518"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ id="path5520"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ id="path5522"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.13033342px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ id="path5524"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5526"
+ transform="matrix(0.2488688,0.07946678,-0.07946678,0.2488688,140.26896,78.531693)">
+ <path
+ id="path5528"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ id="path5530"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ id="path5532"
+ sodipodi:nodetypes="cczcccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ id="path5534"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2488688,0.07946678,-0.07946678,0.2488688,273.98953,151.91642)"
+ id="g5536">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ id="path5538"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path5540"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cczcccc"
+ id="path5542"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5544"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5546"
+ transform="matrix(0.2488688,0.07946678,-0.07946678,0.2488688,395.49761,66.602237)">
+ <path
+ id="path5548"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ id="path5550"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ id="path5552"
+ sodipodi:nodetypes="cczcccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ id="path5554"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2113482,0.180649,-0.1535662,0.2486213,495.11512,-138.94404)"
+ id="g5556">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ id="path5558"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path5560"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cczcccc"
+ id="path5562"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5564"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5566"
+ transform="matrix(0.2488688,0.07946678,-0.07946678,0.2488688,509.39771,301.5056)">
+ <path
+ id="path5568"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ id="path5570"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ id="path5572"
+ sodipodi:nodetypes="cczcccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ id="path5574"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2488688,0.07946678,-0.07946678,0.2488688,250.42143,307.59916)"
+ id="g5576">
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ id="path5578"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path5580"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cczcccc"
+ id="path5582"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5584"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5600"
+ transform="matrix(0.7000555,0,0,0.7000555,-183.93534,254.80861)">
+ <path
+ sodipodi:nodetypes="csccc"
+ id="path5588"
+ d="m 281.33797,-46.165926 c -4.31788,-10.210649 -12.22141,0.285329 -13.9788,7.918608 -1.29149,5.609688 -19.22574,10.834278 -7.78327,18.781245 5.71025,6.773613 18.31922,8.282731 23.2259,-0.212449 6.59971,-7.601185 7.11345,-20.077299 -1.46383,-26.487404 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 278.84309,-47.33068 c -3.93021,-9.293938 -11.12417,0.259715 -12.72378,7.207679 -1.17555,5.106052 -17.49967,9.861586 -7.0845,17.095075 5.19758,6.165487 16.67453,7.539118 21.14069,-0.193375 6.00719,-6.918752 6.47481,-18.27477 -1.33241,-24.109379 z"
+ id="path5590"
+ sodipodi:nodetypes="csccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 282.41836,-42.363313 c 0.98391,5.200921 -0.79115,10.107702 -3.87123,14.642462 -4.99562,7.354997 -15.93569,6.365151 -21.13329,0.199672 -0.66139,-0.459344 -0.77766,-0.852191 -1.23412,-1.292277 -0.51408,1.779127 0.0495,3.413794 3.13003,5.553294 5.19758,6.165491 15.78197,7.337502 20.86634,0.04578 4.08217,-5.854429 5.63538,-13.072673 2.24227,-19.148933 z"
+ id="path5592"
+ sodipodi:nodetypes="cscccsc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 276.13327,-50.492935 c -3.9347,-2.4215 -8.41562,4.922291 -9.71531,10.567512 -1.07879,4.685784 -14.83656,8.880461 -9.05759,15.161836 1.05648,-4.309822 9.22298,-7.764543 10.06119,-11.405377 1.59961,-6.947964 8.78685,-16.504895 12.71707,-7.210961 1.90797,1.425898 3.02301,3.460473 3.98249,5.400538 -0.64047,-3.486031 -2.3338,-6.711931 -5.4746,-9.059167 -0.73692,-1.742612 -1.60525,-2.895573 -2.51325,-3.454381 z"
+ id="path5594"
+ sodipodi:nodetypes="cscscccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.5616196,0,0,0.5616196,201.82465,175.33483)"
+ id="g5606">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1.78056467px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 281.33797,-46.165926 c -4.31788,-10.210649 -12.22141,0.285329 -13.9788,7.918608 -1.29149,5.609688 -19.22574,10.834278 -7.78327,18.781245 5.71025,6.773613 18.31922,8.282731 23.2259,-0.212449 6.59971,-7.601185 7.11345,-20.077299 -1.46383,-26.487404 z"
+ id="path5608"
+ sodipodi:nodetypes="csccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccc"
+ id="path5610"
+ d="m 278.84309,-47.33068 c -3.93021,-9.293938 -11.12417,0.259715 -12.72378,7.207679 -1.17555,5.106052 -17.49967,9.861586 -7.0845,17.095075 5.19758,6.165487 16.67453,7.539118 21.14069,-0.193375 6.00719,-6.918752 6.47481,-18.27477 -1.33241,-24.109379 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.78056467px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccsc"
+ id="path5612"
+ d="m 282.41836,-42.363313 c 0.98391,5.200921 -0.79115,10.107702 -3.87123,14.642462 -4.99562,7.354997 -15.93569,6.365151 -21.13329,0.199672 -0.66139,-0.459344 -0.77766,-0.852191 -1.23412,-1.292277 -0.51408,1.779127 0.0495,3.413794 3.13003,5.553294 5.19758,6.165491 15.78197,7.337502 20.86634,0.04578 4.08217,-5.854429 5.63538,-13.072673 2.24227,-19.148933 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.78056467px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscscccc"
+ id="path5614"
+ d="m 276.13327,-50.492935 c -3.9347,-2.4215 -8.41562,4.922291 -9.71531,10.567512 -1.07879,4.685784 -14.83656,8.880461 -9.05759,15.161836 1.05648,-4.309822 9.22298,-7.764543 10.06119,-11.405377 1.59961,-6.947964 8.78685,-16.504895 12.71707,-7.210961 1.90797,1.425898 3.02301,3.460473 3.98249,5.400538 -0.64047,-3.486031 -2.3338,-6.711931 -5.4746,-9.059167 -0.73692,-1.742612 -1.60525,-2.895573 -2.51325,-3.454381 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.78056467px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5616"
+ transform="matrix(0.5319913,0.2173328,-0.2173328,0.5319913,249.38379,454.68555)">
+ <path
+ sodipodi:nodetypes="csccc"
+ id="path5618"
+ d="m 281.33797,-46.165926 c -4.31788,-10.210649 -12.22141,0.285329 -13.9788,7.918608 -1.29149,5.609688 -19.22574,10.834278 -7.78327,18.781245 5.71025,6.773613 18.31922,8.282731 23.2259,-0.212449 6.59971,-7.601185 7.11345,-20.077299 -1.46383,-26.487404 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1.74012208px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.74012208px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 278.84309,-47.33068 c -3.93021,-9.293938 -11.12417,0.259715 -12.72378,7.207679 -1.17555,5.106052 -17.49967,9.861586 -7.0845,17.095075 5.19758,6.165487 16.67453,7.539118 21.14069,-0.193375 6.00719,-6.918752 6.47481,-18.27477 -1.33241,-24.109379 z"
+ id="path5620"
+ sodipodi:nodetypes="csccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.74012208px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 282.41836,-42.363313 c 0.98391,5.200921 -0.79115,10.107702 -3.87123,14.642462 -4.99562,7.354997 -15.93569,6.365151 -21.13329,0.199672 -0.66139,-0.459344 -0.77766,-0.852191 -1.23412,-1.292277 -0.51408,1.779127 0.0495,3.413794 3.13003,5.553294 5.19758,6.165491 15.78197,7.337502 20.86634,0.04578 4.08217,-5.854429 5.63538,-13.072673 2.24227,-19.148933 z"
+ id="path5622"
+ sodipodi:nodetypes="cscccsc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.74012208px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 276.13327,-50.492935 c -3.9347,-2.4215 -8.41562,4.922291 -9.71531,10.567512 -1.07879,4.685784 -14.83656,8.880461 -9.05759,15.161836 1.05648,-4.309822 9.22298,-7.764543 10.06119,-11.405377 1.59961,-6.947964 8.78685,-16.504895 12.71707,-7.210961 1.90797,1.425898 3.02301,3.460473 3.98249,5.400538 -0.64047,-3.486031 -2.3338,-6.711931 -5.4746,-9.059167 -0.73692,-1.742612 -1.60525,-2.895573 -2.51325,-3.454381 z"
+ id="path5624"
+ sodipodi:nodetypes="cscscccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5626"
+ transform="matrix(0.2759451,0,0,0.2759451,13.839815,320.88404)">
+ <path
+ sodipodi:nodetypes="cscccc"
+ id="path5628"
+ d="m 139.49219,53.310783 c 7.72437,24.866042 50.17839,39.81396 59.1167,22.557291 C 210.09914,53.68453 222.71463,33.777355 248.40188,31.425002 269.51226,17.82539 249.26997,-9.6399047 227.76933,0.13335984 202.92242,3.7785696 180.21881,25.997032 153.04117,10.872046 128.89093,4.422499 141.11979,40.889504 139.49219,53.310783 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.62390924px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.62390924px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 141.80976,46.316303 c 7.17296,23.090963 46.59637,36.971813 54.89661,20.947023 10.67001,-20.599956 22.38494,-39.086043 46.23849,-41.270472 19.6034,-12.628794 0.80612,-38.13346 -19.15968,-29.057867 -23.0732,3.384994 -44.1561,24.017376 -69.39364,9.972098 -22.42626,-5.989142 -11.07037,27.874641 -12.58178,39.409218 z"
+ id="path5630"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.62390924px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 243.31856,0.206855 c 2.06979,6.137125 -1.16573,14.451514 -10.05403,16.481262 -22.81135,5.209246 -38.08158,29.055698 -46.97279,37.403332 -8.99944,8.449247 -28.8771,11.361257 -42.83679,-3.701133 10.17491,20.58787 44.48003,30.85775 52.28052,15.7978 10.67001,-20.599954 21.85785,-39.31226 45.7114,-41.496689 11.85732,-7.638654 9.87343,-17.926135 1.87169,-24.484572 z"
+ id="path5632"
+ sodipodi:nodetypes="cszcscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.62390924px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 231.25017,-3.983955 c -2.38649,0.146504 -4.84803,0.740551 -7.34375,1.875 -23.0732,3.384995 -44.27643,24.476158 -69.51397,10.43088 -22.42625,-5.989142 -10.00514,26.255874 -11.51655,37.790451 1.68627,5.428391 4.73526,10.111815 9.16287,14.25331 -1.32799,-2.13406 -3.0426,-3.941992 -3.77132,-6.28787 1.51141,-11.534577 -4.44305,-35.083569 11.83971,-33.373934 28.50873,2.99332 47.05584,-12.616073 70.12904,-16.001066 7.29698,-3.316893 13.27282,-1.687395 18.44008,1.91691 -2.91879,-6.626734 -8.94429,-11.12437 -17.42611,-10.603681 z"
+ id="path5634"
+ sodipodi:nodetypes="ccccccsccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5636"
+ transform="matrix(0.3050651,0,0,0.3050651,402.83155,255.76494)">
+ <path
+ id="path5638"
+ d="m 280.5597,63.430376 c -21.6581,4.239134 -8.10201,30.694561 6.82249,35.530244 23.94044,8.96476 -11.44287,41.92048 17.04386,42.26164 16.56164,6.47085 41.32506,5.86435 38.10592,-18.46251 C 343.6953,104.90838 336.60346,86.692204 327.01823,72.02951 314.98581,59.48727 296.22415,61.049062 280.5597,63.430376 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.27798891px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.27798891px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 276.57352,59.678177 c -20.38485,3.989922 -7.6257,28.890075 6.42141,33.441475 22.53302,8.437748 -10.77016,39.456048 16.04188,39.777148 15.588,6.09044 38.89562,5.5196 35.86573,-17.37712 1.09494,-16.801918 -5.57999,-33.947202 -14.60171,-47.747899 -11.32506,-11.8049 -28.98375,-10.334924 -43.72731,-8.093604 z"
+ id="path5640"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.27798891px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 314.00103,62.844322 c 7.85526,13.124329 12.64465,29.26952 9.1434,44.156248 -6.43048,27.34133 -17.23156,18.3756 -35.1434,17.21875 -0.155,5.00001 2.15072,7.93354 11.13897,8.04118 15.58801,6.09045 37.82769,6.06032 34.7978,-16.8364 1.09493,-16.801908 -4.60255,-33.841581 -13.62427,-47.642278 -1.92746,-2.009127 -4.06371,-3.635775 -6.3125,-4.9375 z m -44.0625,19.5625 c 3.12049,4.72643 11.07323,9.8428 15.87057,11.5772 -0.13326,-4.89069 -6.36505,-7.52703 -11.33932,-9.3897 -1.5364,-0.49781 -3.06734,-1.25682 -4.53125,-2.1875 z"
+ id="path5642"
+ sodipodi:nodetypes="csccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.27798891px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 293.90728,58.156822 c -5.86099,-0.03581 -11.81491,0.690755 -17.34375,1.53125 -18.47376,3.615867 -9.72635,24.40248 2.53125,31.65625 -5.54635,-8.80876 -3.86309,-17.727832 9.01543,-20.248541 12.01578,-1.826642 23.91531,-5.061546 34.79707,0.904791 -0.84574,-1.435552 -1.69621,-2.845773 -2.59375,-4.21875 -7.07817,-7.378063 -16.63794,-9.565314 -26.40625,-9.625 z m -2.78125,43.937498 c 2.03112,11.99449 -11.80992,29.56164 6.375,30.71875 2.25382,-11.47742 7.94767,-25.25194 -6.375,-30.71875 z"
+ id="path5644"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5646"
+ transform="matrix(0.2330141,-0.0848001,0.0848001,0.2330141,172.90384,8.6313437)">
+ <path
+ sodipodi:nodetypes="csscccs"
+ id="path5648"
+ d="m 421.18271,436.17142 c -11.16147,18.32846 -14.41657,50.24995 14.46856,46.97211 17.94094,-2.03592 39.66066,6.00096 53.08036,-2.32822 9.27612,-5.75739 7.59744,-38.68848 -12.68783,-34.49797 -10.43657,-13.10641 25.83273,-39.60867 -3.25371,-41.38059 -4.13074,-1.04845 -7.33292,-4.00828 -14.215,-0.24189 -19.1296,12.95412 -23.65816,8.92335 -37.39238,31.47656 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:4.03282785px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.03282785px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 419.45862,432.96729 c -10.49665,17.23675 -13.55786,47.25687 13.60676,44.17427 16.87231,-1.91465 37.29832,5.64352 49.91869,-2.18954 8.7236,-5.41446 7.14491,-36.38404 -11.93209,-32.44314 -9.81493,-12.32574 24.29403,-37.24942 -3.05991,-38.9158 -3.8847,-0.986 -6.89614,-3.76953 -13.3683,-0.22748 -17.99017,12.18252 -22.24899,8.39184 -35.16515,29.60169 z"
+ id="path5650"
+ sodipodi:nodetypes="csscccs"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.03282785px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 468.08309,404.59513 c 3.02835,8.67716 -10.59888,25.32343 -5.4228,32.6121 1.97424,2.78001 4.81528,4.21317 7.05442,5.2257 -4.32999,-12.11159 7.07193,-22.75328 7.89316,-30.20597 0.4534,-4.11464 -2.26044,-7.1337 -9.52478,-7.63183 z m 5.04892,38.16618 c 1.15065,7.14612 2.80191,17.20087 -1.88162,19.04376 -14.32754,5.63767 -30.14778,1.73217 -47.12539,2.50808 -5.31121,0.24273 -7.76801,0.46881 -11.12023,-1.0625 2.09049,9.06023 7.17661,14.3118 20.27648,13.25 16.92252,-1.37164 35.11396,5.29222 48.09487,-2.0772 7.76951,-4.41084 9.86109,-28.82551 -8.24411,-31.66214 z"
+ id="path5652"
+ sodipodi:nodetypes="cscsccsscssc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.03282785px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 461.02794,402.17822 c -1.64441,-0.0414 -3.54169,0.39048 -5.96875,1.71875 -17.99016,12.18252 -22.8572,7.94708 -35.05919,29.61434 -7.18032,12.7502 -12.69213,29.71583 -2.98934,38.38089 -4.41753,-10.03699 5.1078,-20.3231 10.77682,-30.87612 11.7835,-21.93529 12.19037,-15.7083 30.18054,-27.89082 6.64519,-3.46343 13.4222,-3.74464 20.44485,-1.49888 0.13112,-3.8498 -1.81104,-6.87477 -10.19743,-7.38566 -2.42793,-0.61625 -4.44681,-1.99355 -7.1875,-2.0625 z m 10.83898,40.44081 c -0.11219,2.22617 0.34764,4.32464 1.78125,6.125 4.56349,-0.94272 8.82395,-0.39427 11.29926,1.47206 -2.07573,-5.30486 -7.35297,-8.11775 -13.08051,-7.59706 z"
+ id="path5654"
+ sodipodi:nodetypes="ccscscccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.2488688,0.07946678,-0.07946678,0.2488688,-2.60229,301.5056)"
+ id="g5656">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ id="path5658"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path5660"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cczcccc"
+ id="path5662"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5664"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.82777691px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.7000555,0,0,0.7000555,328.06466,254.80861)"
+ id="g5666">
+ <path
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 281.33797,-46.165926 c -4.31788,-10.210649 -12.22141,0.285329 -13.9788,7.918608 -1.29149,5.609688 -19.22574,10.834278 -7.78327,18.781245 5.71025,6.773613 18.31922,8.282731 23.2259,-0.212449 6.59971,-7.601185 7.11345,-20.077299 -1.46383,-26.487404 z"
+ id="path5668"
+ sodipodi:nodetypes="csccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="csccc"
+ id="path5670"
+ d="m 278.84309,-47.33068 c -3.93021,-9.293938 -11.12417,0.259715 -12.72378,7.207679 -1.17555,5.106052 -17.49967,9.861586 -7.0845,17.095075 5.19758,6.165487 16.67453,7.539118 21.14069,-0.193375 6.00719,-6.918752 6.47481,-18.27477 -1.33241,-24.109379 z"
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscccsc"
+ id="path5672"
+ d="m 282.41836,-42.363313 c 0.98391,5.200921 -0.79115,10.107702 -3.87123,14.642462 -4.99562,7.354997 -15.93569,6.365151 -21.13329,0.199672 -0.66139,-0.459344 -0.77766,-0.852191 -1.23412,-1.292277 -0.51408,1.779127 0.0495,3.413794 3.13003,5.553294 5.19758,6.165491 15.78197,7.337502 20.86634,0.04578 4.08217,-5.854429 5.63538,-13.072673 2.24227,-19.148933 z"
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cscscccc"
+ id="path5674"
+ d="m 276.13327,-50.492935 c -3.9347,-2.4215 -8.41562,4.922291 -9.71531,10.567512 -1.07879,4.685784 -14.83656,8.880461 -9.05759,15.161836 1.05648,-4.309822 9.22298,-7.764543 10.06119,-11.405377 1.59961,-6.947964 8.78685,-16.504895 12.71707,-7.210961 1.90797,1.425898 3.02301,3.460473 3.98249,5.400538 -0.64047,-3.486031 -2.3338,-6.711931 -5.4746,-9.059167 -0.73692,-1.742612 -1.60525,-2.895573 -2.51325,-3.454381 z"
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.42845821px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5676"
+ transform="translate(512,0)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5678"
+ d="m 76.352636,196.18158 c 13.258725,-1.43048 36.815714,-12.73591 15.93394,-24.33165 -23.154226,-14.8425 -49.968777,-35.24726 -79.043359,-26.25715 -29.139741,9.55882 -20.6864931,39.75739 -8.714574,58.7739 25.226647,16.51112 47.01227,2.2174 71.823993,-8.1851 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046931999999999;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 68.211515,188.56943 c 12.60855,-1.36032 35.010355,-12.11136 15.15258,-23.13848 -22.018802,-14.11466 -47.518433,-33.51882 -75.167271,-24.96957 -27.7108,9.09009 -19.672079,37.80779 -8.287233,55.89178 23.989596,15.70145 44.706907,2.10866 68.301924,-7.78373 z"
+ id="path5680"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 84.538095,166.1043 c -0.05766,7.22209 -19.35778,9.28809 -27.878647,12.10626 -23.126052,7.64865 -37.803594,24.20179 -60.590103,11.33124 1.198417,2.38401 3.037014,4.35237 4.38235,6.48934 23.989598,15.70145 43.317124,1.68026 66.91214,-8.21213 12.34239,-1.33161 34.889065,-10.93575 17.17426,-21.71471 z"
+ id="path5682"
+ sodipodi:nodetypes="cscccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 21.006845,139.03187 c -4.21011,0.0977 -7.846049,0.94212 -12.16618,2.27794 -27.710801,9.09008 -20.312416,36.9605 -8.92757,55.04449 0.143196,0.0937 0.294536,0.15836 0.4375,0.25 -7.454439,-17.14722 -3.254457,-31.60578 19.431216,-39.04746 27.585553,-8.03338 47.612064,5.94572 70.234964,19.43974 1.60532,-3.54876 0.69856,-7.4901 -6.66618,-11.57978 -18.57836,-11.90924 -39.609158,-26.91261 -62.34375,-26.38493 z"
+ id="path5684"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5686"
+ transform="matrix(0.2113482,0.180649,-0.1535662,0.2486213,495.11512,373.05596)">
+ <path
+ id="path5688"
+ d="m 98.81336,470.11932 c -6.918783,23.04182 31.41119,39.50538 50.09677,31.99615 12.45296,-13.37404 30.31695,-17.81936 44.98976,-27.78519 15.89667,-14.71948 -4.15091,-33.104 -18.23167,-39.06219 -20.61949,-10.1033 -35.636,13.43344 -53.53538,19.60282 -8.1692,4.42411 -16.32281,9.07185 -23.31948,15.24841 z"
+ style="color:#000000;fill:#262833;fill-opacity:0.31046932;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 97.237597,464.03444 c -6.583689,21.92585 29.889873,37.59204 47.670463,30.4465 11.84983,-12.7263 28.84862,-16.95632 42.81079,-26.43948 15.12676,-14.00658 -3.94987,-31.5007 -17.34866,-37.17032 -19.62084,-9.61397 -33.91006,12.78283 -50.94253,18.65341 -7.77355,4.20984 -15.53226,8.63248 -22.190063,14.50989 z"
+ id="path5690"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 183.28133,439.09413 c 2.57499,5.87507 -0.99651,12.53148 -7.21763,18.29191 -13.96217,9.48316 -28.32573,13.83891 -39.5809,22.34414 -11.25517,8.50524 -26.19024,4.37815 -36.981264,-4.17061 6.255224,15.43676 30.898314,24.02242 44.219874,18.5864 11.84984,-12.7263 28.85033,-17.38522 42.8125,-26.86838 10.43773,-9.66478 5.77747,-20.2282 -3.25258,-28.18346 z"
+ id="path5692"
+ sodipodi:nodetypes="cczcccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.52920365px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 159.84383,429.60883 c -14.54811,0.5555 -26.24421,16.23015 -40.08309,21 -7.77355,4.20984 -14.56022,7.76083 -21.218024,13.63824 -2.918588,9.71986 1.33231,17.99824 9.957364,23.81581 -2.7158,-4.4121 -3.75617,-9.44267 -2.125,-14.875 6.6578,-5.87741 14.41395,-10.32142 22.1875,-14.53125 17.03247,-5.87058 29.05454,-28.70111 48.67538,-19.08713 3.13796,1.32781 7.457,4.07581 10.70551,6.50404 -4.6172,-6.57778 -11.27636,-11.90596 -17.78383,-14.65956 -3.67891,-1.80262 -6.95855,-1.93334 -10.31581,-1.80515 z"
+ id="path5694"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3470"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,80.546393,93.783789)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,87.706325,87.080874)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4267"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4269"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,96.084969,98.506298)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,107.51039,87.080874)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4271"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4273"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,84.386253,72.151654)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-36.754623,188.84332)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4303"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4305"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-22.765574,186.56009)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-29.984122,198.29019)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4307"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4309"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-17.057731,195.05859)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-7.3629375,178.68516)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4311"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,80.09296,314.18152)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4313"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4315"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,68.902771,308.16451)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,85.70708,304.93291)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4317"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4319"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,75.581407,294.16092)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4321"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,91.739396,320.01371)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,270.2762,322.50975)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4323"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4325"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,256.47908,314.62772)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,266.38931,313.11964)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4327"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4329"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,263.3515,331.62582)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,244.62988,329.06219)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4331"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4333"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,228.04101,149.70851)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,224.37853,158.11066)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4335"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4337"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,234.5042,166.94369)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,240.9674,158.3261)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4339"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4341"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,245.70708,174.69953)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,260.14155,165.00474)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4343"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4345"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,340.14155,-14.99526)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,329.55399,-16.975667)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4347"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4349"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,323.23192,-2.6558026)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,334.65734,7.3985703)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4351"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4353"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,343.95002,0.84799406)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,336.02839,-24.287938)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4355"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4357"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,313.32988,-21.241158)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,75.32988,-43.241158)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4359"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4361"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,93.730321,-36.005056)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,85.32988,-27.241158)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4363"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-89.121049,93.920952)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4365"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4367"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-94.722485,102.96943)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-82.873293,102.10767)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4369"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4652"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-5.3004048,186.68892)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-31.953905,192.57043)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4654"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-14.072398,176.62788)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-86.891067,108.54889)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4683"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-4"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-77.04761,93.89774)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-43"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-68.645455,107.03957)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-7"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,72.898526,88.942622)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-3"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,77.853642,99.714615)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-47"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,11.282729,122.12036)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-2"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-3.79806,116.9498)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-1"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,6.9739322,106.39325)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-5"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,82.37788,-37.520569)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-6"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,89.487395,-46.138164)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-8"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,190.95956,-97.197408)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-9"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,205.17859,-99.782686)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-55"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,196.99188,-91.165093)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-21"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,333.36531,-4.9891528)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-59"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,317.85364,-8.4361901)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-91"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,330.34915,-28.902976)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-62"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,248.05112,165.20833)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-10"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,228.01522,167.57817)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-53"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,310.74412,118.88876)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-219"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,315.26836,128.36811)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-76"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,324.31683,119.75052)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-82"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,80.008042,323.9875)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-0"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,66.866211,302.01264)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-64"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,84.963158,294.90311)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-33"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-78.124808,355.65716)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-69"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-89.758561,351.34836)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-04"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-75.97041,344.23884)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-85"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,252.7908,333.89773)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-12"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,255.42201,323.34118)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-97"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-7.2450979,-93.534929)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-14.354613,-87.933493)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4888"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4890"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,3.0960149,-77.37694)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4663-38"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-5.2105348,278.60906)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,1.1877023,286.68303)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4899"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4901"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,5.9102107,273.58188)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,9.4905691,291.25488)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4903"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4905"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,0.80724729,280.74349)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-13.664956,296.4344)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4907"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,65.205318,211.96822)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4909"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4911"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,79.068165,209.5308)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,58.197725,200.84748)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4913"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,67.517627,197.80967)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4915"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4917"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,73.00183,216.6997)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4920"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-4.0223078,126.45237)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,11.273922,111.15614)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4922"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4925"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-6.3921453,50.832982)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,9.9812833,43.077147)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4927"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4930"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,1.7945687,53.20282)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-22.110448,37.883378)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4932"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4935"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-36.114038,28.404025)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4937"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-4.2930977,-82.39376)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-114.58652,-39.891185)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4940"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4942"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,-103.00876,-31.512541)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,-106.81723,-42.785625)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4944"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,193.69441,-106.88477)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4946"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4948"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,196.92601,-81.462868)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4950"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,324.12719,127.73365)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,130.23133,171.25249)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4952"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,125.89673,178.99648)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4954"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4956"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,135.61733,179.00832)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4958"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,356.87866,254.31679)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,348.95703,261.93374)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4960"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,360.84058,263.92898)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4963"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,152.88857,251.55938)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4965"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,155.29385,243.71305)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path4968"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4970"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,161.38741,249.50193)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,186.5312,44.948128)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path3454"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#333645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3456"
+ sodipodi:cx="219.71089"
+ sodipodi:cy="215.6626"
+ sodipodi:rx="2.5516779"
+ sodipodi:ry="2.5516779"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ transform="matrix(0.58208955,0,0,0.58208955,184.39847,53.174433)" />
+ <path
+ transform="matrix(0.58208955,0,0,0.58208955,197.01168,55.797876)"
+ d="m 222.26257,215.6626 a 2.5516779,2.5516779 0 1 1 -5.10336,0 2.5516779,2.5516779 0 1 1 5.10336,0 z"
+ sodipodi:ry="2.5516779"
+ sodipodi:rx="2.5516779"
+ sodipodi:cy="215.6626"
+ sodipodi:cx="219.71089"
+ id="path3458"
+ style="color:#000000;fill:#e6e7ec;fill-opacity:0.20938625;fill-rule:evenodd;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/README Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,4 @@
+Theme "Cave"
+Copyright 2011 Guillaume Englert <genglert@hybird.org>
+Distributed under the terms of the GNU FDL licence.
+
Binary file share/hedgewars/Data/Themes/Cave/Sky.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Sky.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,1147 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="1536"
+ height="512"
+ version="1.0"
+ sodipodi:docname="Sky.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Sky.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="enable-background:new">
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="0.38462744"
+ inkscape:cx="398.754"
+ inkscape:cy="398.23357"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer1"
+ borderlayer="true"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false">
+ <sodipodi:guide
+ orientation="1,0"
+ position="512,400.38745"
+ id="guide3142" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5">
+ <linearGradient
+ id="linearGradient3906">
+ <stop
+ style="stop-color:#16171f;stop-opacity:1;"
+ offset="0"
+ id="stop3908" />
+ <stop
+ id="stop3914"
+ offset="0.5"
+ style="stop-color:#1b1c25;stop-opacity:1;" />
+ <stop
+ style="stop-color:#16171f;stop-opacity:1;"
+ offset="1"
+ id="stop3910" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3893"
+ inkscape:collect="always">
+ <stop
+ id="stop3895"
+ offset="0"
+ style="stop-color:#5f8db9;stop-opacity:1;" />
+ <stop
+ id="stop3897"
+ offset="1"
+ style="stop-color:#c9d9e8;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4835"
+ inkscape:collect="always">
+ <stop
+ id="stop4837"
+ offset="0"
+ style="stop-color:#648e37;stop-opacity:1" />
+ <stop
+ id="stop4839"
+ offset="1"
+ style="stop-color:#456226;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4741"
+ inkscape:collect="always">
+ <stop
+ id="stop4743"
+ offset="0"
+ style="stop-color:#bd897f;stop-opacity:1" />
+ <stop
+ id="stop4745"
+ offset="1"
+ style="stop-color:#a05f52;stop-opacity:0.98770493" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ id="filter4854"
+ x="-0.8109796"
+ width="2.6219592"
+ y="-0.90108979"
+ height="2.8021796"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="107.27663"
+ id="feGaussianBlur4856" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3893"
+ id="linearGradient4018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83446344,0,0,1,1260.5826,284)"
+ x1="258.55612"
+ y1="48.890488"
+ x2="258.55612"
+ y2="372.81586" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4835"
+ id="linearGradient4125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.803577,0,0,3.8049141,1282.6499,252.43687)"
+ x1="53.007065"
+ y1="82.656166"
+ x2="58.121521"
+ y2="98.983925" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4741"
+ id="linearGradient4128"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.803577,0,0,3.8049141,1282.6499,252.43687)"
+ x1="20.18494"
+ y1="66.624557"
+ x2="115.93511"
+ y2="94.281784" />
+ <filter
+ inkscape:collect="always"
+ id="filter9928"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.6334673"
+ id="feGaussianBlur9930" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter10235"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.9201177"
+ id="feGaussianBlur10237" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter3953"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.9978304"
+ id="feGaussianBlur3955" />
+ </filter>
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask3957">
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 1495.2188,188.34375 c -139.9995,50.59427 -258.3086,100.6513 -328.9688,277.5625 l 76.5312,1.96875 a 7.5066683,7.5066683 0 0 0 8.0938,7.65625 c 4.6184,-0.35807 8.9513,-1.87552 13.5312,-2.96875 4.5801,-1.09323 9.3922,-1.2257 9.0626,-1.3125 l 15.6874,4.15625 -7.0312,-14.65625 c -1.6135,-3.36196 -2.7702,-5.34182 -3.4688,-6.59375 -0.6983,-1.25193 -0.9328,-1.63986 -1.5,-3.40625 l -0.125,-0.375 -0.1562,-0.375 c -0.258,-0.58195 -0.3006,-1.35104 0.094,-3.96875 0.3526,-2.34389 1.0269,-6.1362 -0.1563,-10.4375 -0.2104,-4.27876 -1.546,-7.19555 -1.9063,-8.90625 -0.033,-0.157 -0.011,-0.0599 -0.031,-0.1875 0.6172,-0.0768 1.6047,-0.12471 3.25,0.125 2.8542,0.43318 6.3956,1.54847 9.8438,2.34375 l 8.6562,2 0.5,-8.875 c 0.3779,-6.77048 2.5726,-14.65812 4.0938,-21.0625 l 0,-0.0625 0.031,-0.0625 c 0.016,-0.0731 0.017,-0.11577 0.031,-0.1875 3.1063,1.16131 6.2557,2.43746 9.5,3.90625 3.7785,2.74467 7.651,5.45104 11.5626,8.09375 4.8106,5.87307 10.819,11.07715 18.0312,14.46875 l 14.1875,6.65625 -3.7187,-15.21875 c -1.6477,-6.76306 -3.4851,-10.85629 -4.6563,-14.875 l 0,-0.0312 c -0.4984,-2.19879 1.2102,-7.99272 -1.9375,-15.6875 l -0.094,-0.2813 -0.1562,-0.28125 c -0.8463,-1.66927 -0.6096,-5.62053 0.2188,-7.6875 l 0.625,-1.53125 -0.094,-1.625 c -0.041,-0.82682 0.2199,-2.42005 0.5,-4.71875 0.2117,-1.73762 0.4628,-4.14543 -0.25,-6.84375 0.4976,-3.86677 -0.1,-6.94384 -0.2188,-8.96875 -0.089,-1.51525 -0.067,-2.05 0.031,-2.375 0.7869,0.0369 1.8538,0.12043 3.375,0.46875 3.7724,0.86382 8.0461,2.48853 10.4375,3.3125 l 13.875,4.75 -4.25,-14 c -0.2971,-0.98564 -0.5994,-3.5259 -0.4375,-5.71875 0.1619,-2.19285 0.9965,-4.16307 0.9063,-4.03125 1.7491,-2.5211 3.4531,-4.99726 5.1562,-7.46875 2.5766,-1.73989 5.6814,-3.76573 9.1875,-6.46875 1.654,-0.28786 3.676,-0.62224 6.1563,-1.53125 2.5605,-0.93847 5.5992,-2.88814 7.75,-5.84375 0.9625,-0.61764 1.7551,-1.21084 2.375,-1.8125 0.1581,0.35839 0.2453,0.63586 0.5312,1.1875 0.2218,0.42801 0.2727,1.06629 1.8438,2.40625 4.1784,6.43084 9.4858,11.20021 14.125,15.46875 3.1502,3.91709 5.6816,5.98691 7.7187,8.71875 l 0.031,0.0312 0.031,0.0625 c 0.7461,0.96537 2.9819,4.24491 5.3125,7.46875 2.3306,3.22384 4.5595,6.35888 7.5,8.96875 l 17,15.09375 -4.6875,-22.25 c -0.7896,-3.75332 -2.3353,-10.42567 -3.1875,-16.8125 -0.4261,-3.19342 -0.6579,-6.30477 -0.5937,-8.625 0.056,-2.0302 0.5473,-3.41696 0.4687,-3.40625 2.6512,-4.31 5.2907,-8.08506 8.2813,-10.625 l 1.5937,-1.34375 0.6563,-1.96875 c 1.5889,-4.72751 5.1226,-9.26642 9.375,-13.40625 0.022,-0.0212 0.041,-0.0413 0.062,-0.0625 2.4101,-2.23789 6.5834,-3.32451 11.9376,-7.4375 0.072,0.0252 -0.062,0.0182 0.125,0.0625 0.8877,0.21055 2.907,0.87118 5.125,1.4375 2.4567,1.23962 4.6246,1.87382 6,2.34375 1.6007,0.547 2.1793,0.86602 2.75,1.4375 l 0.5,0.5 0.625,0.40625 c 1.3123,0.88246 2.5452,1.71881 3.6874,2.53125 a 7.50075,7.50075 0 0 0 11.5938,-3.40625 c 1.6613,0.39417 3.2536,0.80238 4.9375,1.1875 l 12.1875,3.90625 c -8.1469,-22.45833 -21.5092,-88.4479 -29.6562,-110.90625 z m -17.125,99.9375 0.031,0.0312 c -0.039,0.0293 -0.083,0.006 -0.125,0.0312 0.032,-0.0258 0.062,-0.0365 0.094,-0.0625 z M 1294.375,398.25 c 0.052,0.007 0.1418,0.0401 0.25,0.0937 l 0.1875,0.0937 c -0.3064,-0.0405 -0.492,-0.11601 -0.5,-0.15625 -0.01,-0.0181 0.01,-0.038 0.062,-0.0312 z"
+ id="path3959"
+ inkscape:connector-curvature="0" />
+ </mask>
+ <filter
+ inkscape:collect="always"
+ id="filter3979"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="4.2373666"
+ id="feGaussianBlur3981" />
+ </filter>
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask3983">
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 1725.5,330.4375 c -15.9672,11.45594 -63.1579,48.26276 -79.125,59.71875 l 10.0938,3 c 0.9666,0.38211 1.8952,0.73886 2.8437,1.09375 a 7.5010416,7.5010416 0 0 0 7.3437,9.4375 c 1.1238,-0.0198 2.3522,-0.0113 3.6563,0 l 0.7187,0 0.7188,-0.125 c 0.3687,-0.0692 0.6348,-0.0732 1.9062,0.28125 1.0481,0.29213 2.8347,0.85309 5.0938,1.1875 1.6075,0.58433 3.0173,1.01318 3.6562,1.21875 1.7672,5.11299 3.8768,7.67937 4.3438,9.875 0.929,4.67179 1.1605,9.17212 0.125,12.8125 l -0.5625,2 0.5625,2 c 0.7842,2.89371 0.8357,6.57423 0.625,10.71875 l 0,0.0312 c -0.02,0.45592 -0.8585,2.63718 -2.75,5.1875 -1.8915,2.55032 -4.4547,5.29044 -6.6875,8.4375 l -7.9375,11.1875 13.6875,0.625 c 2.1016,0.0997 3.4776,0.27719 5.2813,0.25 1.8034,-0.0272 3.8923,-0.41107 5.8124,-1.03125 l 0.063,0 0.062,-0.0312 c 2.4934,-0.85311 5.1732,-1.06562 9.2813,-2.3125 5.0516,-0.72453 10.8514,-1.481 16.7813,-3.9375 0.9672,-0.13083 1.7444,-0.27382 2,-0.46875 0.058,0.15314 0.1837,0.34085 0.25,0.5 0.1576,3.2164 1.4242,6.12013 2.7812,8.03125 1.2614,1.77651 2.4125,2.9363 3.375,3.875 1.0811,3.28422 2.1816,5.97495 3.0625,8.1875 0,2.38399 -0.012,4.77216 0,7.21875 10e-5,0.0106 -10e-5,0.0208 0,0.0312 -0.01,1.22541 -0.3272,3.61039 0.094,6.78125 0.3693,2.78308 2.0591,6.6635 5.25,9.1875 l -0.031,0.0312 c 1.8568,1.72159 3.2946,2.87325 3.75,3.40625 l -0.062,0.65625 0.1875,1.0625 c 0,0.025 0.3023,-0.42438 -0.875,1.09375 -0.9512,1.22655 -2.8522,3.0384 -4.4062,6.03125 -1.7746,1.61749 -2.7173,3.42322 -3.375,4.6875 -0.9115,1.75179 -1.4678,2.87871 -1.75,3.25 l -1,1.28125 L 1730,528.5 c -0.333,1.48663 -1.9277,4.00105 -2.7812,4.46875 l -0.2813,0.15625 -0.25,0.15625 c -6.2065,4.08478 -7.7634,8.97667 -8.7813,9.90625 -1.0687,0.89512 -2.0981,1.82255 -3,3.6875 -0.2203,0.45596 -0.2228,0.92062 -0.3437,1.40625 -0.034,0.0321 -0.024,0.0278 -0.062,0.0625 l -11.6562,10.46875 15.4687,2.5 c 1.9059,0.31017 1.693,0.53684 4.0313,1.34375 1.88,0.64882 4.8476,0.57522 7.75,0.0312 4.0824,0.0368 8.1571,-0.0153 12.1874,-0.125 2.2643,0.40346 4.4683,0.83554 6.5626,1.3125 -1.8635,4.89701 -3.8715,10.59231 -6.4688,14.875 l -4.625,7.59375 8.2812,3.28125 c 2.7975,1.09983 5.6581,1.97034 7.6563,2.9375 0.3026,0.14647 0.3361,0.20908 0.5625,0.34375 -1.0574,0.80588 -2.3952,2.08049 -3.9688,4.03125 -3.166,2.60989 -4.6096,5.76039 -5.4687,7.53125 -0.9447,1.9473 -1.1925,2.16398 -1.2813,2.21875 l -0.3437,0.1875 -0.3125,0.25 c -1.145,0.88802 -1.3487,0.98956 -2.375,1.5 -1.0263,0.51044 -2.8037,1.32063 -5.5,2.875 l -14.0312,8.09375 15.125,5.4375 c -0.3299,0.004 2.691,2.12077 5.0937,4.78125 2.5629,2.83784 4.7481,5.83763 7.9687,8.4375 a 7.50075,7.50075 0 0 0 10.9376,-0.9375 l 60.1874,47.09375 C 1869.3553,522.78082 1819.4398,406.57752 1725.5,330.4375 z m -43.625,74.4375 0.031,0 c 0.01,0.0349 0.021,0.0591 0.031,0.0937 -0.016,-0.0391 -0.05,-0.0535 -0.062,-0.0937 z m 73.6562,160.84375 0.5313,0.0625 c 0.3257,0.0462 0.051,0.21383 -0.5313,-0.0625 z"
+ id="path3985"
+ inkscape:connector-curvature="0" />
+ </mask>
+ <filter
+ inkscape:collect="always"
+ id="filter4005"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.96481"
+ id="feGaussianBlur4007" />
+ </filter>
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask4009">
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:15;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 1193.375,636.28125 c -14.4683,22.45801 -59.4693,85.22935 -73.9375,107.6875 137.1703,63.97399 267.7009,82.07583 450.4375,82.15625 l -36.6875,-52.84375 a 7.50075,7.50075 0 0 0 1.125,-11.40625 c -3.2897,-3.71086 -7.5704,-6.63788 -11.6563,-10 -4.0857,-3.36212 -7.519,-7.47048 -7.5312,-7.5 l -6.1875,-15.0625 -7.4063,14.5 c -1.886,3.68572 -2.8494,6.0412 -3.5,7.53125 -0.6504,1.49005 -0.9075,2.0379 -2.125,3.78125 l -0.2187,0.3125 -0.1875,0.34375 c -0.4801,0.87248 -1.3674,1.54425 -3.9688,2.96875 -2.34,1.28151 -6.0116,3.18025 -8.9062,7 -3.5751,2.97872 -5.2627,6.1424 -6.625,7.71875 -0.4964,0.57438 -0.6046,0.60822 -0.7812,0.75 -0.368,-0.26985 -1.4762,-1.20052 -2.8438,-3.71875 -1.5891,-2.92617 -3.001,-6.88594 -4.5938,-10.4375 l -3.6562,-8.125 -7.4062,5 c -6.3895,4.32207 -14.9071,7.69343 -21.5938,10.65625 l -0.062,0.0312 -0.062,0.0312 c -0.4247,0.19869 -0.6711,0.41867 -1.0312,0.625 -1.2335,-3.95529 -2.3277,-8.03734 -3.3126,-12.375 -0.1105,-5.29577 -0.3286,-10.62679 -0.625,-15.96875 1.9704,-8.18215 2.5448,-16.95883 0.7188,-25.5625 l -3.2812,-15.375 -9.9063,12.21875 c -4.8776,6.01603 -7.2806,10.41546 -10.125,14.25 -1.8338,2.16819 -8.0217,4.55864 -12.5313,12.21875 l -0.1562,0.28125 -0.125,0.25 c -1.0801,2.22899 -4.9725,4.75518 -7.5625,5.46875 l -1.5625,0.4375 -1.25,1.0625 c -0.8168,0.68762 -2.4631,1.56119 -4.6562,2.84375 -1.6772,0.98074 -3.8984,2.35123 -5.7188,4.71875 -3.7426,2.11404 -6.1093,4.73842 -7.9062,6.28125 -2.1528,1.84813 -2.4526,1.99941 -3.4688,1.875 l -1.0625,-0.125 -1.0625,0.1875 c -0.7341,0.12101 -0.4348,0.19667 -1.5312,-0.65625 -1.0967,-0.85292 -2.7577,-2.79566 -5.0626,-5.0625 l -0.031,0.0312 c -3.075,-3.72059 -7.6827,-5.48592 -11.1562,-5.78125 -3.8806,-0.32993 -7.009,0.21828 -8.875,0.3125 -0.01,4e-4 -0.024,-3.8e-4 -0.031,0 -3.4643,0.14825 -6.8866,0.34419 -10.2813,0.5 -3.4079,-1.15165 -7.3531,-2.62155 -12.25,-3.9375 -1.3974,-1.29868 -3.0863,-2.9078 -5.5624,-4.5 -2.5167,-1.61825 -6.1987,-2.9516 -10.1563,-2.8125 -1.647,-0.60554 -3.1496,-1.00251 -4.3437,-1.09375 0.01,-0.0107 -0.01,-0.0205 0,-0.0312 0.3522,-0.67739 0.7089,-1.23607 1.2187,-2.3125 0.223,-0.47079 0.7175,-0.86851 0.8125,-3.125 2.8603,-7.93048 3.554,-15.77531 4.2188,-22.8125 1.402,-5.5293 1.4881,-9.18777 2.5937,-13.03125 l 0,-0.0625 0.031,-0.0625 c 0.6661,-2.47603 0.9495,-4.92566 0.875,-7.15625 -0.075,-2.23059 -0.347,-4.09954 -0.625,-7 l -1.3126,-13.6875 -10.8124,8.5 c -3.884,3.05691 -7.4513,6.75982 -10.9376,9.625 -3.4861,2.86518 -6.6921,4.4817 -8.25,4.625 l -0.031,0 -0.031,0 c -5.6755,0.56126 -10.9257,0.7669 -15.375,-0.21875 l -2.0313,-0.4375 -2,0.65625 c -5.4969,1.85715 -12.0332,1.76454 -18.6875,0.75 -3.9471,-0.67647 -7.8259,-3.80564 -15.25,-5.75 0.012,-0.0459 0.075,-0.047 -0.125,-0.5 -0.4745,-1.07567 -1.203,-3.39461 -2.2812,-5.875 -0.5394,-2.86656 -1.389,-5.15385 -1.9063,-6.71875 -0.6088,-1.84188 -0.7746,-2.72261 -0.625,-3.8125 l 0.094,-0.71875 -0.031,-0.71875 c -0.1005,-1.76637 -0.2008,-3.44519 -0.25,-5.03125 a 7.50075,7.50075 0 0 0 -7.8438,-7.375 7.50075,7.50075 0 0 0 -1.6874,0.28125 c -0.9534,-2.09391 -1.7787,-4.10161 -2.7188,-6.1875 l -4.75,-13.5 z"
+ id="path4011"
+ inkscape:connector-curvature="0" />
+ </mask>
+ <filter
+ inkscape:collect="always"
+ id="filter4153"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.8649205"
+ id="feGaussianBlur4155" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter4210"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="5.8236435"
+ id="feGaussianBlur4212" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter4214"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="5.8236073"
+ id="feGaussianBlur4216" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter3978-44"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.86059225"
+ id="feGaussianBlur3980-0" />
+ </filter>
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask4019">
+ <path
+ sodipodi:nodetypes="ccccccccccccccccsccscccccccccccsscccsccsccccccsscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4021"
+ d="m -735.375,-54.5625 0,87.3125 c 0.23961,0.147203 0.48006,0.289884 0.71875,0.4375 0.1681,0.10399 0.3318,0.20748 0.5,0.3125 0.608,0.38 1.2065,0.76363 1.8125,1.15625 0.7726,0.5003 1.5459,1.01285 2.3125,1.53125 0.081,0.0548 0.1691,0.10132 0.25,0.15625 12.9355,8.78748 24.7579,19.91145 28,26.9375 10.6597,10.41379 11.63805,65.5118 30.03125,37.46875 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 5.0744,-27.8113 70.21645,-22.58355 85.46875,-5.0625 15.23735,28.65935 31.1241,88.20724 38.625,88.53125 10.3542,1.00226 28.61405,-43.09289 33.90625,-67.03125 4.6236,-16.57245 5.5708,-40.82085 28.25,-33.78125 29.3283,1.13045 49.87855,-0.3054 78.46875,5.625 29.8912,0.0265 37.8653,49.35183 45.875,71.78125 1.1091,10.15205 15.85195,34.08488 20.34375,34.5 3.5761,0.33049 11.75675,-40.14458 17.71875,-52.65625 2.6592,-5.58112 3.4277,-13.96937 3.9375,-15.34375 7.8424,-16.55259 12.4767,-37.264242 40.78125,-36.75 28.93087,0.525621 31.85318,15.453274 39.69632,24.913451 3.83122,16.073884 11.97764,38.69686 23.39743,50.211549 2.93605,1.88772 6.58306,0.29269 11.46875,-7.15625 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 3.24258,-15.280045 22.02915,-18.883908 35.0936,-19.4375 19.855864,-0.815715 42.229089,5.017493 50.375,14.375 15.23735,28.65935 31.124,88.20724 38.625,88.53125 10.354,1.00226 28.61405,-43.09289 33.90625,-67.03125 4.62365,-16.57245 5.5708,-40.82085 28.25,-33.78125 29.3283,1.13045 59.5348,-3.0554 88.125,2.875 29.89125,0.0265 36.9903,33.25808 45,55.6875 1.10915,10.15206 4.47687,25.30363 8.96875,25.71875 3.57606,0.33049 14.35085,-12.51958 20.3125,-25.03125 2.6593,-5.58111 3.4275,-13.96938 3.9375,-15.34375 7.84225,-16.5526 14.17655,-41.3178 36.875,-34.8125 30.7202,1.0039 61.9323,-2.4082 92.21875,2.59375 15.1016,2.10134 21.01425,44.5313 32.6875,44.71875 2.38985,0.0384 5.03305,-4.245 8.03125,-8.1875 6.21635,-25.09005 20.49085,-54.18715 51,-36.875 37.1824,-0.8024 46.98055,38.58965 47.28125,69.5625 0.0897,9.23319 15.5783,36.81646 20.875,36.6875 0.54795,-0.0134 0.97995,-0.34262 1.28125,-1 3.56765,-27.07123 -1.0882,-56.69275 14.15625,-80.375 16.2351,-23.236 33.71805,-52.79755 65.65625,-45.3125 22.7614,2.85979 53.37765,-6.50708 72.625,6.84375 0.26571,0.17295 0.52563,0.35022 0.78125,0.53125 0.22291,0.16454 0.43661,0.32894 0.65625,0.5 0.54752,0.42642 1.09847,0.87564 1.625,1.34375 0.38399,0.34139 0.75261,0.69815 1.125,1.0625 0.13823,0.13525 0.26965,0.26778 0.40625,0.40625 0.0847,0.0909 0.16668,0.1893 0.25,0.28125 4.0947,4.51899 6.51875,10.31468 8.46875,16.21875 0.045,0.13478 0.081,0.27138 0.125,0.40625 0.6867,2.28959 1.4037,4.65938 2.1875,7.09375 0.092,0.30004 0.18825,0.60855 0.28125,0.90625 0.4743,1.46174 0.96495,2.90855 1.46875,4.40625 0.8044,2.39267 1.6312,4.799 2.5,7.25 1.5457,4.36088 3.186,8.79268 4.875,13.15625 0.1785,0.46166 0.35145,0.91475 0.53125,1.375 0.1148,0.29385 0.22845,0.58181 0.34375,0.875 0.662,1.68433 1.3264,3.3457 2,5 0.5199,1.2775 1.0381,2.52885 1.5625,3.78125 0.6418,1.5322 1.2924,3.01578 1.9375,4.5 0.044,0.10191 0.081,0.21085 0.125,0.3125 0.7386,1.69541 1.48135,3.35345 2.21875,4.96875 0.4116,0.90196 0.80905,1.81469 1.21875,2.6875 0.04,0.0859 0.085,0.16438 0.125,0.25 0.4229,0.89776 0.86155,1.76185 1.28125,2.625 0.8283,1.70294 1.6276,3.32602 2.4375,4.875 0.4594,0.87853 0.9237,1.77113 1.375,2.59375 0.076,0.13898 0.14265,0.26894 0.21875,0.40625 0.2708,0.48939 0.5453,0.97 0.8125,1.4375 0.1242,0.217 0.2518,0.44413 0.375,0.65625 0.2204,0.37895 0.4697,0.76209 0.6875,1.125 0.3376,0.56258 0.6693,1.13408 1,1.65625 0.039,0.0619 0.086,0.12621 0.125,0.1875 0.2917,0.45778 0.5891,0.91945 0.875,1.34375 0.2731,0.40499 0.5455,0.78326 0.8125,1.15625 0.1477,0.20624 0.2917,0.42885 0.4375,0.625 0.017,0.0224 0.0465,0.0402 0.0625,0.0625 0.2892,0.38744 0.56275,0.74762 0.84375,1.09375 0.073,0.0905 0.14575,0.19364 0.21875,0.28125 0.1478,0.17793 0.292,0.33421 0.4375,0.5 0.2542,0.28942 0.5039,0.56119 0.75,0.8125 0.097,0.0994 0.18545,0.18795 0.28125,0.28125 0.2291,0.22263 0.466,0.43791 0.6875,0.625 0.071,0.0595 0.14875,0.13166 0.21875,0.1875 0.1591,0.12722 0.345,0.26732 0.5,0.375 0.2295,0.15843 0.4677,0.29216 0.6875,0.40625 0.092,0.0474 0.19095,0.0855 0.28125,0.125 0.033,0.0145 0.0607,0.0491 0.0937,0.0625 0.068,0.0276 0.15215,0.0396 0.21875,0.0625 0.086,0.0296 0.1654,0.0721 0.25,0.0937 0.043,0.011 0.082,0.0225 0.125,0.0312 0.2637,0.0546 0.53635,0.0576 0.78125,0.0312 0.1363,-0.0836 0.2574,-0.18498 0.375,-0.34375 3.6485,-4.92185 -1.37595,-45.10447 0.71875,-66.65625 -3.5365,-30.2009 10.89,-45.949 41.8125,-34.375 0.5,-0.0326 1.0291,-0.04825 1.5625,-0.03125 0.5339,0.017 1.0602,0.0606 1.625,0.125 0.075,0.008 0.14305,0.02195 0.21875,0.03125 0.4972,0.0614 1.01235,0.12293 1.53125,0.21875 0.074,0.0137 0.14375,0.01685 0.21875,0.03125 0.5253,0.1011 1.04845,0.24069 1.59375,0.375 0.1494,0.0368 0.2867,0.0858 0.4375,0.125 0.4806,0.12469 0.97445,0.25762 1.46875,0.40625 0.5887,0.17709 1.17525,0.35302 1.78125,0.5625 0.054,0.0188 0.10175,0.0434 0.15625,0.0625 0.241,0.0841 0.47525,0.16097 0.71875,0.25 0.4337,0.15848 0.8715,0.32649 1.3125,0.5 0.2833,0.11146 0.55785,0.22629 0.84375,0.34375 0.4058,0.16648 0.80785,0.32184 1.21875,0.5 0.3288,0.14257 0.63685,0.28772 0.96875,0.4375 0.378,0.17053 0.7433,0.35168 1.125,0.53125 0.3748,0.17642 0.7472,0.34645 1.125,0.53125 0.3376,0.16506 0.6603,0.3285 1,0.5 0.4277,0.21597 0.85055,0.43049 1.28125,0.65625 0.2996,0.15699 0.60555,0.30721 0.90625,0.46875 0.4701,0.25248 0.93405,0.51817 1.40625,0.78125 0.2605,0.14506 0.52015,0.28935 0.78125,0.4375 0.5142,0.29203 1.01565,0.60285 1.53125,0.90625 0.2181,0.12832 0.43815,0.24474 0.65625,0.375 0.5611,0.33486 1.1265,0.6843 1.6875,1.03125 0.1681,0.10399 0.3318,0.20748 0.5,0.3125 0.608,0.38 1.2065,0.76363 1.8125,1.15625 0.7726,0.5003 1.5459,1.01285 2.3125,1.53125 0.081,0.0548 0.1691,0.10132 0.25,0.15625 12.9355,8.78748 24.7579,19.91145 28,26.9375 10.6597,10.41379 11.63805,65.5118 30.03125,37.46875 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 5.0744,-27.8113 70.21645,-22.58355 85.46875,-5.0625 15.23735,28.65935 31.12405,88.20724 38.62495,88.53125 10.3542,1.00226 28.6141,-43.09289 33.9063,-67.03125 4.6236,-16.57245 5.5708,-40.82085 28.25,-33.78125 22.2999,0.859541 45.0938,-1.340159 67.3125,0.15625 l 0,-80.25 c -632.84442,-0.97735 -1265.0726,0.155152 -1897.2498,-0.0936 z"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3978-44);enable-background:accumulate" />
+ </mask>
+ <filter
+ inkscape:collect="always"
+ id="filter3978-0"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.86059225"
+ id="feGaussianBlur3980-8" />
+ </filter>
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask4048">
+ <path
+ sodipodi:nodetypes="cccccccccscccccccccccccccccccccscccccccccsscccsccscccccsccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4050"
+ d="m -608.65625,279.59375 c -0.5481,0.0134 -1.0111,0.31137 -1.3125,0.96875 -3.5677,27.07123 1.1196,56.69275 -14.125,80.375 -16.2349,23.236 -33.71805,52.8288 -65.65625,45.34375 -13.09429,-1.64519 -28.79722,0.77097 -43.4375,0.5625 l 0,122.59375 c 631.61566,-0.17316 1262.85162,-0.0943 1895.0625,0.125 l 0,-141.6875 c -24.9897,0.17052 -50.1205,1.64601 -74.6562,-2.40625 -15.1021,-2.10134 -21.0456,-44.50005 -32.7188,-44.6875 -2.3899,-0.0384 -5.0337,4.21375 -8.0312,8.15625 -6.2165,25.09004 -20.491,54.2184 -51.00005,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.09,-9.23319 -15.5783,-36.81646 -20.875,-36.6875 -0.5481,0.0134 -1.0111,0.31137 -1.3125,0.96875 -3.5677,27.07123 1.1196,56.69275 -14.125,80.375 -16.2349,23.236 -33.71805,52.8288 -65.65625,45.34375 -22.6658,-2.84778 -53.14505,6.41782 -72.40625,-6.6875 -0.08,-0.0546 -0.1703,-0.10086 -0.25,-0.15625 -0.5046,-0.32835 -0.9689,-0.7055 -1.4375,-1.0625 -0.5474,-0.42642 -1.06725,-0.87564 -1.59375,-1.34375 -0.3474,-0.30886 -0.69315,-0.64112 -1.03125,-0.96875 -0.2527,-0.24501 -0.5027,-0.49425 -0.75,-0.75 -4.1151,-4.54166 -6.51355,-10.40907 -8.46875,-16.34375 -11.17126,-22.1624 -16.24575,-57.95453 -34.0625,-78.09375 -1.21496,-1.3067 -2.54776,-2.36339 -4.31235,-2.4997 -1.3628,0.83621 -1.7689,5.52583 -1.75,12.25 0,1.34483 0.0305,2.78766 0.0625,4.28125 0.3359,14.93588 1.94515,36.56438 0.59375,50.46875 3.5363,30.2009 -10.88995,45.98025 -41.8125,34.40625 -11.60347,-0.20278 -22.42737,-6.9153 -31.7812,-13.1561 -0.0811,-0.0548 -0.16899,-0.10122 -0.25,-0.15625 -12.9362,-8.78766 -24.75779,-19.9424 -28,-26.96875 -10.65985,-10.41379 -11.6693,-65.48055 -30.0625,-37.4375 -13.26995,21.18524 -30.19675,38.207 -44.03125,57.78125 -5.07435,27.8113 -70.2163,22.5523 -85.46875,5.03125 -15.23735,-28.65935 -31.124,-88.20724 -38.625,-88.53125 -10.354,-1.00227 -28.61405,43.09289 -33.90625,67.03125 -4.62365,16.57245 -5.60205,40.8521 -28.28125,33.8125 -29.3283,-1.13045 -59.50355,3.02415 -88.09375,-2.90625 -29.892,-0.0269 -37.02155,-33.22683 -45.03125,-55.65625 -1.10915,-10.15206 -4.47688,-25.33488 -8.96875,-25.75 -3.57606,-0.33049 -14.35087,12.51958 -20.3125,25.03125 -2.65931,5.58112 -3.4275,13.96938 -3.9375,15.34375 -7.84225,16.55259 -14.17655,41.3178 -36.875,34.8125 -30.7202,-1.0039 -61.90105,2.4082 -92.1875,-2.59375 C 48.11714,383.36741 42.17323,340.9687 30.5,340.78125 c -2.38989,-0.0384 -5.03305,4.21375 -8.03125,8.15625 -6.21635,25.09004 -20.49085,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.0896,-9.23319 -22.728056,-55.01589 -28.02478,-54.88693 -17.07445,-0.007 -17.93483,108.60162 -38.51177,127.81729 -16.2351,23.236 -9.9938,14.805 -35.4322,17.06964 -22.76142,-2.8598 -67.64988,4.61687 -86.89721,-8.73397 -24.97843,-19.68701 -34.18877,-117.09322 -47.45381,-116.06221 -10.11765,1.70414 -15.14478,40.0682 -17.00994,61.05907 -2.16389,24.35277 -10.88672,46.90362 -26.6558,50.59067 -31.39495,2.56078 -52.78532,4.10972 -93.01399,-7.66581 -15.1019,-2.10134 -21.04555,-44.50005 -32.71875,-44.6875 -2.3899,-0.0384 -5.03355,4.21375 -8.03125,8.15625 -6.2165,25.09004 -20.49095,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.09,-9.23319 -15.5783,-36.81646 -20.875,-36.6875 z"
+ mask="none"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3978-0);enable-background:accumulate" />
+ </mask>
+ <filter
+ inkscape:collect="always"
+ id="filter4167"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.0363644"
+ id="feGaussianBlur4169" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3906"
+ id="linearGradient4173"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5,0,0,0.5,-407.40987,418.85233)"
+ x1="1275.9532"
+ y1="-10.26893"
+ x2="1275.9532"
+ y2="1059.7892" />
+ <filter
+ inkscape:collect="always"
+ id="filter4202">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.62317933"
+ id="feGaussianBlur4204" />
+ </filter>
+ </defs>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="outside"
+ style="display:inline"
+ transform="translate(0,-512)">
+ <g
+ id="g10152"
+ style="filter:url(#filter10235)"
+ transform="matrix(0.5,0,0,0.5,100.59013,418.85233)">
+ <rect
+ style="color:#000000;fill:url(#linearGradient4018);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3891"
+ width="375.3299"
+ height="296.39072"
+ x="1319.1602"
+ y="335.63043" />
+ <g
+ style="filter:url(#filter9928)"
+ id="g9898">
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ id="path4728"
+ d="m 1677.3449,413.19657 c -6.2517,0.10888 -12.5084,0.33358 -18.6963,0.7609 -1.9922,0.59786 -4.0297,0.85168 -6.0871,1.08699 -40.0351,0.4725 -80.0777,-1.38832 -120.1127,-0.76089 4.0853,17.33935 35.3798,5.63448 34.6751,26.63131 -15.1968,6.64937 -34.1575,0.76611 -50.8713,2.93488 -25.6539,0.007 -51.4138,-0.0971 -77.0677,0 -3.1292,17.23643 25.2124,9.01512 35.3272,16.41359 28.2538,1.32296 56.6799,0.21357 85.0028,0.54349 l 127.0694,0 c 18.31,-9.1076 -21.1105,-10.56863 -26.1965,-16.41358 1.8306,-13.49506 29.3299,-11.32159 41.9579,-14.5657 19.1147,-5.72186 13.4779,-16.49881 -4.1959,-16.66566 -6.9455,-0.0588 -13.8816,-0.0859 -20.8049,0.0348 z"
+ style="fill:#fbfdfe;fill-opacity:0.78688528;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4852"
+ d="m 1704.1936,422.21861 c -6.2725,0.1134 -12.5084,0.33358 -18.6963,0.7609 -1.9922,0.59786 -14.7909,3.02566 -16.8483,3.26097 -40.0351,0.47251 -71.1643,-4.5406 -111.1994,-3.91317 16.5942,8.53882 37.254,7.64791 62.6108,15.43529 2.5664,0.78817 -25.634,7.89574 -26.0878,12.06562 -15.1968,6.64937 -34.1575,0.76611 -50.8713,2.93488 -25.6539,0.007 -51.4138,-0.0971 -77.0677,0 -0.312,1.7195 -0.2644,3.20316 0,4.45667 3.3197,0.55528 11.219,-0.26888 13.37,1.30439 28.2537,1.32296 51.7884,2.06153 80.1113,2.39138 l 121.6345,-1.84789 c 4.3587,-2.16807 8.0037,-1.14549 7.0654,-2.60878 -1.7217,-0.66131 -0.2883,-2.25085 -0.9783,-3.04358 -9.4616,-0.54207 -19.6369,-6.8029 -27.827,-11.19602 1.8307,-13.49505 30.9604,-10.99549 43.5884,-14.2396 3.1993,0.0647 6.432,0.007 9.6742,0 l 0,-5.76106 c -2.8341,0.0104 -5.6505,-0.0511 -8.4785,0 z"
+ style="fill:#bad3f2;fill-opacity:0.78688528;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f4f8fd;fill-opacity:0.78688528;stroke:none"
+ d="m 1453.2367,501.56335 c 0.668,2.7538 -16.3159,8.37753 -32.0763,5.20587 -17.8236,-3.58687 -27.7025,2.97963 -46.05,1.71247 -0.9597,-0.28801 -28.6093,-0.0844 -49.7482,0.16863 l 1.7463,-36.69332 c 23.6625,1.60164 48.2853,2.91912 65.1225,5.83231 14.1207,2.4432 -15.372,5.17111 -16.2471,10.37013 -1.5379,9.13704 22.1895,6.19504 31.5502,8.59978 15.0849,1.82551 44.5802,0.17712 45.7026,4.80413 z"
+ id="path4823"
+ sodipodi:nodetypes="cscccsscs"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccscsccc"
+ id="path4872"
+ d="m 1327.3965,507.32475 c 20.137,-0.44993 46.7404,-1.08666 47.7279,-0.79031 10.6025,0.73226 18.3922,-1.11164 26.5061,-2.14026 -6.6117,-0.73761 38.5807,2.72215 39.3261,-1.70602 0.2543,-1.51108 -48.6638,-0.87475 -45.348,-2.02201 -10.235,-0.55087 -32.1569,-4.13799 -31.059,-10.66061 0.1342,-0.79744 16.5642,-10.00934 20.9529,-7.21175 -16.6721,1.78458 -38.5097,3.54144 -57.6703,2.07335 l -0.4357,22.45761 z"
+ style="color:#000000;fill:#ccdef6;fill-opacity:0.78688528;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient4128);fill-opacity:1;stroke:none"
+ d="m 1572.7915,451.51203 c -3.2912,0.19653 -6.059,2.51803 -6.1808,6.7845 -5.1963,5.95599 -7.2398,15.95375 -16.0463,18.53081 -7.352,2.09109 -17.0454,2.38018 -20.2065,-4.9618 -7.4529,-9.39868 -12.4079,3.09568 -17.235,7.49332 -7.2196,9.40807 -13.8314,19.33222 -17.2349,30.27714 -4.1901,9.19561 -12.6204,14.61864 -23.6535,16.40433 -9.0076,3.86145 -10.1628,14.5009 -18.3047,19.54343 -8.3406,2.27803 -14.8551,7.1017 -23.2969,9.11352 -8.655,3.4055 -17.8139,5.21485 -25.4365,-1.62019 -4.3877,-7.09161 -18.0268,-11.25992 -18.5424,0.10122 -1.0526,7.75803 -10.1799,12.04307 -18.6613,11.44253 -8.0699,1.00637 -15.3892,-3.86092 -23.5347,-2.12647 -3.8872,0.0376 -7.7697,-0.22331 -11.6484,-0.50631 l 0,54.1748 362.2907,0 0,-101.26129 c -4.6323,-5.48109 -10.1509,-10.48351 -15.9275,-15.08794 -8.458,-4.8699 -11.7071,7.51763 -13.5502,12.55641 -0.9783,8.08976 -6.9835,16.53359 -16.5218,17.92323 -9.4946,3.71025 -18.1328,-3.82043 -20.5631,-11.13873 -3.2079,-6.64255 -11.376,-12.74626 -11.2919,-20.35354 -4.2521,-8.23745 -14.055,-13.34256 -18.1858,-21.87241 -6.2569,-7.28869 -9.9273,-16.17417 -18.6613,-21.77119 -2.1798,-2.63994 -5.0473,-3.79824 -7.6072,-3.6454 z"
+ id="path4721" />
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path7550"
+ d="m 1594.875,509.03125 c -7.6119,7.3962 -5.972,30.88537 -16.119,28.70547 -7.1346,-1.23749 -26.4517,-28.37093 -33.1678,-31.06176 -1.0727,7.04665 -0.8418,17.82384 -1.9956,24.87646 -1.038,7.53463 -2.7334,18.62806 -8.3012,24.16054 -6.9648,7.57979 -18.259,7.08728 -28.2125,5.38177 -4.204,-0.56709 -8.2771,-1.80816 -12.2655,-3.21898 -2.3872,11.22141 -10.7308,21.78504 -22.1814,24.56124 -5.0293,1.71325 -9.885,3.94946 -15.0681,5.21991 -8.8412,4.28656 -18.8525,7.40745 -28.7253,5.34282 -6.6577,-1.23568 -13.0261,-4.17692 -18.1497,-8.62407 -4.3789,8.04167 -11.9685,14.42349 -21.0046,16.42479 -8.3066,2.17722 -17.0871,1.52214 -25.3079,-0.73729 -3.1853,-1.04756 -5.9767,0.10196 -9.0226,-0.0999 -6.7246,0.3281 -13.484,0.24927 -20.1826,0.93258 -2.4455,1.30984 -7.3581,-0.39959 -8.4947,1.62884 0.2819,12.15764 0.5638,24.31529 0.8457,36.47293 126.7812,-0.28609 253.5624,-0.57219 380.3436,-0.85828 -3.3193,-30.18165 -10.5386,-76.28779 -13.8579,-106.46944 0.4402,15.47406 -13.0171,28.65882 -22.1371,34.01349 -13.2805,5.50419 -29.8074,4.87508 -41.4235,-4.24493 -3.192,-2.66829 -6.1042,-5.55991 -9.571,-7.87541 -5.7298,-5.27372 -9.8824,-12.13266 -13.3491,-18.98169 -1.6764,-2.61199 -1.7756,-5.93035 -3.225,-8.52239 -4.0201,-5.12532 -7.6247,-10.70793 -9.4272,-17.02672 z"
+ style="fill:#75483e;fill-opacity:0.28158845;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient4125);fill-opacity:1;stroke:none"
+ d="m 1678.5785,559.56478 c -0.903,0.13357 -1.3917,1.13663 -0.7132,3.686 -1.2324,8.94997 3.9593,24.13582 -6.6562,28.18017 -7.6534,-0.63641 -9.8492,-20.54861 -17.5916,-11.89038 0.9935,5.36279 -0.901,18.93743 -7.8448,10.58244 -5.7071,-5.60332 -9.2949,-14.91399 -18.899,-13.31721 -6.0479,1.62934 -14.8408,-7.22497 -17.5916,-5.58846 5.2579,6.37332 -1.0514,18.09569 -9.1523,11.77145 -7.1743,-5.30814 -12.2777,-13.02986 -21.6329,-14.98185 -7.7358,-5.8371 -15.6284,-0.89388 -13.0748,8.20434 -1.182,6.15043 0.4831,14.22419 -8.4392,13.19831 -5.7367,1.2206 -12.6785,-2.57626 -14.3822,4.39942 -6.8647,4.33158 -11.0929,-2.99989 -12.0051,-8.32323 -5.7434,-2.58812 -15.1377,-1.67961 -13.3125,-10.70133 -5.7244,-6.87091 -11.758,2.96462 -14.5011,7.49092 -1.9691,7.29294 -10.5083,9.57208 -16.7596,6.89641 -6.675,-4.31566 -14.942,-3.1311 -22.1082,-6.5397 -6.996,-0.21635 -14.0337,-9.09964 -20.4443,-4.39945 -6.145,4.56586 7.648,8.65702 -0.5943,12.00927 -9.1441,2.08434 -18.1856,-2.74267 -26.625,-5.58847 -8.5199,-1.80642 -18.6353,-4.4576 -25.3176,2.97259 -6.8948,6.87358 -17.8517,10.2163 -26.9816,6.0641 -4.4179,-5.59622 -13.6758,-3.57877 -16.5218,3.84367 -4.8542,-0.4045 -9.4095,0.99683 -14.62,-3.24915 l 0,37.87825 362.2907,0 0,-59.87543 c -3.4508,-3.23298 -7.3035,-5.96872 -11.0541,-8.79886 -1.1773,-1.83394 -3.9627,-4.14657 -5.4677,-3.92382 z"
+ id="path4825"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#b7d696;fill-opacity:0.23104691;stroke:none"
+ d="m 1678.5785,559.56478 c -0.903,0.13357 -1.3917,1.13663 -0.7132,3.686 -1.2324,8.94997 3.9593,24.13582 -6.6562,28.18017 -7.6534,-0.63641 -9.8492,-20.54861 -17.5916,-11.89038 0.683,3.6869 0.014,11.30535 -2.7338,12.9605 4.1381,2.7659 6.9961,7.89946 10.6976,11.53367 6.9439,8.35498 8.8383,-5.21966 7.8449,-10.58244 7.7423,-8.65823 9.9381,11.25394 17.5915,11.89037 10.6155,-4.04434 5.4238,-19.2302 6.6563,-28.18016 -0.6786,-2.54937 -0.19,-3.55233 0.7131,-3.686 0.2188,-0.0313 0.4494,0.0536 0.7132,0.11896 l 0,-1.30794 c -3.4508,-3.23301 -7.3035,-5.96875 -11.0541,-8.79886 -1.1773,-1.83394 -3.9627,-4.14661 -5.4677,-3.92382 z m -107.0944,5.94517 c -4.6739,0.17427 -7.8176,4.4463 -6.062,10.70133 -1.182,6.15043 0.4831,14.22419 -8.4392,13.19831 -5.7367,1.2206 -12.6785,-2.57626 -14.3822,4.39942 -4.2551,2.68495 -7.5606,0.88121 -9.6278,-2.14025 0.6539,5.90534 8.4058,5.46415 13.4313,7.72871 0.9123,5.32338 5.1405,12.65485 12.0051,8.32327 1.7038,-6.97568 8.6455,-3.17882 14.3822,-4.39945 8.9223,1.02591 7.2572,-7.04789 8.4392,-13.19828 -2.5536,-9.09822 5.339,-14.04144 13.0748,-8.20434 9.3552,1.95199 14.4586,9.67367 21.6329,14.98185 8.1009,6.32421 14.4102,-5.39816 9.1523,-11.77145 2.7509,-1.63654 11.5438,7.2178 17.5916,5.58846 1.2881,-0.21427 2.4745,-0.26192 3.5658,-0.11896 -0.1593,-0.17427 -0.3106,-0.27723 -0.4754,-0.47563 -5.7071,-5.60332 -9.2949,-14.91399 -18.899,-13.31721 -6.0479,1.62938 -14.8408,-7.22497 -17.5916,-5.58846 5.2579,6.37332 -1.0514,18.09569 -9.1523,11.77145 -7.1743,-5.30814 -12.2777,-13.02986 -21.6329,-14.98185 -2.4174,-1.82406 -4.8883,-2.57623 -7.0128,-2.49695 z m -58.48,6.89644 c -4.2406,0.0797 -8.1648,6.47426 -10.2221,9.86898 -1.9691,7.29294 -10.5083,9.57208 -16.7596,6.89641 -6.675,-4.31566 -14.942,-3.1311 -22.1082,-6.5397 -6.996,-0.21635 -14.0337,-9.09964 -20.4443,-4.39945 -6.145,4.56586 7.648,8.65702 -0.5943,12.00927 -9.1441,2.08434 -18.1856,-2.74267 -26.625,-5.58847 -8.5199,-1.80642 -18.6353,-4.4576 -25.3176,2.97259 -6.8948,6.87358 -17.8517,10.2163 -26.9816,6.0641 -4.4179,-5.59622 -13.6758,-3.61755 -16.5218,3.80489 -4.8542,-0.40447 -9.4095,1.03561 -14.62,-3.21037 l 0,21.87825 15.8086,0 0,-7.96656 c 5.2105,4.24602 9.7659,2.92483 14.62,3.32933 2.846,-7.42244 12.1039,-9.52004 16.5218,-3.92385 9.1299,4.15224 20.0869,0.80949 26.9816,-6.06406 6.6823,-7.43023 16.7978,-4.77901 25.3176,-2.97259 8.4394,2.8458 17.4809,7.67281 26.625,5.58847 8.2423,-3.35229 -5.5507,-7.44341 0.5943,-12.00927 6.4106,-4.70019 13.4483,4.18292 20.4443,4.39945 7.1662,3.40856 15.4332,2.22404 22.1083,6.53969 6.2512,2.67564 14.7904,0.3965 16.7595,-6.89643 2.4002,-3.96052 7.3343,-11.93295 12.3616,-9.27447 -0.1322,-0.49323 -0.2758,-0.95557 -0.3566,-1.42682 -5.7434,-2.58812 -15.1377,-1.67961 -13.3125,-10.70133 -1.4311,-1.71773 -2.8655,-2.40467 -4.279,-2.37806 z"
+ id="path4889" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4833"
+ d="m 1689.3516,577.94892 c -0.9029,0.13367 3.3612,12.54747 4.0397,15.09686 -1.2325,8.94996 3.0087,16.84553 -7.6068,20.88988 -7.6534,-0.63641 -15.2358,-18.6468 -26.1467,-23.93514 0.9934,5.36277 3.8518,26.86161 -3.092,18.50662 -5.7071,-5.60332 -12.7804,-21.57031 -22.3845,-19.97353 -2.162,10.69931 -10.3053,-5.19689 -13.7892,-5.2715 5.2578,6.37331 -1.3683,24.43504 -9.4693,18.11081 -7.1742,-5.30815 -20.5159,-25.3916 -29.8711,-27.3436 -2.3492,7.79253 -1.6867,12.10182 0.8669,21.20003 -1.182,6.15042 -6.1709,1.54547 -15.0932,0.51958 -5.7367,1.22061 -11.7279,9.46854 -13.4317,16.44422 -6.8646,4.33158 -11.0928,-2.99989 -12.005,-8.32325 -5.7434,-2.58811 -22.4254,-7.38502 -20.6002,-16.40675 -5.7244,-6.87089 -4.4703,8.67005 -7.2135,13.19635 -1.969,7.29293 -7.0228,19.71504 -13.274,17.03938 -6.6751,-4.31564 -22.2298,-16.12679 -29.396,-19.53538 -6.996,-0.2165 -7.6966,-10.3675 -14.1071,-5.6673 -6.1451,4.56585 5.1131,12.77756 -3.1292,16.12984 -9.1441,2.08434 -18.1856,-2.74268 -26.625,-5.58847 -4.8256,-1.02314 -8.1365,6.83266 -13.5129,5.84189 -4.1158,-0.75849 -10.4915,-11.16257 -13.389,-7.94079 1.7291,14.1732 -15.0097,16.35244 -25.3973,11.13557 -4.4179,-5.5962 -13.9927,-3.26178 -16.8387,4.16065 -2.2317,-0.18598 -10.8505,-9.60231 -16.5637,-10.14503 -6.7135,-0.63775 -10.3047,4.74484 -12.9485,4.67709 l 1.2674,19.97644 373.0638,0.83033 3.1686,-40.90212 c -2.8775,-10.28717 -5.1875,-12.5116 -16.5218,-12.72268 z"
+ style="fill:#212f12;fill-opacity:0.38934428;stroke:none"
+ sodipodi:nodetypes="ccccccccccccccccccccscccsccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#e7d5d2;fill-opacity:0.27459017;stroke:none"
+ d="m 1572.7915,451.48146 c -3.2912,0.19652 -6.059,2.511 -6.1808,6.77747 -5.1963,5.95599 -7.2398,15.9719 -16.0463,18.54896 -7.352,2.0911 -17.0454,2.34801 -20.2065,-4.99394 -7.4529,-9.39867 -12.4079,3.09325 -17.235,7.49093 -7.2196,9.40807 -13.8314,19.37549 -17.2349,30.32041 -4.1901,9.19561 -12.6204,14.62299 -23.6535,16.40868 -9.0076,3.86145 -10.1628,14.45766 -18.3047,19.50019 -8.3406,2.27802 -14.8551,7.14375 -23.2969,9.15557 -8.655,3.40551 -18.2161,4.76821 -25.8387,-2.06679 -4.3877,-7.09161 -17.6246,-10.84014 -18.1402,0.52111 -1.0526,7.75803 -10.1799,12.13417 -18.6613,11.53366 -8.0699,1.00633 -15.3892,-3.87473 -23.5347,-2.14027 -3.8872,0.0376 -7.7697,-0.31167 -11.6484,-0.59453 l 0.4402,13.75308 c 3.8787,0.28279 20.7524,0.31514 24.6396,0.27758 8.1455,-1.73446 15.4648,3.1466 23.5347,2.14024 8.4813,0.60054 12.539,-12.9677 13.5916,-20.72569 0.5156,-11.36121 26.8289,1.78346 31.2167,8.87511 7.6225,6.83501 14.2466,2.41549 22.9015,-0.99002 8.4418,-2.01182 9.8867,-3.90594 18.2272,-6.18396 8.142,-5.04253 3.5938,-25.58366 12.6013,-29.44507 11.0332,-1.78573 34.3558,14.34071 38.5458,5.1451 3.4035,-10.94491 -0.1242,-34.26457 7.0955,-43.67264 3.8781,-3.53312 2.5701,-9.68137 7.1329,-8.90117 6.2659,1.07144 14.8611,19.00625 18.6662,25.60353 1.7369,-6.06951 -14.3046,-26.82398 -13.256,-26.17231 8.3892,4.64774 31.1712,13.22423 38.5232,11.13314 8.8066,-2.57706 -3.7253,-21.78503 1.471,-27.74102 0.1217,-4.26647 4.7907,0.0755 8.0819,-0.12105 14.456,19.46196 2.7726,-1.67651 -5.8242,-9.7501 -2.1798,-2.63991 -5.0473,-3.83884 -7.6072,-3.686 z m 102.1023,47.20468 c -5.3937,0.59849 -7.7737,9.57994 -9.2712,13.67392 -0.9783,8.08976 -6.9835,16.56479 -16.5218,17.95443 -1.2495,0.48829 -6.1852,1.91063 -10.2674,0.24749 -5.1537,-2.09972 -12.9866,-10.80793 -15.3643,-11.31454 3.0098,5.01587 15.53,19.86492 18.9469,22.63865 5.987,4.86 10.6215,5.57478 20.1162,1.86453 9.5383,-1.38964 14.5929,-10.34013 15.5712,-18.42989 1.8431,-5.03874 -2.4331,-23.45639 6.0249,-18.58653 6.5352,6.23541 -1.7201,-4.32505 -4.9555,-6.9779 -1.5858,-0.91311 -3.0343,-1.20825 -4.279,-1.07016 z"
+ id="path4843"
+ sodipodi:nodetypes="ccccccccccccccccccccccccscccccccccccscsccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4850"
+ d="m 1695.1003,514.9016 c -4.6323,-5.48108 -10.1509,-10.48351 -15.9275,-15.08794 -8.458,-4.8699 -11.7071,7.51764 -13.5502,12.55638 -0.9783,8.08976 -6.9835,16.53362 -16.5218,17.92327 -2.6501,1.03559 -7.6464,0.96564 -10.0467,0.49881 m 7.8133,4.48115 c -8.1527,-2.92923 -16.5777,-10.84308 -18.3297,-16.11873 -3.2079,-6.64251 -11.376,-12.74623 -11.2919,-20.3535 -4.2521,-8.23749 -14.055,-13.34257 -18.1858,-21.87245 -6.2569,-7.28866 -9.9273,-16.17413 -18.6613,-21.77115 -2.1798,-2.63995 -5.0473,-3.79825 -7.6072,-3.64541 -3.2912,0.19653 -6.059,2.51803 -6.1808,6.7845 -5.1963,5.95599 -7.2398,15.95375 -16.0463,18.53081 -5.4155,1.5403 -12.0439,2.27522 -16.4537,-0.4696 m 14.1903,22.11849 c -3.0498,-8.36657 -15.9121,-24.27737 -17.9431,-26.61069 -7.4529,-9.39868 -12.4079,3.09568 -17.235,7.49332 -7.2196,9.40807 -13.8314,19.33222 -17.2349,30.27714 -4.1901,9.19561 -12.6204,14.61864 -23.6535,16.40433 -9.0076,3.86145 -10.1628,14.5009 -18.3047,19.54343 -8.3406,2.27803 -14.8551,7.1017 -23.2969,9.11352 -8.655,3.4055 -17.8139,5.21485 -25.4365,-1.62019 -4.3877,-7.09161 -18.0268,-11.25992 -18.5424,0.10122 -0.7862,7.06698 -10.6861,12.19887 -19.0377,11.36348 -1.8352,-0.18357 -2.5369,0.002 -6.9773,3.64099 m 4.8833,-3.44704 c -8.0699,1.00637 -12.9188,-3.97582 -21.0643,-2.24137 -3.8872,0.0376 -7.7697,-0.22331 -11.6484,-0.50631"
+ style="fill:none;stroke:#53312b;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:nodetypes="cccccccccccccccccccccccscccc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4993"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1433.4873,510.72526)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1421.1299,515.79676)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path4995"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4997"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1419.0703,509.29891)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1451.3897,520.07582)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path4999"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5001"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1460.5785,512.62706)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1487.1945,518.49097)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5003"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5005"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1453.4493,499.47288)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1511.5924,494.87687)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5007"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5009"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1514.4441,504.86134)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1506.5227,511.20071)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5011"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5013"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1408.6141,519.60037)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1397.0488,502.16713)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5015"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5017"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1386.4341,509.61586)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1375.1857,518.96643)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5019"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5021"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1367.898,509.77437)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1357.2833,518.17402)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5023"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5025"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1349.2035,507.2386)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1346.5102,518.01551)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5027"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5029"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1344.609,503.11801)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1328.2909,505.81226)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5031"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5033"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1327.8157,518.3325)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1316.4088,515.00432)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5035"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5037"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1304.0514,522.45309)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1295.3378,512.15163)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5039"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5041"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1285.04,518.17402)" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccccccccccccccc"
+ id="path5067"
+ d="m 1695.1003,572.28746 c -3.4508,-3.23298 -7.3035,-5.96872 -11.0541,-8.79886 -1.1773,-1.83394 -3.9627,-4.14657 -5.4677,-3.92382 -0.903,0.13357 -1.3917,1.13663 -0.7132,3.686 -1.2324,8.94997 3.9593,24.13582 -6.6562,28.18017 -7.6534,-0.63641 -9.8492,-20.54861 -17.5916,-11.89038 0.9935,5.36279 -0.901,18.93743 -7.8448,10.58244 -5.7071,-5.60332 -9.2949,-14.91399 -18.899,-13.31721 -6.0479,1.62934 -14.8408,-7.22497 -17.5916,-5.58846 5.2579,6.37332 -1.0514,18.09569 -9.1523,11.77145 -7.1743,-5.30814 -12.2777,-13.02986 -21.6329,-14.98185 -7.7358,-5.8371 -15.6284,-0.89388 -13.0748,8.20434 -1.182,6.15043 0.4831,14.22419 -8.4392,13.19831 -5.7367,1.2206 -12.6785,-2.57626 -14.3822,4.39942 -6.8647,4.33158 -11.0929,-2.99989 -12.0051,-8.32323 -5.7434,-2.58812 -15.1377,-1.67961 -13.3125,-10.70133 -5.7244,-6.87091 -11.758,2.96462 -14.5011,7.49092 -1.9691,7.29294 -10.5083,9.57208 -16.7596,6.89641 -6.675,-4.31566 -14.942,-3.1311 -22.1082,-6.5397 -6.996,-0.21635 -14.0337,-9.09964 -20.4443,-4.39945 -6.145,4.56586 7.648,8.65702 -0.5943,12.00927 -9.1441,2.08434 -18.1856,-2.74267 -26.625,-5.58847 -8.5199,-1.80642 -18.6353,-4.4576 -25.3176,2.97259 -6.8948,6.87358 -17.8517,10.2163 -26.9816,6.0641 -4.4179,-5.59622 -13.6758,-3.57877 -16.5218,3.84367 -4.8542,-0.4045 -9.4095,0.99683 -14.62,-3.24915"
+ style="fill:none;stroke:#2f441a;stroke-width:1.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1272.5242,514.68737)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5043"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5045"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1516.6621,521.34369)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1531.5544,509.61586)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5047"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5049"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1534.4061,515.63825)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1539.4758,505.17832)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5051"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1552.9422,519.44189)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5055"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5057"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1558.1704,506.92165)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1562.7648,498.04654)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5059"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5061"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1569.894,514.52886)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1582.093,510.09132)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5063"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5065"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1587.638,518.80796)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1597.1437,507.08013)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5069"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5071"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1621.5417,497.57108)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1625.6608,500.74079)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5073"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5075"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1614.8877,518.80796)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1626.6114,521.34369)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5077"
+ style="color:#000000;fill:#263615;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5079"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1527.1184,497.88807)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1520.4644,490.91476)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5081"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5083"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1502.7205,503.59347)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1508.7407,517.2231)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5085"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5087"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1488.7788,510.56678)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1472.6191,513.10252)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5089"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5091"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1462.1628,502.64259)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1443.4683,508.03104)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5093"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5095"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1446.0031,494.40141)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1409.8815,502.64259)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5097"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5099"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1397.2072,516.90612)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1388.9689,499.78987)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5101"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5103"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1372.1756,515.95524)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1356.6496,503.59347)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5105"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5107"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1341.7573,507.08013)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1334.4696,517.2231)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5109"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5111"
+ sodipodi:cx="77.283951"
+ sodipodi:cy="74.04261"
+ sodipodi:rx="2.5918398"
+ sodipodi:ry="1.6493526"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ transform="matrix(0.80984715,0,0,1.1971287,1320.8448,511.51766)" />
+ <path
+ transform="matrix(0.80984715,0,0,1.1971287,1296.13,520.70976)"
+ d="m 79.875791,74.04261 a 2.5918398,1.6493526 0 1 1 -5.18368,0 2.5918398,1.6493526 0 1 1 5.18368,0 z"
+ sodipodi:ry="1.6493526"
+ sodipodi:rx="2.5918398"
+ sodipodi:cy="74.04261"
+ sodipodi:cx="77.283951"
+ id="path5113"
+ style="color:#000000;fill:#9cc76f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="main"
+ id="layer2"
+ inkscape:groupmode="layer"
+ transform="translate(0,-512)">
+ <g
+ id="g4153"
+ style="filter:url(#filter4167)"
+ transform="translate(512,0)">
+ <path
+ style="fill:url(#linearGradient4173);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m -517.40987,480.85233 c 0,170.66667 0,391.33333 0,561.99997 341.33335,0 1598.66667,0 1939.99997,0 0,-170.66664 0,-391.3333 0,-561.99997 -341.3333,0 -1598.66662,0 -1939.99997,0 z m 872.84375,136.5625 c 5.09865,-1.7539 11.09045,2.30719 16.75465,3.90709 10.7476,3.03577 20.9769,7.41999 26.11125,14.73058 7.0606,4.03128 14.3489,12.09473 18.3858,21.19334 2.9919,6.74338 -0.72575,14.40878 2.20145,20.71586 2.8654,6.17393 -5.1507,19.86185 -4.39005,28.36137 -7.84725,16.14301 -21.5549,9.92295 -35.59435,17.60697 -15.63645,5.31576 -32.0593,5.37901 -48.87495,3.50194 -11.65965,-4.14891 -27.1301,-9.73818 -30.2384,-22.65431 -0.763,-3.17043 1.4246,-6.85593 0.1848,-10.92274 -2.3033,-7.55539 -5.2387,-13.65228 -4.4859,-20.65558 1.05595,-9.82335 4.60355,-20.09071 9.16055,-28.55843 0.9646,-1.79243 3.35115,-2.24874 4.89005,-3.49092 6.4006,-5.16649 11.4082,-11.42632 17.3099,-15.47016 4.45615,-3.05337 9.3745,-3.5099 15.8823,-3.94536 4.3756,-0.29279 8.07415,-2.7274 12.7029,-4.31965 z"
+ id="rect2387"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccsscsscccssssssss" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#191a22;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:50;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1326.6995,702.41483 c -0.7422,0.0209 -1.3549,1.0625 -1.3906,3.75 -0.1427,10.75002 1.2659,-3.68087 1.3906,5.17187 0.01,0.18447 -0.012,0.3549 -0.015,0.53125 5.1676,-1.78623 2.0737,-9.5111 0.015,-9.45312 z"
+ id="path5186" />
+ <path
+ transform="matrix(0.5,0,0,0.5,-407.40987,418.85233)"
+ inkscape:connector-curvature="0"
+ mask="url(#mask3983)"
+ id="path5607"
+ d="m 1654.5938,392.59375 a 12.501914,12.501914 0 0 0 12.1562,16.09375 c 1.0197,-0.0179 2.1795,-0.0115 3.5,0 l 1.2188,0 0.5937,-0.125 c 0.06,0.0189 -0.026,0.0168 0.25,0.0937 0.7862,0.21914 2.6995,0.79844 5.2187,1.21875 0.3905,0.13032 0.6055,0.22491 0.9063,0.3125 1.7135,4.38013 3.2247,6.16957 3.4063,6.9375 0,0.006 0.03,0.0254 0.031,0.0312 0.8382,4.2447 0.8949,7.91917 0.1875,10.40625 l -0.9375,3.34375 0.9062,3.34375 c 0.5287,1.9507 0.649,4.99551 0.4688,8.84375 -0.027,-0.44471 -0.337,0.90731 -1.75,2.8125 -1.6667,2.24732 -4.2269,4.89972 -6.7812,8.5 l -13.2188,18.65625 22.8438,1.0625 c 2.0133,0.0955 3.3812,0.28335 5.5937,0.25 2.2125,-0.0333 5.0436,-0.52728 7.2813,-1.25 l 0.094,-0.0312 0.094,-0.0625 c 1.7673,-0.60465 4.3649,-0.90248 8.4688,-2.09375 4.1464,-0.59031 9.0917,-1.15103 14.4688,-2.90625 0.6974,1.95478 1.5439,3.74156 2.4374,5 1.1631,1.63787 2.2376,2.81287 3.125,3.71875 0.902,2.57527 1.7067,4.71281 2.4063,6.40625 5e-4,2.04542 -0.01,4.09643 0,6.21875 1e-4,0.032 -2e-4,0.0618 0,0.0937 -0.015,0.86652 -0.3699,3.44025 0.1563,7.40625 0.4546,3.42764 2.7298,8.65107 6.875,12.15625 l -0.094,0.0937 c 0.7136,0.66165 0.5923,0.5514 1.0938,1 -0.9611,1.05497 -2.0352,2.33606 -3.3126,4.71875 -1.8849,1.97567 -2.9744,3.9684 -3.625,5.21875 -0.9033,1.73623 -1.3766,2.59426 -1.3437,2.59375 l -1.5937,2.09375 -0.5938,2.65625 c -0.077,0.3426 -1.3241,1.7417 -0.3125,1.1875 l -0.4375,0.25 -0.4375,0.25 c -8.0103,5.27191 -9.6943,10.66935 -9.4063,10.40625 -1.3101,1.09191 -2.7543,2.35286 -4.125,5.1875 -0.1316,0.27253 -0.1742,0.58774 -0.2812,0.875 l -18.4062,16.5 25.7812,4.1875 c 1.2854,0.20919 0.1329,0.0601 3.2188,1.125 2.2152,0.76452 5.7572,0.73129 9.125,0.3125 4.0135,0.0393 7.9639,-0.0237 11.9062,-0.125 0.098,0.0176 0.1839,0.0448 0.2812,0.0625 -1.2596,3.18036 -2.538,6.22354 -3.9374,8.53125 l -7.6876,12.6875 13.7813,5.40625 c 0.47,0.18478 0.6466,0.26937 1.0937,0.4375 -2.9112,3.01288 -4.2604,6.13371 -4.9687,7.59375 -0.3509,0.72338 -0.3555,0.75563 -0.375,0.8125 l -0.125,0.0937 c -0.9151,0.70975 -0.6146,0.48166 -1.5313,0.9375 -0.9165,0.45584 -2.9374,1.4231 -5.7812,3.0625 l -23.4062,13.5 24.5937,8.8125 c -1.3086,-0.34971 1.6394,1.28473 3.7813,3.65625 2.4476,2.71031 4.3485,5.62359 8.5312,9 a 12.511124,12.511124 0 0 0 17.7188,-2.03125 l -9.875,-7.71875 c -1.7778,-1.43505 -2.7331,-3.55832 -3.8438,-5.53125 -1.1108,-1.97293 -4.6433,-1.42644 -7.0312,-2.28125 -2.3186,-1.50809 -7.7019,-3.62174 -6.9376,-5.25 2.9865,0.0381 11.1214,-4.24575 11.4376,-6.28125 3.9355,-0.68732 3.7533,-3.07876 4.0937,-5.3125 0.9803,-2.02046 1.9232,-4.08303 3.9063,-5.46875 3.5733,0.99363 4.4394,-2.11229 5.1874,-4.9375 1.7328,-1.65583 2.9642,-3.46415 2.1876,-6 -0.7552,-2.45818 -1.4634,-4.06796 -4.75,-3.65625 0.2908,-4.28641 -6.716,-3.89408 -9.6563,-4 -0.075,-2.01331 7.1099,-5.78203 4.75,-9.34375 3.7785,-1.84953 2.0724,-2.9071 3,-5.3125 2.3917,-0.62784 3.5085,-3.27991 3.3437,-5.03125 0.8014,-1.30551 0.3998,-3.11075 -2.5624,-3.53125 -2.3124,-0.76791 1.4979,-5.09536 -0.875,-5.625 -1.2898,-0.28784 -1.9549,-2.79572 -3.0626,-3 -0.9303,-0.1716 -2.3007,1.94438 -3.4062,1.75 -2.1505,0.0627 -4.0106,-0.30078 -5.8438,-1.65625 0.8075,2.30062 -3.2497,4.77767 -5.9374,2.15625 -0.074,0.77143 -1.418,1.21528 -3.125,1.46875 -0.5885,0.0874 -1.5202,-2.70482 -2.1563,-2.65625 -0.5366,0.041 -0.7912,2.94774 -1.3125,2.96875 -1.2781,0.0515 -2.4373,0.0583 -3.1562,0.0625 -3.064,-3.17964 -8.7676,-0.20739 -11.5938,-0.46875 -0.2531,-1.8186 4.2581,-7.3274 7.0312,-7.65625 1.2601,-0.14943 1.6383,0.11616 2.4063,0.71875 -0.1497,-1.19195 -0.3588,-1.8425 0.2813,-2.5 0.5956,-0.61185 1.7882,-2.60179 3,-2.15625 1.0904,0.40092 1.5823,-0.31068 2.7812,1.375 -0.3083,-1.8104 -0.4273,-2.7175 -0.125,-3.4375 0.3857,-0.91872 1.9769,0.34161 2.625,-0.59375 0.4872,-0.70303 1.1805,-3.73 2.2188,-3.5625 1.4257,0.23001 2.3001,-0.0786 3.125,0.3125 -0.2518,-2.22224 -3.5258,-6.94932 1.5,-6.40625 -1.7574,-2.07124 0.4306,-0.85813 1.9062,-2.3125 0.1553,-1.61355 -0.7594,-3.67051 2.4062,-4.3125 -1.8522,-4.81822 1.0498,-3.27257 2.75,-3.3125 -1.0704,-3.85938 -2.8207,-4.29111 -0.062,-5.375 1.5708,-2.02565 1.2557,-4.15249 0.7812,-6.9375 0.2563,-2.21194 -0.5691,-3.88855 -1.8125,-5.34375 -2.4676,-0.29906 -5.4536,-0.27903 -4.3125,-4.03125 -3.2323,-0.79943 -4.5508,-2.39339 -2.9062,-4.6875 -0.254,-1.9144 -0.033,-4.02181 -0.031,-5.84375 -0.01,-1.4428 0,-2.90091 0,-4.34375 5e-4,-1.44283 0,-2.86968 0,-4.3125 -0.6288,-1.70262 -1.3569,-3.34037 -2.0625,-5.09375 -0.7055,-1.75339 -1.3958,-3.61768 -2,-5.75 -1.2336,-1.2907 -2.7116,-2.61866 -3.7812,-4.125 -1.0697,-1.50635 -1.719,-3.19197 -1.3438,-5.25 -0.8766,-1.45501 -0.8542,-3.94054 -1.25,-5.84375 -0.3958,-1.90321 -1.2279,-3.24493 -3.8125,-2.40625 -1.3974,-0.11883 -2.9927,0.68878 -4.2187,1.40625 -2.3371,-1.13414 -3.4619,1.9462 -2.875,2.21875 -4.1915,0.0284 -5.7481,2.36504 -7.5626,3.78125 -2.5142,-2.22032 -5.182,-4.25615 -8.375,-1.03125 -2.2257,-1.14998 -4.2264,-1.20821 -5.7812,1.03125 -1.9364,-0.39422 -2.9896,0.0831 -4.9062,2.75 -3.0812,-1.59244 -5.9671,0.42172 -7.1563,0.625 -1.2476,0.1472 0.6035,-1.03039 2.2187,-2.6875 4.0472,-1.99332 6.934,-4.15642 4.0313,-7.75 3.0511,-2.20179 5.2154,-4.96982 3.7813,-8.59375 2.9706,-2.48674 1.1301,-4.47505 0.094,-6.5625 3.0373,-3.14826 -0.066,-4.48802 -0.9687,-6.5 0.083,-2.73659 2.8143,-5.45092 0,-8.1875 0,-2.73659 0.01,-5.48216 0,-8.21875 -0.4958,-2.33081 -1.4445,-4.24163 -2.4376,-6.125 -0.9929,-1.88338 -2.0208,-3.74938 -2.6562,-5.96875 -0.5456,-1.62178 -1.8648,-2.45539 -3.4375,-3.0625 -0.3226,-0.96431 0.3846,-2.05188 -4.9063,-1.625 -0.814,-2.18646 -3.3499,-0.70617 -5,-1.15625 -1.6461,-0.45885 -3.3239,-0.80502 -5.2812,-0.4375 -0.6398,-0.006 -0.954,-0.4971 -1.5938,-0.5 -0.6397,-0.003 -4.454,0.363 -5.0937,0.375 -2.5895,-1.23578 -4.8212,-1.95857 -7.2187,-2.90625 l -1.875,-0.5625 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#5c5f7d;fill-opacity:0.11913356;stroke:none;stroke-width:25;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3979);enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ transform="matrix(0.5,0,0,0.5,-407.40987,418.85233)"
+ mask="url(#mask3957)"
+ inkscape:connector-curvature="0"
+ id="path5641"
+ d="m 1480.6875,280.65625 c -0.7588,-0.0207 -1.0063,0.56542 -1.5,0.9375 -1.9965,-0.47347 -3.9302,-0.53068 -5.5937,0.71875 -2.1649,1.78633 -4.4573,2.92121 -6.75,4.125 -2.2928,1.20371 -4.5861,2.47476 -6.6876,4.46875 -1.8925,2.73489 -3.7421,5.47726 -5.625,8.21875 -4.7081,0.80587 -3.8566,5.42017 -5.6562,8.21875 -2.2907,1.39459 -6.2892,0.60086 -5.4062,5.84375 -2.4767,1.37838 -5.7087,2.09069 -4.4376,6.625 -3.9331,2.64401 -2.061,6.69576 0.4063,11 -3.2065,2.86855 -0.766,9.52354 1.4687,11.46875 -0.4952,2.77104 1.7522,11.12413 1.75,14.3125 -1.0539,-1.02155 -6.3425,-11.94493 -10.5312,-12.46875 -0.089,-3.98989 -3.6911,-9.06311 -5.9062,-10 -0.02,-3.31283 -2.7556,-6.24618 -5.7813,-6.625 -0.9865,-5.42675 -3.7921,-6.15134 -7.8437,-5.65625 -0.8472,-2.66672 -1.4056,-3.55748 -5.5938,-6.46875 0.7766,0.13055 1.7828,-3.68502 -1.3438,-4.15625 -0.7371,-1.56197 -1.7966,-3.50169 -3.2812,-4.34375 -2.0176,-2.61781 -3.7619,-1.85315 -5.4688,-0.21875 -1.7068,1.6344 -3.4001,4.14529 -5.2812,5 -1.0394,2.31977 -2.8586,3.57035 -4.9688,4.34375 -2.1101,0.77339 -4.4985,1.05543 -6.625,1.5 -2.0736,1.72059 -4.0541,3.1037 -5.9687,4.375 -1.9147,1.27123 -3.7598,2.44555 -5.5625,3.71875 -0.9927,1.4454 -1.9765,2.89799 -2.9688,4.34375 -0.9927,1.44542 -2.5597,2.65524 -3.5624,4.09375 -1.2516,1.82658 -1.9279,5.81937 -3.5,7.5625 0.072,3.42934 2.5113,5.98055 3.3124,9.84375 -2.2106,-0.10544 -6.0154,-3.92997 -10.0312,-6.0625 -2.3502,-1.24801 -5.5407,-1.01529 -6.5312,-1.53125 -2.2495,0.60262 -4.2042,1.73282 -5.4688,4.125 -2.3926,2.46365 -2.6208,5.45279 -2.4375,8.5625 2.0232,2.98293 3.73,6.1199 0,9.25 1.6794,1.20943 5.6745,1.63455 0.5,5.1875 2.7362,2.82037 0.3918,4.27675 -0.5625,6 0.4807,2.47186 1.8143,5.79 -1.375,6.65625 5.419,2.91259 -1.1246,5.38439 -2.9062,7.4375 1.0971,0.17545 1.7541,1.09354 3.3437,1.84375 1.1576,0.54632 -0.2241,4.05438 -0.2187,5.09375 0.01,1.38278 2.4636,1.22061 2.2187,2.40625 -0.1919,0.92921 -0.9136,1.7109 -2.4687,3.3125 2.3633,-0.86412 2.3482,0.21419 3.7187,0.5625 1.523,0.38704 1.3543,3.19616 1.5313,4.21875 0.1901,1.09892 -0.4672,1.62762 -1.4376,2.71875 1.1856,-0.0755 2.951,-0.63699 2.9063,0.90625 -0.138,4.7694 2.5544,11.42373 1.7813,12.5 -3.0171,-1.68197 -6.674,-8.57805 -11.9376,-7.5 -0.4131,-7.52995 -9.0878,-7.8605 -8.5312,-8.53125 2.5928,-8.51866 -6.0213,-5.60268 -4.4688,-6.25 -2.7728,0.0971 -4.9155,-0.83312 -7.0312,-2.375 -3.1997,-5.75851 -4.6758,-2.83355 -7.3438,-3.1875 -2.7465,-1.10144 -5.5253,-2.11644 -8.375,-2.9375 -3.2631,-1.61615 -4.8749,-0.10897 -4.9687,1.75 -0.094,1.85897 0.2478,5.47463 -0.1563,7.34375 -0.7238,3.04769 -2.3116,2.08969 -0.625,7.40625 -4.8196,1.94501 -0.148,10.45005 0,12.875 -3.0245,-1.91616 -11.4365,-7.40041 -14.0937,-2.90625 -3.0271,0.31189 -4.8319,-1.56824 -7.2813,0.375 -2.5243,2.00627 -2.5376,4.71199 -1.9374,7.5625 -1.193,3.34473 -2.4897,7.03771 1.7812,8.5 1.0373,2.75207 0.5936,5.45794 0.1875,8.15625 -1.1952,2.47186 -3.0091,4.7297 0.4687,8.125 -1.083,2.25662 4.1321,12.14044 7.1563,14.15625 -0.3529,2.15691 -7.2286,0.58382 -10.5937,0.5 -2.9854,-0.786 -6.1525,-3.74373 -8.625,-2.53125 -2.4725,1.21255 -4.9156,2.69129 -7.6876,2.90625 l -13,-0.34375 A 12.50125,12.50125 0 0 0 1251.25,480.5 c 5.8492,-0.45351 9.8994,-2.00913 14.3125,-3.0625 4.4131,-1.05337 9.1647,-0.67508 6.625,-1.34375 l 26.1563,6.875 -11.6876,-24.375 c -1.6871,-3.51548 -3.0175,-5.73016 -3.6562,-6.875 -0.6387,-1.14484 -0.6155,-1.01076 -1.0938,-2.5 l -0.1874,-0.625 -0.031,-0.0312 c 0.024,-0.1267 0.066,-0.59248 0.25,-1.8125 0.3315,-2.20257 1.0884,-6.57851 -0.1875,-11.8125 -0.044,-0.79416 -0.034,-1.65952 -0.125,-2.34375 1.7268,0.43981 3.1213,0.76625 5.2188,1.25 l 14.4687,3.34375 0.8125,-14.8125 c 0.2477,-4.43808 1.4458,-9.71926 2.6875,-14.875 1.1898,0.51147 2.3588,1.00519 3.5937,1.5625 3.5098,2.54235 7.08,5.06555 10.7188,7.53125 5.1101,6.06145 11.414,11.4676 19.125,15.09375 l 23.6562,11.125 -6.1874,-25.375 c -1.722,-7.06847 -3.5884,-11.3145 -4.6563,-14.90625 -0.069,-0.56954 1.748,-6.78558 -2.1875,-16.40625 l -0.1875,-0.46875 -0.2187,-0.4375 c 0.1157,0.22832 0.015,-2.61669 0.4062,-3.59375 l 1,-2.53125 -0.125,-2.71875 c -6e-4,-0.013 0.1568,-1.31563 0.4688,-3.875 0.2074,-1.70243 0.4634,-4.33625 -0.125,-7.4375 0.226,-1.9877 0.2346,-3.56125 0.125,-5 2.4109,0.74477 4.9717,1.53279 6.7812,2.15625 l 23.0938,7.96875 -7.0626,-23.40625 c -0.036,-0.1183 -0.3405,-2.22497 -0.2187,-3.875 0.088,-1.18631 0.5287,-2.1705 0.4063,-2.09375 1.4324,-2.07052 2.7993,-4.10628 4.1874,-6.125 2.0909,-1.37667 4.6664,-3.15279 7.6563,-5.375 1.5596,-0.28027 3.4292,-0.69732 5.875,-1.59375 2.2704,-0.83213 5.0192,-2.47489 7.4687,-4.75 4.3713,6.31707 9.4799,10.89691 13.75,14.8125 3.3271,4.10147 5.7673,6.18769 7.375,8.34375 l 0.063,0.0937 0.062,0.0937 c 0.4911,0.63542 2.8626,4.00997 5.25,7.3125 2.3876,3.30253 4.4786,6.49285 8.2188,9.8125 l 28.3125,25.15625 -7.7813,-37.0625 c -0.8166,-3.88173 -2.3157,-10.40384 -3.125,-16.46875 -0.4046,-3.03245 -0.6148,-5.91908 -0.5624,-7.8125 0.025,-0.89967 0.2169,-1.51318 0.2812,-1.75 2.366,-3.76091 4.5923,-6.81897 6.7188,-8.625 l 2.6562,-2.25 1.0938,-3.28125 c 1.2047,-3.58437 4.1275,-7.53575 8.0624,-11.375 0.01,-0.005 0.026,0.005 0.031,0 1.223,-1.14561 4.4753,-2.14021 9.5,-5.65625 0.5907,0.21032 1.4289,0.41136 2.5313,0.71875 2.7429,1.31715 5.0663,2.03383 6.1562,2.40625 0.6146,0.21 0.8196,0.27962 0.9062,0.3125 l 0.75,0.75 1,0.6875 c 1.3259,0.89149 2.536,1.68515 3.5938,2.4375 a 12.50125,12.50125 0 0 0 19.5938,-6.21875 l -0.1563,-0.0625 c -3.0589,-0.69957 -5.8002,-1.51949 -9.25,-2.0625 -2.33,-1.71071 -4.1107,-3.97874 -6.7813,-4.46875 -1.712,-1.71437 -3.6566,-2.5462 -5.625,-3.21875 -1.9661,-0.68402 -3.4909,-3.88053 -5.8124,-2.25 -2.5089,-2.0333 -3.7725,-2.66679 -4.5313,-2.6875 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#5c5f7d;fill-opacity:0.11913356;stroke:none;stroke-width:25;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3953);enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ sodipodi:nodetypes="ccscssccccccccccccccccccccscccccccccccscsccccccccccscsssssscccssccccccssscccccccscccccccccccscsssssccsccccscsscccccccccccccccccsccsssccss"
+ inkscape:connector-curvature="0"
+ id="path5194"
+ transform="translate(0,512)"
+ d="m 308.1875,116.40625 c -0.6232,0.007 -1.218,0.0851 -1.78125,0.25 -12.30735,5.17209 -15.86275,-1.88711 -30.84375,1.21875 -6.8638,1.423 -10.98005,3.60374 -21.59375,7.8125 -14.81175,4.30347 -13.7135,3.54028 -26.15625,4 -9.017,0.33316 -25.32965,9.55842 -39.90625,10.15625 -12.50535,0.51288 -27.92315,-2.95617 -36.34375,-0.46875 -18.31725,2.26449 -33.88805,6.94541 -42.375,0.8125 -10.45115,0.23775 -21.46284,8.65955 -36.8125,4.125 -12.70452,4.95805 -17.35138,-0.84001 -26.09375,-4.4375 -9.61249,-4.55185 -24.52375,4.41837 -41.1875,3.53125 -19.5379,5.60052 -35.42185,-2.18373 -54.3125,-2.40625 -21.11453,3.16284 -32.25791,5.63547 -42.125,-0.59375 -18.1027,-1.33387 -30.40171,-10.65911 -50.8125,-4.09375 -16.84221,9.474 -30.1279,-2.4752 -42.90625,-1.59375 -14.85747,9.90758 -36.95751,-5.22227 -48.4375,2.84375 -15.41447,-0.57725 -30.03844,-0.89794 -39.8125,1.40625 -17.8686,-2.69328 -20.98195,18.46979 -38.25,13.65625 -9.76153,-5.23435 -35.7329,-6.62085 -45.6875,-5.5625 -6.94335,-2.26705 -15.0347,0.82425 -22.4375,3.59375 -9.76091,-2.22915 -17.8284,-6.6413 -23.125,-10.46875 -10.4511,0.23775 -21.4628,8.65955 -36.8125,4.125 -12.7045,4.95805 -17.35125,-0.84001 -26.09375,-4.4375 -9.6124,-4.55185 -24.5237,4.41837 -41.1875,3.53125 -19.5379,5.60052 -35.4218,-2.18373 -54.3125,-2.40625 -21.1145,3.16284 -32.2579,5.63547 -42.125,-0.59375 -13.57703,-1.0004 -23.89404,-6.49076 -36.8125,-6.40625 -4.30615,0.0282 -8.8973,0.67116 -14,2.3125 -16.8422,9.474 -30.12795,-2.4752 -42.90625,-1.59375 -9.74051,6.49536 -22.56703,2.24848 -33.5,0.8125 l 0,20.9375 c 1.4945,-0.5811 2.94979,-0.83195 4.40625,-0.5625 9.5669,0.89453 25.28415,2.55477 34.59375,5.40625 11.9338,10.143 34.30805,-0.27844 51.84375,2.5625 18.2297,-1.98197 11.5982,-2.79998 28.625,-4.75 10.6397,-0.30303 31.5613,7.551 41.8125,9.21875 16.6987,-5.02968 26.7804,2.37128 44.5625,-7 9.3762,-3.98466 26.6673,1.86297 43.75,0.5 9.5924,-7.74729 20.51495,-8.27516 40.71875,-7.3125 10.4236,0.49666 24.21325,1.67266 41.59375,7.28125 11.53927,4.7242 16.08726,4.2507 23.09375,4.0625 3.66462,-0.0984 33.61034,2.18421 39.0625,1.875 11.63194,0.83764 29.70829,2.26987 47.15625,-1.6875 16.92858,-3.42126 26.479,-6.73697 38.5625,0.96875 18.20148,5.98746 27.43831,-12.8246 36.625,-11.125 9.56695,0.89453 25.28408,2.55477 34.59375,5.40625 11.93377,10.143 34.3081,-0.27844 51.84375,2.5625 18.2297,-1.98197 11.59823,-2.79998 28.625,-4.75 10.63967,-0.30303 31.56131,7.551 41.8125,9.21875 16.69868,-5.02968 26.78043,2.37128 44.5625,-7 9.37616,-3.98466 26.66722,1.86297 43.75,0.5 9.5923,-7.74729 20.51503,-8.27516 40.71875,-7.3125 10.42356,0.49666 20.30711,-5.48359 37.6875,0.125 16.79685,6.87664 22.5784,-2.87399 39,-0.15625 10.4955,1.737 15.0147,-2.12267 26.90625,-0.5625 15.0723,1.97749 17.5148,-3.48506 29.96875,-6.75 8.1458,-2.13552 21.38445,-7.50293 31.25,-8.84375 16.79145,-2.28212 13.47165,-2.4974 27.65625,-10.6875 8.1943,-4.73132 20.31955,-2.91068 26.3125,-4.96875 4.2034,-1.44352 15.05615,0.1707 22.9375,3 2.1535,-1.99866 4.19425,-4.02853 6.21875,-5.96875 -3.9918,-1.34265 -8.1289,-3.34877 -11.5,-3.3125 z m 116.84375,2.78125 c -1.96585,0.0358 -4.27835,0.21302 -7.375,0.53125 -7.1672,0.73652 -16.84335,-0.66222 -21,0.46875 -0.3689,0.0793 -0.79715,0.2547 -1.28125,0.5 1.0992,1.05073 2.06215,2.17308 2.90625,3.375 1.44215,0.82338 2.9123,1.80324 4.34375,2.9375 0.65645,-0.29362 1.45475,-0.66969 2.53125,-1.21875 8.61585,-3.67878 29.30345,6.09147 38.375,2.34375 13.55195,1.01687 11.56915,2.29206 24.46875,6.78125 8.51765,2.96424 19.93345,5.57897 32.15625,8.5 6.6915,1.59912 17.6413,3.02534 24.90625,8.15625 13.47325,9.51565 21.8007,15.03069 46.4375,14.5625 10.5726,-3.70431 7.5881,0.42898 23.5,-3 4.04812,0.1208 8.50814,0.3024 13.125,0.4375 0.0109,3.2e-4 0.0204,-3.2e-4 0.0312,0 2.29846,0.0672 4.63094,0.10845 6.96875,0.15625 4.69629,0.0963 9.39607,0.13648 13.84375,0.0625 2.22336,-0.0373 4.41018,-0.0845 6.46875,-0.1875 8.71777,-1.22378 16.41587,-0.0385 24.125,1.40625 7.76443,1.45513 15.53994,3.1734 24.34375,2.9375 12.02008,-0.17893 25.56745,1.18968 36.28125,0.28125 4.77262,-0.39822 9.64077,-1.06122 14.46875,-2.15625 16.9286,-3.42126 26.479,-6.73697 38.5625,0.96875 18.2015,5.98746 27.4383,-12.8246 36.625,-11.125 9.5669,0.89453 25.28415,2.55477 34.59375,5.40625 11.9338,10.143 34.30805,-0.27844 51.84375,2.5625 18.2297,-1.98197 11.5982,-2.79998 28.625,-4.75 10.6397,-0.30303 31.5613,7.551 41.8125,9.21875 16.6987,-5.02968 26.78045,2.37128 44.5625,-7 9.3764,-3.98466 26.6675,1.86297 43.75,0.5 9.5924,-7.74729 20.515,-8.27516 40.7188,-7.3125 10.4236,0.49666 24.2132,1.67266 41.5938,7.28125 16.7967,6.87664 18.6721,2.31351 35.0937,5.03125 10.4954,1.737 15.0144,-2.12267 26.9063,-0.5625 15.0722,1.97749 19.4523,1.73369 31.9062,-1.53125 8.1458,-2.13552 30.5094,-1.65918 40.375,-3 16.7915,-2.28212 14.7529,5.9401 28.9375,-2.25 8.1943,-4.73132 18.3822,1.65182 24.375,-0.40625 4.2035,-1.44352 16.3374,-5.04805 24.2187,-2.21875 0.9504,-0.88207 44.2431,5.40701 48.9063,0.5625 5.9032,-6.13258 1.0564,-25.5723 2.1875,-26.65625 -3.9919,-1.34265 -25.1914,3.15123 -28.5625,3.1875 -7.8672,-0.6765 -14.6917,0.74583 -22.0313,1.125 -0.623,0.007 -8.2803,-0.4149 -8.8437,-0.25 -12.3072,5.17209 -15.8629,3.33164 -30.8437,6.4375 -6.864,1.423 -10.9801,-1.61501 -21.5938,2.59375 -14.8117,4.30347 -24.7759,1.60278 -37.2188,2.0625 -9.0169,0.33316 -24.6731,5.65217 -39.25,6.25 -12.5052,0.51288 -27.9231,-2.95617 -36.3437,-0.46875 -18.3172,2.26449 -33.888,-5.39834 -42.375,-11.53125 -10.4511,0.23775 -21.4628,8.65955 -36.8125,4.125 -12.7045,4.95805 -17.3511,-0.84001 -26.0938,-4.4375 -9.6123,-4.55185 -24.5237,4.41837 -41.1874,3.53125 -19.5381,5.60052 -35.4219,-2.18373 -54.3126,-2.40625 -21.1145,3.16284 -32.2579,5.63547 -42.125,-0.59375 -18.1027,-1.33387 -30.4017,-10.65911 -50.8125,-4.09375 -16.8422,9.474 -30.12795,-2.4752 -42.90625,-1.59375 -14.8575,9.90758 -36.9575,-5.22227 -48.4375,2.84375 -15.4145,-0.57725 -30.0384,-0.89794 -39.8125,1.40625 -15.07663,-2.27245 -19.63273,12.42963 -31.0625,14.1875 -11.23776,0.2056 -22.1319,-5.08638 -33.3125,-5.96875 -1.11256,-0.0843 -2.19154,-0.15796 -3.28125,-0.21875 -6.54098,-0.36472 -12.54824,-0.30308 -16.28125,0.0937 -12.71115,-4.15029 -29.28985,9.69824 -38.40625,6.5625 -1.75603,0.95428 -3.4109,1.42197 -5.1875,1.625 -12.82666,0.32601 -14.00293,-8.43054 -23.65625,-9.125 -6.83869,-0.49198 -14.52752,-0.66159 -20.96875,-3.1875 -3.8349,-1.59488 -2.57545,0.17655 -12.8125,3.28125 -6.4802,-1.82491 -10.6529,0.34211 -20.09375,-4.9375 -2.99325,-1.67389 -5.8858,-4.05505 -12.6875,-4.46875 -5.31265,-0.32313 -14.6859,-5.43029 -19.375,-7.15625 -9.1672,-3.37424 -20.7356,-2.86352 -28.34375,-3.46875 -11.08065,-4.83713 -8.1138,0.7253 -23.28125,-3.40625 -16.7127,-2.85137 -18.75985,0.0321 -24.46875,-1.53125 -5.49335,-1.50427 -8.11255,-2.14124 -12.4375,-2.0625 z"
+ style="color:#000000;fill:#474a61;fill-opacity:0.05054154;fill-rule:evenodd;stroke:none;stroke-width:50;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ transform="matrix(0.5,0,0,0.5,-407.40987,418.85233)"
+ inkscape:connector-curvature="0"
+ mask="url(#mask4009)"
+ id="path5645"
+ d="m 1202.2812,650.625 a 12.50125,12.50125 0 0 0 -3.5,0.6875 c 1.1437,2.64527 2.2017,5.23612 3.75,8.125 0.026,0.87092 -0.2337,6.06741 -0.1874,6.9375 0.046,0.87009 0.7309,1.25511 0.7812,2.125 -0.3688,2.6861 0.2072,4.97787 0.9375,7.1875 0.7187,2.2155 -1.1099,5.75254 1.9063,6.71875 -0.2294,7.22443 1.2034,6.18589 2.5312,6.5625 0.9263,2.10009 2.1729,3.83121 4.4062,4.46875 3.049,0.72114 5.6327,2.02076 8.25,3.25 2.6173,1.22937 5.2468,2.41343 8.4376,2.9375 3.7084,-0.16346 7.4171,-0.35474 11.125,-0.53125 3.8934,3.65161 7.4226,-0.24184 11.125,-0.53125 2.7855,1.09839 4.7785,5.20952 8.8437,0.875 2.8967,1.27511 5.733,3.66988 8.9063,-0.53125 5.0046,1.71711 8.593,-1.4265 11.375,-5.71875 5.0604,3.71658 7.8162,-0.33502 10.25,-5.96875 2.1386,-2.30408 3.6171,-4.89403 3.5,-3.1875 -0.197,1.63071 -2.7672,5.66168 -0.4063,9.75 -3.4869,2.77919 -4.0369,4.23521 -3.375,6.84375 -2.9317,2.25935 -2.7362,5.0153 -1.0313,7.96875 -4.1587,4.55126 -1.2366,8.0358 1.9376,11.3125 -1.7992,2.5595 -4.8319,4.82797 -4.5938,10.53125 -0.408,-0.78061 -4.5033,0.95664 -2.8125,4.0625 -0.8912,1.71393 -1.8782,3.95062 -1.625,5.84375 -0.9658,3.56977 0.8952,4.58438 3.5,5 2.6048,0.41562 5.9708,0.21396 8,1.3125 2.7637,-0.64311 5.1072,0.1735 7.2187,1.53125 2.1116,1.35775 3.9824,3.24901 5.8126,4.84375 2.9289,0.68432 5.484,1.52845 7.9062,2.375 2.4222,0.84669 4.7141,1.72325 7.0625,2.46875 1.9549,-0.0931 3.9201,-0.18751 5.875,-0.28125 1.9549,-0.0931 3.8882,-0.20179 5.8437,-0.28125 2.4685,-0.12024 5.2957,-0.56577 7.9063,-0.34375 2.9998,-2.38502 5.2973,-0.72014 6.5937,3.625 5.0086,-1.79419 5.1508,2.31901 5.7188,5.65625 2.0537,1.59746 4.3637,2.6163 7.3438,2.125 3.8047,0.4658 6.6403,-1.38879 9.2812,-3.65625 1.2866,-3.82186 2.9191,-7.45707 8.2188,-6.25 -0.058,-2.31539 -2.3692,-6.17741 4.2812,-3.96875 0.661,-4.34738 3.5115,-3.24718 5.6875,-3.5625 1.8732,-2.10098 3.9215,-5.50689 6.8437,-3.25 -1.0673,-6.80127 5.535,-2.66779 8.5626,-2.46875 -0.5844,-1.0967 -0.2193,-2.29416 -0.625,-4.21875 -0.2955,-1.40153 3.7671,-2.54194 4.6874,-3.25 1.2246,-0.9419 -0.563,-3.0411 0.6563,-3.625 0.9556,-0.45764 2.1518,-0.30259 4.625,0 -2.363,-1.52206 -1.3849,-2.2614 -2,-3.71875 -0.6836,-1.61946 1.8978,-3.40038 2.6875,-4.25 0.8486,-0.9131 1.7502,-0.62675 3.375,-0.5 -0.8671,-1.0058 -1.2443,-1.52632 -1.125,-3.25 0.2626,-3.79343 7.3943,-10.25822 9.875,-10.03125 0.5406,3.82745 -3.104,11.7562 1.4062,15.71875 -0.1766,3.93808 0.6125,13.06255 -1.8124,13.375 3.729,3.48683 0.6391,9.16875 -2.5313,8.21875 1.9575,2.40603 2.5681,4.94576 2.625,7.875 0.7367,3.26649 1.2196,5.49381 2.0937,8.6875 0.8742,3.19355 1.8696,6.373 3.0626,9.46875 0.7651,4.00232 3.1902,4.42417 4.9062,3.25 1.716,-1.17417 4.6907,-3.93923 6.625,-4.84375 3.1979,-1.41691 3.4117,0.66331 7,-4.4375 4.9815,2.9803 11.986,-9.90966 14.7188,-9.9375 0.3375,3.99268 -2.1323,16.42217 3.6562,15.75 2.3199,2.48734 1.8696,5.35019 5.25,6.21875 3.4871,0.8928 5.9021,-0.88006 8.0312,-3.34375 3.7786,-1.19969 7.9258,-2.57841 6.3438,-7.375 1.7467,-2.78674 4.4522,-4.22373 7.125,-5.6875 3.004,-0.6071 6.2659,-0.50869 6.9375,-5.90625 2.737,-0.5614 7.9987,-11.90899 7.75,-15.96875 2.1557,-1.14479 5.3975,6.03731 7.5937,9.09375 1.3158,3.19298 0.8161,8.0538 3.5626,9.4375 2.7463,1.38356 5.6883,2.54946 7.75,4.875 l 7.4687,10.78125 a 12.50125,12.50125 0 0 0 1.875,-19.0625 c -4.1084,-4.63436 -8.2658,-7.27827 -12.2187,-10.53125 -3.9531,-3.25298 -6.9507,-7.64196 -6.0938,-5.5625 l -10.3125,-25.09375 -12.375,24.15625 c -1.9636,3.83706 -3.0234,6.4346 -3.625,7.8125 -0.6016,1.3779 -0.5741,1.40132 -1.625,2.90625 l -0.375,0.5625 -0.1563,0.28125 c -0.076,0.0219 -0.5602,0.37601 -2.1562,1.25 -2.2059,1.208 -6.4466,3.41967 -10.0312,7.875 -1.4169,1.19988 -2.5481,2.32748 -3.4376,3.375 -1.0222,-2.26638 -2.0067,-4.6509 -3.3124,-7.5625 l -6.0938,-13.5625 -12.3438,8.3125 c -4.663,3.15438 -10.8839,5.89596 -16.7812,8.46875 -0.5059,-1.96124 -1.0226,-3.94056 -1.5,-6.03125 -0.1078,-4.92718 -0.2946,-9.88866 -0.5625,-14.875 1.9707,-8.58121 2.5163,-17.79421 0.5625,-27 l -5.4375,-25.625 -16.5,20.34375 c -5.0824,6.2686 -7.5638,10.7659 -10.125,14.25 -0.7833,0.83895 -7.3974,3.37965 -12.9687,12.84375 l -0.25,0.4375 -0.2188,0.4375 c -0.1539,0.31754 -2.9196,2.44278 -4.375,2.84375 l -2.6562,0.71875 -2.0626,1.78125 c -0.193,0.1626 -1.5486,0.92849 -3.9687,2.34375 -1.6565,0.96868 -4.1217,2.48415 -6.375,5.0625 -4.193,2.47929 -6.5163,5.22168 -7.9687,6.46875 -0.598,0.5134 -0.49,0.49733 -0.5313,0.59375 l -0.8437,-0.0937 -0.031,0 c -0.6545,-0.62587 -1.7873,-1.85562 -4.0313,-4.0625 l -0.094,0.0937 c -4.0991,-4.58769 -10.0859,-6.90128 -14.1875,-7.25 -4.7132,-0.40072 -8.0202,0.23239 -9.5,0.3125 -0.013,7e-4 -0.051,-6.2e-4 -0.062,0 -3.1415,0.1346 -6.2024,0.26351 -9.25,0.40625 -2.7924,-0.97879 -6.2891,-2.13813 -10.5,-3.34375 -1.3097,-1.21825 -2.9291,-2.65721 -5.4063,-4.25 -2.461,-1.58259 -6.1265,-2.99577 -10.1562,-3.4375 0.023,-0.25708 0.018,-0.63092 0.031,-0.9375 2.8778,-8.41361 3.5505,-16.3966 4.1876,-23.15625 1.3148,-5.47978 1.5007,-9.05443 2.375,-12.09375 l 0.031,-0.0937 0.031,-0.0937 c 0.7528,-2.79729 1.1507,-6.01861 1.0626,-8.65625 -0.088,-2.63764 -0.3865,-4.49962 -0.6563,-7.3125 L 1303,659.09375 1285,673.25 c -4.3215,3.40137 -7.8059,7.06233 -11,9.6875 -3.1941,2.62517 -5.7929,3.55244 -5.5625,3.53125 l -0.031,0 -0.062,0 c -5.5348,0.54737 -10.2327,0.66109 -13.7813,-0.125 l -3.4063,-0.75 -3.3124,1.125 c -4.3434,1.46741 -10.0599,1.47348 -16.2813,0.53125 -2.2441,-0.39566 -5.4983,-2.78763 -12.125,-4.875 -0.3056,-0.9462 -0.8399,-2.26872 -1.5937,-4 -0.6476,-3.00762 -1.4959,-5.35202 -1.9063,-6.59375 -0.5278,-1.59673 -0.4097,-1.53675 -0.4063,-1.5625 l 0.1563,-1.21875 -0.062,-1.1875 c -0.1015,-1.78413 -0.2041,-3.42409 -0.25,-4.90625 a 12.50125,12.50125 0 0 0 -13.095,-12.28125 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#5c5f7d;fill-opacity:0.11913356;stroke:none;stroke-width:25;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4005);enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ sodipodi:nodetypes="ccssssssccsccccssssssssssssssssscssccsscsssssssssssssssscccccsscssssssccsssssssssssssssssscsssssssssccsssssssssscsssssssssssssssssscc"
+ inkscape:connector-curvature="0"
+ id="path5184"
+ transform="translate(0,512)"
+ d="m 399.3125,206.25 c -2.5967,0.61624 -5.36235,1.03766 -8.1875,1.59375 1.3094,1.61642 3.1327,3.33849 4.9375,5.34375 6.4846,7.20487 15.63825,15.88669 20.28125,20.96875 7.20155,7.88258 9.5062,11.58721 20.03125,16.3125 10.52495,4.7253 17.13625,6.68778 27.40625,17.46875 4.20085,4.40982 30.0321,18.29372 40.9375,19.78125 10.0366,1.369 19.34845,7.48685 28.3125,9.875 3.25564,0.86735 5.8923,1.65152 8.15625,2.40625 2.93693,2.88934 22.93697,9.33961 28.4375,9.59375 1.53167,0.0714 2.98207,0.15155 4.375,0.25 2.78586,0.19691 5.33229,0.43516 7.8125,0.625 5.5039,0.4173 10.21356,0.53912 15.375,0.0312 11.46465,-1.14394 27.68195,-6.01314 42.28125,-3.875 5.28889,0.75894 10.5269,1.38294 15.71875,1.78125 10.00249,0.76471 20.2454,0.68904 29.96875,-1.21875 14.92163,-2.92773 29.29904,8.87746 42.90625,1.71875 13.6072,-7.1587 28.4639,-5.53601 42.5625,-2.40625 14.0986,3.12977 27.2451,-2.17399 41.125,1.25 13.8799,3.424 25.12355,2.32288 38.71875,7.75 13.5953,5.42712 28.1266,-8.43255 41.6875,-8.625 13.561,-0.19244 21.1677,2.54681 34.0625,-2.21875 12.8949,-4.76556 28.323,7.6221 43.125,7.21875 14.8021,-0.40335 21.54835,3.06297 35.28125,-3.375 13.7329,-6.43796 32.8383,4.88495 46.75,-0.34375 13.9116,-5.22871 28.3804,-11.9537 41.375,-4.34375 12.9945,7.60995 22.784,-5.32895 35.375,-1.15625 12.591,4.17269 24.2537,11.7773 38.8438,12.90625 14.5896,1.12894 24.0381,-3.03962 35.4687,0.90625 11.4305,3.94588 12.6885,-3.26247 23.5937,-4.75 10.9058,-1.48753 17.3321,-0.89488 32.2188,-0.59375 14.8866,0.30113 14.9887,1.19717 26.3438,-0.84375 11.8249,-2.12537 17.0988,1.01401 28.6874,-1.34375 11.7517,-1.70778 15.779,-1.46631 28.375,-4.6875 7.4253,-1.89883 19.844,0.32978 26.25,0.84375 6.3177,0.50684 21.5202,-0.18268 27.6876,-2.96875 8.4574,-3.8207 3.2472,-13.76156 3.4374,-21.875 -10.0468,5.86112 -37.8168,8.21473 -44.4062,8.4375 -9.4368,0.31904 -26.4273,2.27749 -29.375,4.5 -5.4194,4.08608 -12.1882,-0.77682 -23.4688,3.40625 -11.2799,4.18307 -15.1224,-2.03196 -27.9374,-2.3125 -12.8154,-0.28053 -14.4522,1.71427 -27.0313,1.78125 -12.5792,0.067 -17.9959,2.6492 -31.2187,0.3125 -13.223,-2.33671 -29.5526,-7.20893 -42.9376,-4.125 -13.3847,3.08393 -17.0633,1.26432 -30.0937,-2.78125 -13.0304,-4.04557 -28.6536,7.1537 -43.5,7.59375 -14.8464,0.44006 -27.8148,-6.32834 -40.6563,-7.0625 -12.8411,-0.73416 -17.9641,1.46625 -32.8437,5.25 -14.8797,3.78375 -38.84945,-9.41759 -55.03125,-5.4375 -16.1817,3.9801 -27.93935,10.35683 -42.65625,5.34375 -14.7169,-5.01307 -29.39645,-5.42289 -45.21875,-0.84375 -15.8222,4.57914 -26.9081,-16.15899 -42.5625,-11.1875 -15.6543,4.97149 -32.97095,-2.04957 -47.84375,2.34375 -14.8728,4.39334 -24.3064,-0.99203 -38.9375,0.125 -14.6311,1.11702 -26.70693,15.28431 -40.40625,6.96875 -13.69933,-8.31556 -28.128,-0.87482 -43.03125,-0.53125 -4.65726,0.10737 -9.65768,0.1189 -14.6875,0.125 l 0,-0.0312 c -4.39082,0.006 -8.71503,0.0269 -12.90625,0.0937 -1.1131,0.017 -2.2022,0.0357 -3.28125,0.0625 -5.31057,0.0757 -11.05222,0.64247 -15.71875,1.09375 -10.34131,0.87304 -20.34636,-1.84195 -30.3125,-4.53125 -3.8255,-1.03228 -9.18431,-0.22969 -13.09375,0 -10.16956,0.59748 -11.96925,-0.39828 -20.28125,-2.25 -7.8913,-1.81822 -15.55155,0.48984 -24.25,-1.9375 -6.05525,-1.68975 -14.76045,-13.24029 -20.1875,-12.28125 -13.2228,2.3367 -18.60835,-10.24553 -31.1875,-10.3125 -12.57915,-0.067 -14.21615,-8.06178 -27.03125,-7.78125 -12.8151,0.28054 -23.99415,-14.96554 -30.21875,-21.90625 -4.5738,-5.10002 -12.24415,-13.25298 -20.09375,-20.15625 -2.45165,-2.15606 -4.93405,-4.23007 -7.3125,-5.96875 z m -87.21875,1.375 c -3.4385,5.22481 -7.89605,13.33999 -10.84375,15.5625 -5.41935,4.08608 -12.1885,9.22318 -23.46875,13.40625 -11.28025,4.18307 -15.1224,17.96804 -27.9375,17.6875 -12.8151,-0.28053 -14.4521,7.71427 -27.03125,7.78125 -12.57915,0.067 -17.99585,12.6492 -31.21875,10.3125 -13.22285,-2.33671 -29.5526,6.79107 -42.9375,9.875 -13.38485,3.08393 -17.06335,11.26432 -30.09375,7.21875 -13.03045,-4.04557 -28.65358,7.1537 -43.5,7.59375 -14.84642,0.44006 -27.81494,-6.32834 -40.65625,-7.0625 -12.84131,-0.73416 -17.96411,1.46625 -32.84375,5.25 -14.87964,3.78375 -38.84947,-9.41759 -55.03125,-5.4375 -16.18178,3.9801 -27.93932,10.35683 -42.65625,5.34375 -14.71693,-5.01307 -29.39653,-5.42289 -45.21875,-0.84375 -15.82223,4.57914 -26.90811,-16.15899 -42.5625,-11.1875 -15.65439,4.97149 -32.97092,-2.04957 -47.84375,2.34375 -14.87283,4.39334 -24.30642,-0.99203 -38.9375,0.125 -14.63108,1.11702 -26.70693,15.28431 -40.40625,6.96875 -13.69933,-8.31556 -28.128,-0.87482 -43.03125,-0.53125 -9.54934,0.22015 -20.51092,0.0373 -30.125,0.25 -2.60992,-0.72536 -5.52226,-1.67455 -9.1875,-2.8125 -13.0304,-4.04557 -28.6536,7.1537 -43.5,7.59375 -14.8464,0.44006 -27.81485,-6.32834 -40.65625,-7.0625 -12.8412,-0.73416 -17.96415,1.46625 -32.84375,5.25 -14.8797,3.78375 -38.84945,-9.41759 -55.03125,-5.4375 -16.1817,3.9801 -27.93935,10.35683 -42.65625,5.34375 -14.7169,-5.01307 -29.39645,-5.42289 -45.21875,-0.84375 -14.33887,4.14985 -24.79662,-12.48072 -38.28125,-11.9375 -1.39496,0.0562 -2.81365,0.28392 -4.28125,0.75 -11.20513,3.55852 -23.2536,0.9899 -34.65625,0.84375 l 0,22.78125 c 2.08766,0.17712 4.19673,0.47807 6.3125,1 13.8799,3.424 25.12355,2.32288 38.71875,7.75 13.5953,5.42712 28.1266,-8.43255 41.6875,-8.625 13.561,-0.19244 21.1677,2.54681 34.0625,-2.21875 12.8949,-4.76556 28.323,7.6221 43.125,7.21875 14.8021,-0.40335 21.54835,3.06297 35.28125,-3.375 13.7329,-6.43796 32.8383,4.88495 46.75,-0.34375 13.9116,-5.22871 28.3804,-11.9537 41.375,-4.34375 12.9945,7.60995 22.784,-5.32895 35.375,-1.15625 10.65644,3.53157 20.50711,6.57432 32.3125,8.20012 3.57401,0.4922 31.03264,-2.5853 36.71875,-3.66887 14.92163,-2.92773 29.29904,8.87746 42.90625,1.71875 13.6072,-7.1587 28.46389,-5.53601 42.5625,-2.40625 14.0986,3.12977 27.24507,-2.17399 41.125,1.25 13.87993,3.424 25.12351,2.32288 38.71875,7.75 13.59524,5.42712 28.12659,-8.43255 41.6875,-8.625 13.56091,-0.19244 21.16765,2.54681 34.0625,-2.21875 12.89486,-4.76556 28.32293,7.6221 43.125,7.21875 14.80208,-0.40335 21.54834,3.06297 35.28125,-3.375 13.73291,-6.43796 32.83836,4.88495 46.75,-0.34375 13.91164,-5.22871 28.38044,-11.9537 41.375,-4.34375 12.99456,7.60995 22.78395,-5.32895 35.375,-1.15625 12.591,4.17269 24.25385,1.7773 38.84375,2.90625 14.5899,1.12894 24.0382,-13.03962 35.46875,-9.09375 11.43055,3.94588 12.6883,-7.26247 23.59375,-8.75 10.9055,-1.48753 17.3321,-14.89488 32.21875,-14.59375 14.88665,0.30113 15.1625,-7.9622 25.6875,-12.6875 10.525,-4.72529 21.0172,-14.17991 28.21875,-22.0625 7.20155,-7.88259 13.9661,-7.41021 18.4375,-15.34375 3.7631,-6.67675 8.5059,-6.71799 10,-12.96875 -1.5459,-0.7507 -3.0514,-1.56198 -4.5,-2.4375 z"
+ style="color:#000000;fill:#000000;fill-opacity:0.08664258;fill-rule:evenodd;stroke:none;stroke-width:50;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3926"
+ d="m 578.59013,654.43045 c 1.529,-1.08806 3.63741,-3.04837 3.01563,-5.5625 l -3.26563,4.60938 c -0.0395,0.31741 0.0535,0.63433 0.25,0.95312 z"
+ style="color:#000000;fill:#474a61;fill-opacity:0.05054154;fill-rule:evenodd;stroke:none;stroke-width:50;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <path
+ style="color:#000000;fill:#474a61;fill-opacity:0.05054154;fill-rule:evenodd;stroke:none;stroke-width:50;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m -1981.4063,654.4375 c 1.529,-1.08806 3.6218,-3.04837 3,-5.5625 l -3.25,4.59375 c -0.039,0.31741 0.054,0.64996 0.25,0.96875 z"
+ id="path4126"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="light effect"
+ style="display:inline"
+ transform="translate(0,-512)">
+ <path
+ transform="matrix(0.67941455,0,0,0.5363786,598.42586,559.43838)"
+ inkscape:connector-curvature="0"
+ id="path3921"
+ d="m 410.1875,71.6875 c -14.92121,1.389029 -29.05118,11.074914 -44.36154,6.728644 -16.35744,-0.75165 -27.72854,13.381322 -42.14123,18.63586 -9.18177,8.892916 -15.14801,20.927286 -27.54652,26.164706 -15.47509,12.16199 -23.40886,30.90645 -30.98836,48.46621 -5.01813,14.79229 -3.76916,30.76041 -8.34801,45.63346 -3.23971,14.95439 -1.3388,31.13691 7.13288,44.07502 3.88973,13.63806 2.02879,28.93106 11.27859,40.7614 6.26101,13.31085 13.58496,28.67276 28.99829,33.02362 15.46178,4.22574 29.18731,12.68573 44.2291,17.50826 14.4643,6.0795 30.01112,4.57218 45.24169,4.53728 15.15316,-0.6626 29.92831,-2.84837 45.11645,-0.79326 14.68403,-1.93487 26.2329,-14.14157 41.55015,-14.75168 13.49749,0.40951 25.6807,-7.30404 39.14286,-8.13339 15.36022,-2.90144 21.72583,-17.50024 28.66848,-29.20552 10.45308,-9.21696 12.92111,-22.36026 14.27962,-35.38304 2.8995,-13.22149 9.98757,-25.70249 10.34538,-39.33999 -3.33867,-21.51246 -2.30394,-45.04082 -15.79116,-63.46256 -9.4313,-14.11719 -15.14946,-31.25703 -27.80975,-42.91835 C 518.25758,112.40388 508.38564,99.094489 491.88869,97.309337 479.07651,89.986048 465.97452,83.436817 451.75403,79.3974 441.06001,76.777223 429.97785,77.315162 419.72106,72.936959 416.60435,72.166561 413.40414,71.671917 410.1875,71.6875 z m 17.5625,6.34375 c -0.38872,1.177191 -0.7782,-0.856468 0,0 z M 324,337.8125 324.21875,338.09375 324,337.8125 z"
+ style="fill:#ffffff;fill-opacity:0.43354432;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4854);enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="rocks"
+ style="display:inline"
+ transform="translate(0,-512)">
+ <g
+ id="g4193"
+ style="filter:url(#filter4202)">
+ <g
+ id="g4177">
+ <path
+ style="color:#000000;fill:#111218;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ mask="none"
+ d="m -96.65625,791.59375 c -0.5481,0.0134 -1.0111,0.31137 -1.3125,0.96875 -3.5677,27.07123 1.1196,56.69275 -14.125,80.375 -16.2349,23.236 -33.71805,52.8288 -65.65625,45.34375 -13.09429,-1.64519 -28.79722,0.77097 -43.4375,0.5625 l 0,122.59375 c 631.61566,-0.1732 1262.8516,-0.094 1895.0625,0.125 l 0,-141.6875 c -24.9897,0.17052 -50.1205,1.64601 -74.6562,-2.40625 -15.1021,-2.10134 -21.0456,-44.50005 -32.7188,-44.6875 -2.3899,-0.0384 -5.0337,4.21375 -8.0312,8.15625 -6.2165,25.09004 -20.491,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.09,-9.23319 -15.5783,-36.81646 -20.875,-36.6875 -0.5481,0.0134 -1.0111,0.31137 -1.3125,0.96875 -3.5677,27.07123 1.1196,56.69275 -14.125,80.375 -16.2349,23.236 -33.7181,52.8288 -65.6563,45.34375 -22.6658,-2.84778 -53.145,6.41782 -72.4062,-6.6875 -0.08,-0.0546 -0.1703,-0.10086 -0.25,-0.15625 -0.5046,-0.32835 -0.9689,-0.7055 -1.4375,-1.0625 -0.5474,-0.42642 -1.0673,-0.87564 -1.5938,-1.34375 -0.3474,-0.30886 -0.6931,-0.64112 -1.0312,-0.96875 -0.2527,-0.24501 -0.5027,-0.49425 -0.75,-0.75 -4.1151,-4.54166 -6.5136,-10.40907 -8.4688,-16.34375 -11.1713,-22.1624 -16.2457,-57.95453 -34.0625,-78.09375 -1.215,-1.3067 -2.5478,-2.36339 -4.3123,-2.4997 -1.3628,0.83621 -1.7689,5.52583 -1.75,12.25 0,1.34483 0.031,2.78766 0.062,4.28125 0.3359,14.93588 1.9451,36.56438 0.5937,50.46875 3.5363,30.2009 -10.8899,45.98025 -41.8125,34.40625 -11.6035,-0.20278 -22.4274,-6.9153 -31.7812,-13.1561 -0.081,-0.0548 -0.169,-0.10122 -0.25,-0.15625 -12.9362,-8.78766 -24.7578,-19.9424 -28,-26.96875 -8.6723,-8.94302 -9.7131,-39.88874 -19.1046,-44.883 -2.8478,-1.38167 -6.3596,0.43473 -10.9579,7.4455 -13.2699,21.18524 -30.1967,38.207 -44.0312,57.78125 -5.0744,27.8113 -70.21635,22.5523 -85.4688,5.03125 -15.23735,-28.65935 -31.124,-88.20724 -38.625,-88.53125 -10.354,-1.00227 -28.61405,43.09289 -33.90625,67.03125 -4.62365,16.57245 -5.60205,40.8521 -28.28125,33.8125 -29.3283,-1.13045 -59.50355,3.02415 -88.09375,-2.90625 -29.892,-0.0269 -37.02155,-33.22683 -45.03125,-55.65625 -1.10915,-10.15206 -4.47688,-25.33488 -8.96875,-25.75 -3.57606,-0.33049 -14.35087,12.51958 -20.3125,25.03125 -2.65931,5.58112 -3.4275,13.96938 -3.9375,15.34375 -7.84225,16.55259 -14.17655,41.3178 -36.875,34.8125 -30.7202,-1.0039 -61.90105,2.4082 -92.1875,-2.59375 -15.10181,-2.10179 -21.04572,-44.5005 -32.71895,-44.68795 -2.38989,-0.0384 -5.03305,4.21375 -8.03125,8.15625 -6.21635,25.09004 -20.49085,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.0896,-9.23319 -22.72806,-55.01589 -28.02478,-54.88693 -17.07445,-0.007 -17.93483,108.60162 -38.51177,127.81729 -16.2351,23.236 -9.9938,14.805 -35.4322,17.06964 -22.76142,-2.8598 -67.64988,4.61687 -86.89721,-8.73397 -24.97843,-19.68701 -34.18877,-117.09322 -47.45381,-116.06221 -10.11765,1.70414 -15.14478,40.0682 -17.00994,61.05907 -2.16389,24.35277 -10.88672,46.90362 -26.6558,50.59067 -31.39495,2.56078 -52.78532,4.10972 -93.01399,-7.66581 C 48.11685,895.36766 42.1732,852.96895 30.5,852.7815 c -2.3899,-0.0384 -5.03355,4.21375 -8.03125,8.15625 -6.2165,25.09004 -20.49095,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.09,-9.23319 -15.5783,-36.81646 -20.875,-36.6875 z"
+ id="path5678"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccscccccccccccccccccccccsccccccccccsscccsccscccccsccsccccc" />
+ <path
+ style="color:#000000;fill:#111218;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m -223.375,457.4375 0,87.3125 c 0.23961,0.1472 0.48006,0.28988 0.71875,0.4375 0.1681,0.10399 0.3318,0.20748 0.5,0.3125 0.608,0.38 1.2065,0.76363 1.8125,1.15625 0.7726,0.5003 1.5459,1.01285 2.3125,1.53125 0.081,0.0548 0.1691,0.10132 0.25,0.15625 12.9355,8.78748 24.7579,19.91145 28,26.9375 10.6597,10.41379 11.63805,65.5118 30.03125,37.46875 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 5.0744,-27.8113 70.21645,-22.58355 85.46875,-5.0625 15.23735,28.65935 31.1241,88.20724 38.625,88.53125 10.3542,1.00226 28.61405,-43.09289 33.90625,-67.03125 4.6236,-16.57245 5.5708,-40.82085 28.25,-33.78125 29.3283,1.13045 49.87855,-0.3054 78.46875,5.625 29.8912,0.0265 37.8653,49.35183 45.875,71.78125 1.1091,10.15205 15.85195,34.08488 20.34375,34.5 3.5761,0.33049 11.75675,-40.14458 17.71875,-52.65625 2.6592,-5.58112 3.4277,-13.96937 3.9375,-15.34375 7.8424,-16.55259 12.4767,-37.26424 40.78125,-36.75 28.93087,0.52562 31.85318,15.45327 39.69632,24.91345 3.83122,16.07389 11.97764,38.69686 23.39743,50.21155 2.93605,1.88772 6.58306,0.29269 11.46875,-7.15625 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 3.24258,-15.28004 22.02915,-18.88391 35.0936,-19.4375 19.85586,-0.81571 42.22909,5.01749 50.375,14.375 15.23735,28.65935 31.124,88.20724 38.625,88.53125 10.354,1.00226 28.61405,-43.09289 33.90625,-67.03125 4.62365,-16.57245 5.5708,-40.82085 28.25,-33.78125 29.3283,1.13045 59.5348,-3.0554 88.125,2.875 29.89125,0.0265 36.9903,33.25808 45,55.6875 1.10915,10.15206 4.47687,25.30363 8.96875,25.71875 3.57606,0.33049 14.35085,-12.51958 20.3125,-25.03125 2.6593,-5.58111 3.4275,-13.96938 3.9375,-15.34375 7.84225,-16.5526 14.17655,-41.3178 36.875,-34.8125 30.7202,1.0039 61.9323,-2.4082 92.21875,2.59375 15.1016,2.10134 21.01425,44.5313 32.6875,44.71875 2.38985,0.0384 5.03305,-4.245 8.03125,-8.1875 6.21635,-25.09005 20.49085,-54.18715 51,-36.875 37.1824,-0.8024 46.9806,38.58965 47.2813,69.5625 0.09,9.23319 15.5783,36.81646 20.875,36.6875 0.5479,-0.0134 0.9799,-0.34262 1.2812,-1 3.5677,-27.07123 -1.0882,-56.69275 14.1563,-80.375 16.2351,-23.236 33.718,-52.79755 65.6562,-45.3125 22.7614,2.85979 53.3777,-6.50708 72.625,6.84375 0.2657,0.17295 0.5256,0.35022 0.7813,0.53125 0.2229,0.16454 0.4366,0.32894 0.6562,0.5 0.5475,0.42642 1.0985,0.87564 1.625,1.34375 0.384,0.34139 0.7526,0.69815 1.125,1.0625 0.1382,0.13525 0.2696,0.26778 0.4063,0.40625 0.085,0.0909 0.1666,0.1893 0.25,0.28125 4.0947,4.51899 6.5187,10.31468 8.4687,16.21875 0.045,0.13478 0.081,0.27138 0.125,0.40625 0.6867,2.28959 1.4037,4.65938 2.1875,7.09375 0.092,0.30004 0.1883,0.60855 0.2813,0.90625 0.4743,1.46174 0.9649,2.90855 1.4687,4.40625 0.8044,2.39267 1.6312,4.799 2.5,7.25 1.5457,4.36088 3.186,8.79268 4.875,13.15625 0.1785,0.46166 0.3515,0.91475 0.5313,1.375 0.1148,0.29385 0.2284,0.58181 0.3437,0.875 0.662,1.68433 1.3264,3.3457 2,5 0.5199,1.2775 1.0381,2.52885 1.5625,3.78125 0.6418,1.5322 1.2924,3.01578 1.9375,4.5 0.044,0.10191 0.081,0.21085 0.125,0.3125 0.7386,1.69541 1.4814,3.35345 2.2188,4.96875 0.4116,0.90196 0.809,1.81469 1.2187,2.6875 0.04,0.0859 0.085,0.16438 0.125,0.25 0.4229,0.89776 0.8616,1.76185 1.2813,2.625 0.8283,1.70294 1.6276,3.32602 2.4375,4.875 0.4593,0.87853 0.9237,1.77113 1.375,2.59375 0.076,0.13898 0.1426,0.26894 0.2187,0.40625 0.2708,0.48939 0.5453,0.97 0.8125,1.4375 0.1242,0.217 0.2518,0.44413 0.375,0.65625 0.2204,0.37895 0.4697,0.76209 0.6875,1.125 0.3376,0.56258 0.6693,1.13408 1,1.65625 0.039,0.0619 0.086,0.12621 0.125,0.1875 0.2917,0.45778 0.5891,0.91945 0.875,1.34375 0.2731,0.40499 0.5455,0.78326 0.8125,1.15625 0.1477,0.20624 0.2917,0.42885 0.4375,0.625 0.017,0.0224 0.047,0.0402 0.062,0.0625 0.2892,0.38744 0.5628,0.74762 0.8438,1.09375 0.073,0.0905 0.1457,0.19364 0.2187,0.28125 0.1478,0.17793 0.292,0.33421 0.4375,0.5 0.2542,0.28942 0.5039,0.56119 0.75,0.8125 0.097,0.0994 0.1855,0.18795 0.2813,0.28125 0.2291,0.22263 0.466,0.43791 0.6875,0.625 0.071,0.0595 0.1487,0.13166 0.2187,0.1875 0.1591,0.12722 0.345,0.26732 0.5,0.375 0.2295,0.15843 0.4677,0.29216 0.6875,0.40625 0.092,0.0474 0.191,0.0855 0.2813,0.125 0.033,0.0145 0.061,0.0491 0.094,0.0625 0.068,0.0276 0.1521,0.0396 0.2187,0.0625 0.086,0.0296 0.1654,0.0721 0.25,0.0937 0.043,0.011 0.082,0.0225 0.125,0.0312 0.2637,0.0546 0.5364,0.0576 0.7813,0.0312 0.1363,-0.0836 0.2574,-0.18498 0.375,-0.34375 3.6485,-4.92185 -1.376,-45.10447 0.7187,-66.65625 -3.5365,-30.2009 10.89,-45.949 41.8125,-34.375 0.5,-0.0326 1.0291,-0.0483 1.5625,-0.0312 0.5339,0.017 1.0602,0.0606 1.625,0.125 0.075,0.008 0.1431,0.0219 0.2188,0.0312 0.4972,0.0614 1.0123,0.12293 1.5312,0.21875 0.074,0.0137 0.1438,0.0168 0.2188,0.0312 0.5253,0.1011 1.0484,0.24069 1.5937,0.375 0.1494,0.0368 0.2867,0.0858 0.4375,0.125 0.4806,0.12469 0.9745,0.25762 1.4688,0.40625 0.5887,0.17709 1.1752,0.35302 1.7812,0.5625 0.054,0.0188 0.1018,0.0434 0.1563,0.0625 0.241,0.0841 0.4752,0.16097 0.7187,0.25 0.4337,0.15848 0.8715,0.32649 1.3125,0.5 0.2833,0.11146 0.5579,0.22629 0.8438,0.34375 0.4058,0.16648 0.8078,0.32184 1.2187,0.5 0.3288,0.14257 0.6369,0.28772 0.9688,0.4375 0.378,0.17053 0.7433,0.35168 1.125,0.53125 0.3748,0.17642 0.7472,0.34645 1.125,0.53125 0.3375,0.16506 0.6603,0.3285 1,0.5 0.4277,0.21597 0.8505,0.43049 1.2812,0.65625 0.2996,0.15699 0.6056,0.30721 0.9063,0.46875 0.4701,0.25248 0.934,0.51817 1.4062,0.78125 0.2605,0.14506 0.5201,0.28935 0.7813,0.4375 0.5142,0.29203 1.0156,0.60285 1.5312,0.90625 0.2181,0.12832 0.4382,0.24474 0.6563,0.375 0.5611,0.33486 1.1265,0.6843 1.6875,1.03125 0.1681,0.10399 0.3318,0.20748 0.5,0.3125 0.608,0.38 1.2065,0.76363 1.8125,1.15625 0.7726,0.5003 1.5459,1.01285 2.3125,1.53125 0.081,0.0548 0.1691,0.10132 0.25,0.15625 12.9355,8.78748 24.7579,19.91145 28,26.9375 10.6597,10.41379 11.638,65.5118 30.0312,37.46875 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 5.0744,-27.8113 70.2165,-22.58355 85.4688,-5.0625 15.2373,28.65935 31.124,88.20724 38.6249,88.53125 10.3542,1.00226 28.6141,-43.09289 33.9063,-67.03125 4.6236,-16.57245 5.5708,-40.82085 28.25,-33.78125 22.2999,0.85954 45.0938,-1.34016 67.3125,0.15625 l 0,-80.25 C 1041.0302,456.5537 408.802,457.6862 -223.3752,457.43745 z"
+ id="path10337"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccsccscccccccccccsscccsccsccccccsscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccccc" />
+ </g>
+ <path
+ transform="translate(512,512)"
+ sodipodi:nodetypes="cccscccccccccccccccccsscsccccscccscsscccccccsccccccccccccscsscccsccccccscsccccccccccccccccccscccccccccccscssscsscccsccccccscscccccsscscscsccccccccccccccccscscccccscccsccccccccccccccccccsccccccccccccccccscsscccscccccccccccccccccsscsccccscccscsscccccccsccccccccccccccccccccccccsscscsccccccssccccccccccscssssssssccssccccccsssscscccsscccscsccccccc"
+ inkscape:connector-curvature="0"
+ id="path5680"
+ d="m -103.78125,256.90625 c -10.43109,0.0582 -17.88685,18.52844 -18.71875,20.34375 -7.72764,23.75851 -10.97554,50.85536 -15.40625,73.875 -8.17054,11.70219 -4.04386,24.0271 -13.65625,32.6875 -9.65471,8.69853 -11.62149,18.89368 -25.96875,15.53125 -4.54877,0.54562 -29.5061,2.07092 -38,2.4375 -13.77336,-2.78884 -48.40121,-21.18656 -56.57933,-29.04427 -4.14238,-4.30105 -3.96145,-10.54378 -6.12842,-17.3125 -6.05743,-17.98483 -8.26477,-34.91399 -14.91691,-49.84375 -3.60223,-8.08002 -3.96952,-15.69795 -7.37652,-21.17836 -3.12508,-5.14995 -8.05539,-11.99526 -13.32164,-11.67835 -10.18488,4.20651 -16.00968,25.06757 -15.72526,32.26296 -3.65625,17.5588 -5.44612,26.31257 -6.35177,39.83994 -0.86263,14.2206 -2.93877,25.00417 -8.18217,29.68026 -6.85994,16.97995 -27.99694,15.1266 -32.96219,12.89604 -5.66044,-1.22262 -34.90335,0.72176 -34.73704,-4.18447 -12.24726,-0.11707 -24.33111,-0.73452 -36.15625,-2.6875 l -0.0625,0 -0.0625,0 c -1.5454,-0.21505 -3.8617,-1.93336 -6.375,-5.6875 -2.5132,-3.75414 -4.9772,-9.06161 -7.375,-14.46875 -2.3977,-5.40714 -4.74155,-10.88326 -7.46875,-15.40625 -1.3636,-2.2615 -2.8026,-4.32917 -4.6875,-6.03125 -1.8849,-1.70208 -4.43715,-3.10857 -7.40625,-3.15625 -4.1997,-0.0675 -6.03975,2.45997 -7.65625,4.34375 -1.6165,1.88378 -3.0361,3.93843 -4.4375,5.78125 l -0.625,0.84375 -0.25,1 c -3.0019,12.11604 -8.12335,24.98308 -15.09375,32.03125 -3.4851,3.52409 -7.2267,5.62115 -11.6875,6.15625 -4.4609,0.5351 -9.94765,-0.48892 -16.90625,-4.4375 l -1.1875,-0.6875 -1.375,0.0312 c -16.8173,0.36292 -26.4026,-7.70662 -32.9375,-20.1875 -6.5349,-12.48095 -9.07335,-29.45683 -9.21875,-44.4375 -0.036,-3.68185 -1.25115,-7.28515 -2.90625,-11.4375 -1.6551,-4.15235 -3.8757,-8.61599 -6.25,-12.8125 -2.3743,-4.19651 -4.87305,-8.10802 -7.34375,-11.15625 -1.2354,-1.52411 -2.4594,-2.8326 -3.8125,-3.9375 -1.353,-1.1049 -2.8279,-2.35087 -5.6875,-2.28125 -2.3881,0.0582 -4.88685,2.09094 -5.71875,3.90625 l -0.3125,0.65625 -0.0937,0.75 c -3.7034,28.10021 0.55945,56.64796 -13.40625,78.34375 -8.1705,11.70219 -16.4501,24.49585 -26.0625,33.15625 -9.6547,8.69853 -19.9027,13.36243 -34.25,10 l -0.25,-0.0625 -0.25,-0.0312 c -12.3259,-1.54865 -25.83275,0.16156 -38.40625,0.46875 -3.89567,-0.78878 -7.76262,-1.23178 -11.5,-1.65625 l 0,18.375 c 6.94656,0.5418 13.83326,-0.006 19.9375,-1.90625 16.0635,-4.2463 31.82025,-2.9555 47.46875,4.65625 20.4227,7.27355 19.1783,-20.3748 33.4375,-26.625 1.0815,-15.11725 21.24345,-10.9133 32.84375,-17.59375 -13.4497,-0.079 -17.8344,-15.11905 -3.0625,-10.59375 -7.4161,-5.9089 6.1319,-42.61108 5.3125,-58.21875 3.8819,7.41352 8.17245,34.88957 10.59375,41.5625 0.6351,1.75033 -4.4592,6.6954 -9.9375,9.0625 4.7414,2.89435 14.9183,2.1239 17.75,5.9375 5.8742,7.91125 3.6214,13.79825 -9.5,20.03125 -3.1725,1.50705 32.0725,6.83215 35.0625,8.09375 10.4489,4.0835 21.33065,-1.51505 21.15625,12.0625 9.0572,5.9095 22.8365,-19.1967 33.875,-4.90625 2.1367,-3.1745 3.72985,-6.8897 5.15625,-10.59375 0.6604,-1.7149 16.09305,-0.9694 16.71875,-2.625 0.5485,-1.4509 -13.7003,-5.2985 -13.125,-6.625 2.3096,-5.32395 5.0449,-9.3702 9.8125,-9.71875 0,-5.3025 1.9031,-18.07256 3.8125,-18.15625 1.568,-0.0687 5.85045,8.4697 6.03125,12.8125 0.1453,3.49205 -1.0675,1.57615 -3.3125,4.34375 3.4053,1.8318 3.32145,0.4804 6.84375,1.375 4.2975,1.0915 7.5831,17.32355 1.0625,24.1875 6.4228,4.1718 15.1011,-0.9505 20.625,2.9375 7.00233,4.92858 19.79593,11.99451 37.71875,9.4375 0.01,0.002 0.0217,-0.002 0.0312,0 13.75218,3.56763 32.08333,-1.79219 44.09139,-1.16237 13.1132,14.52535 22.29223,1.79405 36.01678,-12.16315 2.3663,-1.3211 5.40085,-2.596 8.46875,-3.9375 4.0497,-0.0725 9.2615,1.5753 13.5,-2.3125 l -5.88207,-6.51201 c 1.86215,-2.209 8.68197,-4.17099 6.88207,-7.17549 l 0.0312,-0.15625 c -0.036,-3.5e-4 -0.0888,3.5e-4 -0.125,0 -1.08575,-1.7461 -6.73774,-3.65205 -9.57299,-5.75 1.94925,-3.77555 3.0735,-9.11815 2.4375,-15.0625 -0.82745,-7.7302 7.30384,-7.08045 7.35194,-7.875 0.1989,-3.28215 -6.73688,-5.44015 -7.07698,-8.78125 -1.0045,-9.87002 2.55816,-26.70539 4.15856,-32.89503 1.09615,1.79776 1.9834,10.03045 4.32355,14.95658 0.4985,1.0496 0.98947,6.27337 -0.77783,9.5947 -0.88895,1.67019 4.1943,1.13232 4.5,1.8125 2.18425,4.86267 3.9046,13.37795 5.84375,18.6875 3.6317,9.9439 -5.0333,8.811 -10.03125,13.875 4.97155,1.38738 8.24718,3.41632 10.6875,5.53125 3.6545,2.81503 4.92006,6.46372 8.5,8.5625 -7.23847,15.58598 10.36514,7.82098 14,11.65625 0.0638,0.0673 0.13255,0.14414 0.1875,0.21875 0.32968,0.4477 0.50954,1.02206 0.46875,1.78125 15.00925,11.41658 55.70459,30.17143 67.64183,26.26302 16.06345,-4.2463 31.82025,-2.9555 47.46875,4.65625 20.4227,7.27355 19.17835,-20.3748 33.4375,-26.625 1.0815,-15.11725 12.2747,-14.81955 23.875,-21.5 -17.45075,0.10286 -17.91345,-31.70778 5.90625,-27.59375 -3.16178,-2.5192 -14.09104,-12.23557 -12.46875,-21.0625 1.79681,-9.77647 6.75128,-31.20275 6.28125,-40.15625 1.98589,3.79263 13.326265,26.54954 8.65625,41.75 -1.070155,3.48326 9.015268,5.54458 9.71875,8.65625 2.033176,8.99324 -0.159855,13.32862 0.71875,15.75 0.635113,1.75032 -1.4592,6.0079 -6.9375,8.375 4.74135,2.89435 14.91835,2.1239 17.75,5.9375 5.87415,7.91125 3.6214,13.79825 -9.5,20.03125 -3.1725,1.50705 32.07245,6.83215 35.0625,8.09375 10.44895,4.0835 21.33055,-1.51505 21.15625,12.0625 9.05715,5.9095 22.83645,-19.1967 33.875,-4.90625 2.1366,-3.1745 3.7298,-6.8897 5.15625,-10.59375 0.6604,-1.7149 16.09305,-0.9694 16.71875,-2.625 0.5485,-1.4509 -13.70035,-5.2985 -13.125,-6.625 2.30955,-5.32395 5.04495,-9.3702 9.8125,-9.71875 0.005,-5.3025 1.9031,-18.07256 3.8125,-18.15625 1.56795,-0.0687 5.8504,8.4697 6.03125,12.8125 C 36.45785,368.6483 35.245,366.7324 33,369.5 c 3.40535,1.8318 3.3215,0.4804 6.84375,1.375 4.2976,1.0915 7.58305,17.32355 1.0625,24.1875 6.4227,4.1718 15.1011,-0.9505 20.625,2.9375 9.56565,6.7328 31.5847,2.5051 59.875,-1.84375 18.29755,-10.3686 35.6594,9.88825 50.40625,6.4375 10.47235,-5.84945 16.89895,-11.24685 34.9375,-13.5625 0.88445,-2.6966 -20.64115,-2.04575 -15.75,-12.9375 1.55205,-3.45655 10.90515,-5.00955 16.46875,-6.6875 -2.01235,-1.50625 -11.51235,-4.7028 -11.90625,-6.25 -1.269,-4.9845 4.1447,-9.90611 5.28125,-13.15625 0.63695,-1.82142 10.98511,-2.45803 9.59375,-2.9375 -1.73895,-0.59918 -8.0602,-4.07653 -5.40625,-5.90625 3.27725,-2.25941 5.44903,-4.24765 7.78125,-6.5 3.13193,2.79233 6.53575,10.32271 6.21875,14.96875 -0.32005,4.69027 -12.22915,5.284 -11.9375,5.8125 0.9998,1.8113 14.35355,7.8718 13.28125,8.8125 -5.5238,4.8458 -5.00583,7.27185 -9.28125,9.84375 2.13165,2.8525 9.87575,4.6549 16.375,4.84375 6.58015,20.27445 22.48225,14.9566 38.90625,23.59375 20.5697,6.0266 42.4967,2.39295 63.75,3.03125 12.50665,-0.44725 36.0599,15.6463 39.75,6.5 5.26155,-12.897 29.85235,-17.1656 21.375,-34.03125 0.675,-1.7683 26.90565,-6.4566 24.125,-9.875 -0.87495,-1.07535 -19.95585,-6.75725 -17.9375,-11.78125 1.9436,-4.83875 3.33345,-9.3312 5.09375,-11.28125 9.1728,-0.94437 9.50965,-1.24725 15.9375,-4.25 -4.4878,-0.36002 -8.2754,-3.53298 -10,-3.1875 2.92085,-13.54697 1.7508,-14.53579 8.9375,-23.875 0.20515,3.82934 1.10945,7.36251 2.4375,10.6875 0.4367,1.09339 -4.8296,5.16265 -4.3125,6.21875 0.6645,1.35726 7.1163,-0.31176 7.875,1 3.2489,5.61516 7.1705,10.90494 10.0625,16.5625 1.0935,2.13876 -10.61555,7.9028 -9.90625,10.1875 0.807,2.59945 13.97425,1.7304 14.03125,4.625 8.56345,8.68335 0.73755,24.6745 -11.6875,28.71875 -6.4542,2.1008 28.90955,0.45265 29.9375,7.71875 5.91805,15.6359 23.2326,-1.73095 29.40625,12.59375 17.7672,7.1672 36.24385,7.6991 53.40625,-0.5625 9.0102,-6.68485 16.4963,-0.9159 10.15625,-15.28125 7.9967,-15.33145 25.3981,-11.41475 36.0625,-15.0625 -11.43525,-2.6728 -22.386,-11.19775 -18.8125,-15.03125 1.4674,-1.5742 6.40135,-11.2148 9.9375,-11.65625 5.0752,-0.63353 14.69105,2.3515 17.59375,0.875 -4.98705,-3.48028 -8.4076,-9.1347 -4.90625,-14.6875 2.2694,-4.75639 7.811,-12.58457 8.6875,-11.3125 6.45475,9.368 1.42815,24.36887 9.46875,26.8125 2.87085,4.43125 -11.44215,5.8957 -18.8125,11.125 13.99155,7.39915 22.79155,7.23515 23.78125,11.09375 1.63325,6.368 8.80245,18.1695 18.71875,19.34375 8.4539,0.30259 15.22047,2.80107 22.4375,6.03125 9.46224,3.84532 16.72639,7.75327 25.84375,8.46875 5.44888,4.76441 10.61885,11.57635 17.59375,11.5 0.3185,-0.007 0.6172,-0.0279 0.9375,-0.0625 4.483,-0.48477 9.1831,-3.70623 15.1875,-9.8125 2.3664,-1.3211 5.40085,-2.596 8.46875,-3.9375 4.0497,-0.0725 9.2615,1.5753 13.5,-2.3125 l 0.4375,-5.9375 c 1.8621,-2.209 2.3623,-4.7455 0.5625,-7.75 l 0.0312,-0.15625 c -0.036,-3.5e-4 -0.089,3.5e-4 -0.125,0 -1.0857,-1.7461 -2.94605,-3.65205 -5.78125,-5.75 1.9492,-3.77555 3.0735,-9.11815 2.4375,-15.0625 -0.8274,-7.7302 8.10815,-7.08045 8.15625,-7.875 0.1989,-3.28215 -9.0349,-5.44015 -9.375,-8.78125 -1.0046,-9.87002 -2.0378,-19.46661 -0.4375,-25.65625 1.0962,1.79776 1.75365,3.13637 4.09375,8.0625 0.4985,1.0496 3.5172,5.92867 1.75,9.25 -0.889,1.67019 4.1943,1.13232 4.5,1.8125 2.1843,4.86267 3.90455,13.37795 5.84375,18.6875 3.6316,9.9439 -5.03335,8.811 -10.03125,13.875 9.3972,1.28702 12.7376,10.0091 19.1875,14.09375 -4.1386,8.68277 4.6966,10.13379 10.75,10.5 0.052,0.005 0.10485,0.0258 0.15625,0.0312 3.7109,0.84579 4.6011,3.69806 7.25,5.625 13.1667,6.0254 29.889,8.08203 43,4 16.0635,-4.2463 31.82025,-2.9555 47.46875,4.65625 20.4227,7.27355 19.1783,-20.3748 33.4375,-26.625 1.0815,-15.11725 21.24345,-10.9133 32.84375,-17.59375 -13.4497,-0.079 -17.8344,-15.11905 -3.0625,-10.59375 -7.4161,-5.9089 6.1319,-42.61108 5.3125,-58.21875 3.8819,7.41352 8.17245,34.88957 10.59375,41.5625 0.6351,1.75033 -4.4592,6.6954 -9.9375,9.0625 4.7414,2.89435 14.9183,2.1239 17.75,5.9375 5.8742,7.91125 3.6214,13.79825 -9.5,20.03125 -3.1725,1.50705 32.0725,6.83215 35.0625,8.09375 10.4489,4.0835 21.33065,-1.51505 21.15625,12.0625 9.0571,5.9095 22.8365,-19.1967 33.875,-4.90625 2.1368,-3.1745 3.7299,-6.8897 5.1563,-10.59375 0.6604,-1.7149 16.0932,-0.9694 16.7187,-2.625 0.5487,-1.4509 -13.7001,-5.2985 -13.125,-6.625 2.3098,-5.32395 5.045,-9.3702 9.8126,-9.71875 0,-5.3025 1.903,-18.07256 3.8124,-18.15625 1.568,-0.0687 5.8505,8.4697 6.0313,12.8125 0.1453,3.49205 -1.0675,1.57615 -3.3125,4.34375 3.4053,1.8318 3.3213,0.4804 6.8438,1.375 4.2973,1.0915 7.5832,17.32355 1.0624,24.1875 6.423,4.1718 15.1013,-0.9505 20.625,2.9375 9.5659,6.7328 31.5849,2.5051 59.875,-1.84375 8.1848,-4.638 16.1838,-3.12967 23.8438,-0.375 l 0,-12.90625 c -27.6962,-0.18715 -55.078,1.97349 -81.2188,-2.34375 l -0.062,0 -0.063,0 c -1.5452,-0.21505 -3.8615,-1.93336 -6.375,-5.6875 -2.5132,-3.75414 -4.9772,-9.06161 -7.375,-14.46875 -2.3976,-5.40714 -4.7415,-10.88326 -7.4687,-15.40625 -1.3636,-2.2615 -2.8026,-4.32917 -4.6875,-6.03125 -1.8849,-1.70208 -4.4373,-3.10857 -7.4062,-3.15625 -4.1997,-0.0675 -6.0398,2.45997 -7.6563,4.34375 -1.6165,1.88378 -3.0361,3.93843 -4.4375,5.78125 l -0.625,0.84375 -0.25,1 c -3.0019,12.11604 -8.1232,24.98308 -15.0938,32.03125 -3.485,3.52409 -7.2266,5.62115 -11.6874,6.15625 -4.4611,0.5351 -9.9477,-0.48892 -16.90635,-4.4375 l -1.1875,-0.6875 -1.375,0.0312 c -16.8173,0.36292 -26.4026,-7.70662 -32.9375,-20.1875 -6.5349,-12.48095 -9.07335,-29.45683 -9.21875,-44.4375 -0.036,-3.68185 -1.25115,-7.28515 -2.90625,-11.4375 -1.6551,-4.15235 -3.8757,-8.61599 -6.25,-12.8125 -2.3743,-4.19651 -4.87305,-8.10802 -7.34375,-11.15625 -1.2354,-1.52411 -2.4594,-2.8326 -3.8125,-3.9375 -1.353,-1.1049 -2.8279,-2.35087 -5.6875,-2.28125 -2.3881,0.0582 -4.88685,2.09094 -5.71875,3.90625 l -0.3125,0.65625 -0.0937,0.75 c -3.7034,28.10021 0.55945,56.64796 -13.40625,78.34375 -8.1705,11.70219 -16.4501,24.49585 -26.0625,33.15625 -9.6547,8.69853 -19.9027,13.36243 -34.25,10 l -0.25,-0.0625 -0.25,-0.0312 c -12.3259,-1.54865 -25.83275,0.16156 -38.40625,0.46875 -13.2705,-2.68697 -26.28475,-1.49835 -34.53125,-8.4375 -0.043,-0.0382 -0.082,-0.0865 -0.125,-0.125 -0.2658,-0.22795 -0.52565,-0.4732 -0.78125,-0.71875 -4.1423,-4.30105 -6.48925,-10.54378 -8.65625,-17.3125 -0.075,-0.22163 -0.14415,-0.43494 -0.21875,-0.65625 -4.0852,-13.2704 -9.6726,-28.68046 -15.5,-42.5 -0.1401,-0.33242 -0.26585,-0.66959 -0.40625,-1 -6.0962,-10.5127 -14.95845,-38.62839 -26.84375,-37.625 -9.9557,1.79996 -6.04415,26.27396 -5.84375,31.34375 -0.4285,13.25923 -3.04225,55.82396 -6.03125,69.75 -11.0597,5.69639 -21.78776,3.20459 -29.75,0.21875 -11.90314,-1.07961 -23.98931,-8.24122 -31.9375,-13.75 -14.98301,-12.47594 -25.48595,-20.27117 -30.6875,-37.09375 -1.8189,-5.99086 -3.51615,-12.99358 -5.5625,-19.09375 -1.94365,-5.58665 -7.04469,-11.5614 -11.91293,-14.02429 -8.06485,-2.90439 -11.43669,3.27211 -14.93082,8.55554 l 0,0.0312 -0.0312,0.0625 c -12.8932,20.58378 -29.74995,37.50146 -43.90625,57.53125 -3.56305,7.11322 -4.8868,10.36672 -11.3125,13.3125 -6.106,2.72089 -14.58835,4.10537 -23.5,4.09375 -8.91165,-0.0116 -18.23175,-1.35873 -26.03125,-3.71875 -7.554,-2.28574 -13.57625,-5.65301 -16.4375,-8.71875 -7.1924,-13.73476 -14.8913,-35.36482 -21.625,-53.65625 -3.4162,-9.28001 -6.59155,-17.68012 -9.5,-24.03125 -1.45405,-3.17557 -2.7979,-5.81623 -4.28125,-7.96875 -1.4467,-2.09931 -2.882,-4.55453 -6.84375,-4.84375 l 0,-0.0312 c -0.0597,-0.006 -0.0968,0.005 -0.15625,0 -0.036,-0.002 -0.0573,-0.0297 -0.0937,-0.0312 l 0,0.0312 c -2.99015,-0.19936 -5.4941,1.07899 -7.5,2.625 -2.06705,1.59333 -3.8592,3.64828 -5.65625,6.0625 -3.59405,4.82842 -7.08955,11.18054 -10.4375,18.3125 -6.65235,14.17105 -12.5527,31.15762 -15.34375,43.65625 -0.0185,0.0819 -0.0445,0.19973 -0.0625,0.28125 -2.41515,8.74432 -3.96195,18.58923 -6.96875,24.5625 -1.5186,3.01632 -3.1695,4.85177 -5.1875,5.78125 -2.0182,0.92948 -4.86645,1.26585 -9.75,-0.25 l -0.625,-0.1875 -0.6875,-0.0312 c -29.93335,-1.15377 -59.8328,2.91229 -87.28125,-2.78125 l -0.5,-0.125 -0.5,0 c -13.09395,-0.0116 -20.3843,-6.70068 -26.40625,-16.96875 -5.93905,-10.12678 -9.7053,-23.468 -13.75,-34.875 -0.6025,-5.23273 -1.6652,-11.42318 -3.28125,-16.78125 -0.8392,-2.78233 -1.78505,-5.30798 -3.09375,-7.53125 -1.3087,-2.22327 -3.1559,-4.86349 -7,-5.21875 -4.07962,-0.37703 -5.5618,1.49637 -7.53125,3.15625 -1.96944,1.65988 -3.98356,3.81047 -6.0625,6.34375 -4.15789,5.06658 -8.48945,11.632 -11.6875,18.34375 -1.66766,3.49992 -2.53347,7.29665 -3.15625,10.4375 -0.31139,1.57043 -0.56878,2.98777 -0.75,4.03125 -0.13011,0.74917 -0.34711,1.49149 -0.34375,1.5625 1.5e-4,0.003 -0.001,0.031 0,0.0312 -3.98039,8.52256 -7.49257,18.21832 -12.09375,24.5625 -2.3607,3.25498 -4.87765,5.52132 -7.6875,6.71875 -2.80985,1.19743 -6.09852,1.53413 -10.90625,0.15625 l -0.59375,-0.15625 -0.625,-0.0312 c -31.20131,-1.01941 -62.1501,2.32119 -91.53125,-2.53125 l -0.0625,0 -0.0625,0 c -1.5455,-0.21505 -3.86172,-1.93336 -6.375,-5.6875 -2.51328,-3.75414 -4.97726,-9.06161 -7.375,-14.46875 -2.39774,-5.40714 -4.74154,-10.88326 -7.46875,-15.40625 -1.36361,-2.2615 -2.80258,-4.32917 -4.6875,-6.03125 -1.88492,-1.70208 -4.43713,-3.10857 -7.40625,-3.15625 -4.19967,-0.0675 -6.03978,2.45997 -7.65625,4.34375 -1.61647,1.88378 -3.03607,3.93843 -4.4375,5.78125 l -0.625,0.84375 -0.25,1 c -3.00189,12.11604 -8.12341,24.98308 -15.09375,32.03125 -3.48517,3.52409 -7.22663,5.62115 -11.6875,6.15625 -4.46087,0.5351 -9.94767,-0.48892 -16.90625,-4.4375 l -1.1875,-0.6875 -1.375,0.0312 c -16.81726,0.36292 -26.40256,-7.70662 -32.9375,-20.1875 -6.53493,-12.48095 -9.07331,-29.45683 -9.21875,-44.4375 -0.0358,-3.68185 -1.2512,-7.28515 -2.90625,-11.4375 -1.65505,-4.15235 -5.46941,-17.58474 -7.84375,-21.78125 -3.167415,-4.10154 -13.966298,-25.90852 -22.25,-26.09375 z m 1031.375,109.53125 c -1.5008,2.73595 0.9146,0.66695 0,0 z m -1536,0 c -1.5008,2.73595 0.9146,0.66695 0,0 z"
+ mask="url(#mask4048)"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#8288a8;fill-opacity:0.03971121;fill-rule:evenodd;stroke:none;stroke-width:50;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4210);enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ transform="translate(512,512)"
+ sodipodi:nodetypes="sccccscsscccscccsccscscccccsscscscsccccccccccccccccscscccccssccscccccscccccccccccccscccccsscccccccccccccscsccscccccccccccccccccccccccccsscscccccccccccccccccsscccscccccccssccccccsscscsccscccccccccccscssssssssccssccccccsssscscccsscccscsssscccccsccccccccccccccccccccccccccccccccccssccscccccsccccccccccccccccccccccscscscccccccccccccccccccccccccccscccccccccscccccccccccscc"
+ inkscape:connector-curvature="0"
+ id="path10339"
+ d="m 582.09375,0.375 c -13.6324,0.49882725 -14.21074,22.312325 -26.6875,27.78125 -1.0815,15.11725 -21.24345,10.9133 -32.84375,17.59375 13.4497,0.07895 17.80315,15.1503 3.03125,10.625 7.4161,5.9089 -6.13185,42.57983 -5.3125,58.1875 -3.88185,-7.41352 -8.17245,-34.858315 -10.59375,-41.53125 -0.6351,-1.75033 4.49045,-6.6954 9.96875,-9.0625 C 514.91455,61.07435 504.70665,61.8136 501.875,58 c -5.87415,-7.91125 -3.6214,-13.79825 9.5,-20.03125 3.1725,-1.50705 -32.07245,-6.8009 -35.0625,-8.0625 -10.44895,-4.0835 -21.2993,1.4838 -21.125,-12.09375 -9.05715,-5.9095 -22.8677,19.1967 -33.90625,4.90625 -2.1366,3.1745 -3.7298,6.8897 -5.15625,10.59375 -0.6604,1.7149 -16.0618,1.00065 -16.6875,2.65625 -0.5485,1.4509 13.70035,5.2985 13.125,6.625 -2.30955,5.32395 -5.04495,9.33895 -9.8125,9.6875 -0.005,5.3025 -1.9031,18.10381 -3.8125,18.1875 -1.56795,0.06872 -5.8504,-8.4697 -6.03125,-12.8125 -0.1453,-3.49205 1.0675,-1.57615 3.3125,-4.34375 -3.40535,-1.8318 -3.35275,-0.4804 -6.875,-1.375 -4.2976,-1.0915 -7.58305,-17.32355 -1.0625,-24.1875 -6.4227,-4.1718 -15.1011,0.91925 -20.625,-2.96875 -9.56565,-6.7328 -31.5847,-2.5051 -59.875,1.84375 -18.29755,10.3686 -35.62815,-9.857 -50.375,-6.40625 -10.47235,5.84945 -16.9302,11.2156 -34.96875,13.53125 -0.88445,2.6966 20.6724,2.077 15.78125,12.96875 -1.55205,3.45655 -10.90515,5.00955 -16.46875,6.6875 2.01235,1.50625 11.4811,4.67155 11.875,6.21875 1.269,4.9845 -4.1447,9.937355 -5.28125,13.1875 -0.63695,1.82142 -10.95386,2.458025 -9.5625,2.9375 1.73895,0.59918 8.0602,4.045285 5.40625,5.875 -3.27725,2.259415 -5.44903,4.24765 -7.78125,6.5 -3.13193,-2.79233 -6.53575,-10.29146 -6.21875,-14.9375 0.32005,-4.69027 12.22915,-5.31525 11.9375,-5.84375 -0.9998,-1.8113 -14.35355,-7.8718 -13.28125,-8.8125 5.5238,-4.8458 5.00582,-7.27185 9.28125,-9.84375 C 215.99335,45.835 208.24925,44.06385 201.75,43.875 195.16985,23.60055 179.26775,28.88715 162.84375,20.25 142.27405,14.2234 120.3158,17.85705 99.0625,17.21875 86.55585,17.666 63.03385,1.6037 59.34375,10.75 c -5.26155,12.897 -29.8836,17.13435 -21.40625,34 -0.675,1.7683 -26.90565,6.48785 -24.125,9.90625 0.87495,1.07535 19.95585,6.75725 17.9375,11.78125 -1.9436,4.838745 -3.3022,9.3312 -5.0625,11.28125 -9.1728,0.944375 -9.50965,1.216 -15.9375,4.21875 4.4878,0.36002 8.2754,3.532985 10,3.1875 C 17.82915,98.671975 18.9992,99.66079 11.8125,109 11.60735,105.17066 10.70305,101.66874 9.375,98.34375 8.9383,97.25036 14.2046,93.181095 13.6875,92.125 13.023,90.767735 6.53995,92.405515 5.78125,91.09375 2.53235,85.47859 -1.38925,80.22006 -4.28125,74.5625 -5.37475,72.423745 6.36555,66.6597 5.65625,64.375 4.84925,61.77555 -8.318,62.61335 -8.375,59.71875 -16.93845,51.0354 -9.11255,35.04425 3.3125,31 9.7667,28.8992 -25.6283,30.54735 -26.65625,23.28125 -32.5743,7.64535 -49.88885,25.04345 -56.0625,10.71875 -73.8297,3.55155 -92.30635,2.9884 -109.46875,11.25 c -9.0102,6.68485 -16.46505,0.94715 -10.125,15.3125 -7.9967,15.33145 -25.42935,11.41475 -36.09375,15.0625 11.43525,2.6728 22.41725,11.19775 18.84375,15.03125 -1.4674,1.5742 -6.40135,11.18355 -9.9375,11.625 -5.0752,0.633535 -14.69105,-2.32025 -17.59375,-0.84375 4.98705,3.480275 8.4076,9.103445 4.90625,14.65625 -2.2694,4.756395 -7.811,12.615825 -8.6875,11.34375 -6.45475,-9.368 -1.42815,-24.36887 -9.46875,-26.8125 -2.87085,-4.43125 11.44215,-5.8957 18.8125,-11.125 -13.99155,-7.39915 -22.79155,-7.2664 -23.78125,-11.125 -1.63325,-6.368 -8.80245,-18.1695 -18.71875,-19.34375 -18.4708,-0.28175 -24.15525,-5.60175 -41.28125,-6.5 -6.96639,-7.716592 -11.55553,-10.1758393 -16.96875,-10.0625 -4.77637,0.1000053 -2.87914,7.207563 -9.3125,13.75 -2.36635,1.3211 -5.3696,2.62725 -8.4375,3.96875 -4.0497,0.07255 -3.574,2.7997 -7.8125,6.6875 l 2.65625,5.8125 c -1.86215,2.209 -5.48735,4.8705 -3.6875,7.875 l 0,0.15625 c -13.62739,-5.187133 -8.4636,0.04673 -7.46875,8.8125 0.82745,7.7302 -8.7019,4.95545 -8.75,5.75 -0.1989,3.28215 10.00365,8.69015 10.34375,12.03125 1.0045,9.870025 -6.9309,22.09161 -8.53125,28.28125 -1.0962,-1.797755 -3.3786,-12.573875 -5.71875,-17.5 -0.49845,-1.049605 -2.5485,-5.928675 -0.78125,-9.25 0.889,-1.67019 -4.19425,-1.132325 -4.5,-1.8125 -2.18425,-4.86267 -3.87335,-13.37795 -5.8125,-18.6875 -3.6317,-9.9439 5.0333,-8.84225 10.03125,-13.90625 -12.9962,-3.62675 -14.5859,-11.64415 -19.1875,-14.09375 8.12735,-17.50005 -15.09125,-5.5582 -14.65625,-13.65625 -1.211,-0.88965 -2.3914,-1.69535 -3.53125,-2.46875 -0.15346,2.446539 -3.21812,5.175959 -4.88044,3.087466 -4.73035,-1.385912 -3.89615,-5.5858091 -9.02581,-5.431216 -6.34159,0.1911171 -17.1056,11.176438 -26,6.4375 -10.4753,-5.5812406 -17.98899,3.216296 -28.3125,2.90625 -12.5067,0.44725 -36.02875,-15.61505 -39.71875,-6.46875 -5.2616,12.897 -29.88355,17.13435 -21.40625,34 -0.675,1.7683 -26.9056,6.48785 -24.125,9.90625 0.875,1.07535 19.9559,6.75725 17.9375,11.78125 -1.9436,4.83875 -3.3022,9.3312 -5.0625,11.28125 -9.1728,0.94438 -9.5096,1.216 -15.9375,4.21875 4.4878,0.36002 8.2754,3.53299 10,3.1875 -2.9208,13.54697 -1.7508,14.53579 -8.9375,23.875 -0.2052,-3.82934 -1.1094,-7.33126 -2.4375,-10.65625 -0.4367,-1.09339 4.8296,-5.16265 4.3125,-6.21875 -0.6645,-1.35726 -7.14745,0.28052 -7.90625,-1.03125 -3.2489,-5.61516 -7.1705,-10.87369 -10.0625,-16.53125 -1.0935,-2.13875 10.6468,-7.9028 9.9375,-10.1875 -0.807,-2.59945 -13.97425,-1.76165 -14.03125,-4.65625 -8.5635,-8.68335 -0.7376,-24.6745 11.6875,-28.71875 6.4542,-2.1008 -28.94085,-0.45265 -29.96875,-7.71875 -5.9181,-15.6359 -23.23265,1.7622 -29.40625,-12.5625 -8.88345,-3.5836 -17.95214,-5.5272625 -26.9375,-5.53125 -8.98536,-0.00399 -17.88755,1.9317 -26.46875,6.0625 -9.0101,6.68485 -16.465,0.94715 -10.125,15.3125 -7.9967,15.33145 -25.42935,11.41475 -36.09375,15.0625 11.4352,2.6728 22.41725,11.19775 18.84375,15.03125 -1.4673,1.5742 -6.4014,11.18355 -9.9375,11.625 -5.0752,0.63353 -14.69105,-2.32025 -17.59375,-0.84375 4.987,3.48027 8.40765,9.10344 4.90625,14.65625 -2.2694,4.75639 -7.8111,12.61582 -8.6875,11.34375 -6.4548,-9.368 -1.42815,-24.36887 -9.46875,-26.8125 -2.8709,-4.43125 11.4421,-5.8957 18.8125,-11.125 -13.9915,-7.39915 -22.79145,-7.2664 -23.78125,-11.125 -1.6332,-6.368 -8.80245,-18.1695 -18.71875,-19.34375 -4.9773,-0.0759 -9.5379,-1.09291 -13.875,-2.5625 -2.95226,-1.014608 -5.78898,-2.218574 -8.59375,-3.46875 l 0,19.46875 c 1.84674,1.156618 3.61431,2.306246 5.15625,3.375 1.1669,0.82232 2.3007,1.66547 3.4375,2.53125 12.5831,9.42992 23.04665,21.06069 27.21875,34.5625 3.2362,9.60748 4.49525,19.15668 9.09375,27.46875 1.3998,2.49822 3.0765,4.86059 6,6.28125 8.0253,2.8712 13.8407,-3.93938 17.3125,-9.1875 l 0.0312,-0.0625 0.0312,-0.0312 c 12.8932,-20.58377 29.7187,-37.53272 43.875,-57.5625 3.563,-7.11322 4.8868,-10.36672 11.3125,-13.3125 6.106,-2.72089 14.61955,-4.10538 23.53125,-4.09375 8.9116,0.0116 18.23175,1.38998 26.03125,3.75 7.554,2.28574 13.54505,5.653 16.40625,8.71875 7.1924,13.73476 14.8914,35.33357 21.625,53.625 3.4163,9.28001 6.5916,17.71137 9.5,24.0625 1.4541,3.17557 2.8291,5.81623 4.3125,7.96875 1.4466,2.09931 2.8508,4.55453 6.8125,4.84375 l 0,0.0312 c 0.06,0.006 0.128,-0.005 0.1875,0 0.036,0.002 0.0568,-0.002 0.0937,0 2.9901,0.19936 5.46285,-1.11024 7.46875,-2.65625 2.0671,-1.59333 3.8904,-3.61703 5.6875,-6.03125 3.594,-4.82842 7.0896,-11.21179 10.4375,-18.34375 6.6524,-14.17105 12.55265,-31.15761 15.34375,-43.65625 0.018,-0.0819 0.0445,-0.16848 0.0625,-0.25 2.4152,-8.74432 3.9307,-18.62048 6.9375,-24.59375 1.5186,-3.01631 3.1695,-4.85177 5.1875,-5.78125 2.0182,-0.92949 4.89765,-1.23461 9.78125,0.28125 0.41799,0.189403 0.8361,0.187428 1.28125,0.21875 33.79966,1.590835 61.1761,8.156601 90.46875,12.5625 0.0696,0.451396 0.19729,0.875625 0.40625,1.28125 8.42977,11.154968 14.66095,31.28385 22.5625,49.4375 4.00235,9.19529 8.9943,21.75216 12.78125,27.84375 1.8935,3.04579 15.0626,20.54442 17.03125,22.53125 4.93305,0.90658 16.15948,2.71095 13.9375,-13.15625 3.13929,-2.94375 3.32144,-11.10035 3.4375,-14.875 0.1461,-4.94369 15.2406,-26.12977 14.96875,-32.96875 -0.5437,-13.677955 8.26845,-15.26715 9.28125,-25.6875 4.96764,-11.859129 12.71328,-14.025395 38.125,-15.75 11.70635,8.249465 22.24785,19.124915 24.28125,23.53125 l 0.40625,0.84375 0.65625,0.65625 c 1.1167,1.090915 3.49325,6.071635 5.3125,12.0625 1.8189,5.990865 3.51615,12.99358 5.5625,19.09375 1.023,3.05009 2.1315,5.87678 3.53125,8.375 1.39975,2.49822 3.0765,4.86059 6,6.28125 2.9235,1.42066 6.8781,0.92314 9.6875,-0.875 2.80975,-1.79814 5.1144,-4.48464 7.625,-8.3125 l 0.0312,-0.0625 0.0312,-0.0312 c 12.8932,-20.583775 29.7187,-37.532715 43.875,-57.5625 3.56305,-7.113225 4.8868,-10.36672 11.3125,-13.3125 6.106,-2.72089 14.6196,-4.105375 23.53125,-4.09375 8.91165,0.0116 18.23175,1.38998 26.03125,3.75 7.554,2.28574 13.545,5.653005 16.40625,8.71875 7.1924,13.734755 14.8913,35.333575 21.625,53.625 3.4162,9.28001 6.59155,17.71137 9.5,24.0625 1.45405,3.17557 2.82915,5.81623 4.3125,7.96875 1.4467,2.09931 2.85075,4.55453 6.8125,4.84375 5.533593,1.79852 5.840864,-0.0456 7.75,-2.625 2.06705,-1.59333 3.89045,-3.61703 5.6875,-6.03125 3.59405,-4.82842 7.08955,-11.21179 10.4375,-18.34375 6.6527,-14.1711 12.5527,-31.157615 15.34375,-43.65625 0.0185,-0.08192 0.0445,-0.168475 0.0625,-0.25 2.41515,-8.744315 3.9307,-18.62048 6.9375,-24.59375 1.5186,-3.016315 3.1695,-4.851765 5.1875,-5.78125 2.0182,-0.929485 4.8977,-1.234605 9.78125,0.28125 l 0.625,0.1875 0.65625,0.03125 c 29.93335,1.153765 59.8328,-2.912295 87.28125,2.78125 l 0.5,0.09375 0.53125,0 c 13.09395,0.0116 20.3843,6.70068 26.40625,16.96875 5.93905,10.126775 9.67405,23.49925 13.71875,34.90625 0.6025,5.23273 1.69645,11.423185 3.3125,16.78125 0.8392,2.78233 1.78505,5.30798 3.09375,7.53125 1.3087,2.22327 3.1559,4.86349 7,5.21875 4.07963,0.37703 5.53056,-1.52762 7.5,-3.1875 1.96945,-1.65988 3.98356,-3.81047 6.0625,-6.34375 4.15789,-5.06658 8.5207,-11.632005 11.71875,-18.34375 1.66766,-3.49992 2.53347,-7.296655 3.15625,-10.4375 0.31139,-1.570425 0.53753,-2.95652 0.71875,-4 0.13011,-0.749165 0.34712,-1.491485 0.34375,-1.5625 -1.5e-4,-0.003 0.001,-0.03095 0,-0.03125 3.98039,-8.52256 7.49257,-18.249575 12.09375,-24.59375 2.3607,-3.254975 4.87765,-5.521315 7.6875,-6.71875 2.80985,-1.197435 6.09853,-1.53413 10.90625,-0.15625 l 0.59375,0.1875 0.625,0 c 31.20131,1.019415 62.18135,-2.321185 91.5625,2.53125 l 0.0625,0 0.0625,0.03125 c 1.5455,0.21505 3.86172,1.90211 6.375,5.65625 2.51328,3.75414 4.97726,9.06161 7.375,14.46875 2.39774,5.40714 4.71029,10.91451 7.4375,15.4375 1.36361,2.261495 2.83383,4.29792 4.71875,6 1.88492,1.70208 4.43713,3.139825 7.40625,3.1875 4.19967,0.06748 6.03978,-2.459965 7.65625,-4.34375 1.61647,-1.883785 3.03607,-3.96968 4.4375,-5.8125 l 0.625,-0.8125 0.25,-1 c 3.00189,-12.116045 8.09216,-24.98308 15.0625,-32.03125 3.48517,-3.524085 7.22663,-5.652395 11.6875,-6.1875 4.46087,-0.535105 9.94767,0.520165 16.90625,4.46875 l 1.21875,0.6875 1.375,-0.03125 c 16.81727,-0.36292 26.37131,7.70662 32.90625,20.1875 6.53494,12.480955 9.10456,29.42558 9.25,44.40625 0.0358,3.68185 1.2512,7.3164 2.90625,11.46875 1.65505,4.15235 3.84442,8.61599 6.21875,12.8125 2.37433,4.19651 4.90421,8.07677 7.375,11.125 1.2354,1.52411 2.42818,2.86385 3.78125,3.96875 1.35307,1.1049 2.85911,2.35087 5.71875,2.28125 2.38801,-0.0582 4.88685,-2.09094 5.71875,-3.90625 l 0.3125,-0.6875 0.0937,-0.75 c 3.70331,-28.10021 -0.59074,-56.616715 13.375,-78.3125 8.17053,-11.70219 16.48136,-24.5271 26.09375,-33.1875 9.65471,-8.698525 19.87149,-13.33118 34.21875,-9.96875 l 0.25,0.03125 0.28125,0.0625 c 12.32592,1.548655 25.80148,-0.192805 38.375,-0.5 13.61768,2.757278 26.95257,1.466712 35.15625,9.03125 0.0938,0.08645 0.18884,0.161211 0.28125,0.25 0.13856,0.133683 0.26948,0.268572 0.40625,0.40625 3.90701,4.282903 6.1819,10.34874 8.28125,16.90625 0.057,0.167786 0.10005,0.332399 0.15625,0.5 11.6023,19.854317 16.3519,58.89889 34.6875,77.65625 1.9689,1.98683 4.3184,4.0333 8.125,3.625 l 0.625,-0.0625 c 0.01,-0.002 0.0222,0.002 0.0312,0 l 0.46875,-0.0625 0.46875,-0.28125 c 0.4102,-0.1882 0.7828,-0.42924 1.125,-0.71875 0.039,-0.0329 0.087,-0.0599 0.125,-0.0937 2.4202,-1.83195 2.4221,-3.8212 2.75,-5.5625 0.3607,-1.91519 0.4892,-4.02816 0.5625,-6.5 0.1461,-4.94369 -0.0409,-11.19227 -0.3125,-18.03125 -0.5436,-13.677955 -1.3253,-29.7359 -0.3125,-40.15625 l 0.0625,-0.53125 c 1.9313,-10.758839 -0.0981,-25.438929 8.4375,-30.6875 8.3043,-4.334134 21.77815,-0.774604 27.59375,1.40625 11.8059,0.895682 24.0876,8.309075 31.9375,13.75 1.1669,0.82232 2.3007,1.66547 3.4375,2.53125 12.5831,9.429924 23.04665,21.060685 27.21875,34.5625 3.2362,9.607482 4.49525,19.156681 9.09375,27.46875 1.3998,2.49822 3.0765,4.86059 6,6.28125 8.0253,2.8712 13.8407,-3.93938 17.3125,-9.1875 l 0.0312,-0.0625 0.0312,-0.0312 c 12.8932,-20.583775 29.7187,-37.532715 43.875,-57.5625 3.563,-7.113225 4.8868,-10.36672 11.3125,-13.3125 6.106,-2.72089 14.61955,-4.105375 23.53125,-4.09375 8.9116,0.0116 18.23175,1.38998 26.03125,3.75 7.554,2.28574 13.54505,5.653005 16.40625,8.71875 7.1924,13.734755 14.8914,35.333575 21.625,53.625 3.4164,9.28001 6.5916,17.71137 9.5,24.0625 1.4542,3.17557 2.829,5.81623 4.3126,7.96875 1.4465,2.09931 2.8507,4.55453 6.8124,4.84375 l 0,0.0312 c 0.06,0.006 0.1279,-0.005 0.1876,0 0.036,0.002 0.057,-0.002 0.094,0 2.9901,0.19936 5.463,-1.11024 7.4687,-2.65625 2.0671,-1.59333 3.8904,-3.61703 5.6876,-6.03125 3.594,-4.82842 7.0896,-11.21179 10.4374,-18.34375 6.6524,-14.17105 12.5527,-31.157615 15.3438,-43.65625 0.018,-0.08192 0.044,-0.168475 0.062,-0.25 2.4152,-8.744315 3.9307,-18.62048 6.9375,-24.59375 1.5186,-3.016315 3.1695,-4.851765 5.1875,-5.78125 2.0182,-0.929485 4.8975,-1.234605 9.7813,0.28125 l 0.625,0.1875 0.6562,0.03125 c 25.483,0.982228 50.9325,-1.814615 74.875,0.84375 l 0,-14.3125 c -15.2416,-1.225425 -30.8961,0.521746 -46.1875,0.0625 -12.5067,0.44725 -36.0289,-15.61505 -39.7187,-6.46875 -5.2618,12.897 -29.8836,17.13435 -21.4063,34 -0.675,1.7683 -26.9056,6.48785 -24.125,9.90625 0.875,1.07535 19.9559,6.75725 17.9375,11.78125 -1.9436,4.838745 -3.3022,9.3312 -5.0625,11.28125 -9.1728,0.944375 -9.5096,1.216 -15.9375,4.21875 4.4878,0.36002 8.2754,3.532985 10,3.1875 -2.9208,13.546975 -1.7508,14.53579 -8.9375,23.875 -0.2052,-3.82934 -1.1094,-7.33126 -2.4375,-10.65625 -0.4367,-1.09339 4.8296,-5.162655 4.3125,-6.21875 -0.6645,-1.357265 -7.1473,0.280515 -7.9063,-1.03125 -3.2489,-5.61516 -7.1705,-10.87369 -10.0625,-16.53125 -1.0935,-2.138755 10.6468,-7.9028 9.9375,-10.1875 -0.807,-2.59945 -13.9743,-1.76165 -14.0313,-4.65625 -8.5635,-8.68335 -0.7376,-24.6745 11.6876,-28.71875 6.4542,-2.1008 -28.9409,-0.45265 -29.9688,-7.71875 -5.9181,-15.6359 -23.23265,1.7622 -29.40625,-12.5625 -17.7672,-7.1672 -36.24385,-7.73035 -53.40625,0.53125 -9.0101,6.68485 -16.465,0.94715 -10.125,15.3125 -7.9967,15.33145 -25.42935,11.41475 -36.09375,15.0625 11.4352,2.6728 22.41725,11.19775 18.84375,15.03125 -1.4673,1.5742 -6.4014,11.18355 -9.9375,11.625 -5.0752,0.633535 -14.69105,-2.32025 -17.59375,-0.84375 4.987,3.480275 8.40765,9.103445 4.90625,14.65625 -2.2694,4.756395 -7.8111,12.615825 -8.6875,11.34375 -6.4548,-9.368 -1.42815,-24.36887 -9.46875,-26.8125 -2.8709,-4.43125 11.4421,-5.8957 18.8125,-11.125 -13.9915,-7.39915 -22.79145,-7.2664 -23.78125,-11.125 -1.6332,-6.368 -8.80245,-18.1695 -18.71875,-19.34375 -4.9773,-0.07592 -9.5379,-1.092909 -13.875,-2.5625 -4.4152,-1.517382 -8.5772,-3.443252 -12.75,-5.34375 -19.3712,-7.791512 -45.69165,-17.86407407 -55.40625,-8.21875 -2.3663,1.3211 -5.3696,2.62725 -8.4375,3.96875 -3.5435,0.06348 -7.9826,-1.193365 -11.875,1.09375 -0.2781,0.163365 -0.5405,0.329853 -0.8125,0.53125 -0.2719,0.201397 -0.5476,0.413262 -0.8125,0.65625 l -0.4375,5.96875 c -1.8621,2.209 -2.39365,4.71425 -0.59375,7.71875 l 0,0.15625 c 0.036,3.5e-4 0.0567,-3.5e-4 0.0937,0 1.0858,1.7461 2.94605,3.65205 5.78125,5.75 -1.9492,3.77555 -3.0734,9.1494 -2.4375,15.09375 0.052,0.483137 0.0825,0.923682 0.0625,1.34375 -0.01,0.210034 -0.0365,0.429834 -0.0625,0.625 -0.7581,5.659808 -8.0814,5.186189 -8.125,5.90625 -0.1989,3.28215 9.0349,5.44015 9.375,8.78125 1.0045,9.870025 2.00665,19.466605 0.40625,25.65625 -1.0961,-1.79776 -1.75365,-3.136375 -4.09375,-8.0625 -0.4985,-1.049605 -3.5173,-5.928675 -1.75,-9.25 0.889,-1.67019 -4.1943,-1.132325 -4.5,-1.8125 -0.273,-0.607834 -0.52175,-1.291417 -0.78125,-2 -0.5188,-1.417165 -1.0187,-2.996832 -1.5,-4.65625 -1.2031,-4.148546 -2.31925,-8.712781 -3.53125,-12.03125 -3.6317,-9.9439 5.03335,-8.84225 10.03125,-13.90625 -5.6682,-1.406675 -11.0869,-5.451938 -14.5,-9.46875 -0.01,-0.01068 -0.0222,-0.02059 -0.0312,-0.03125 -1.3823,-1.798469 -2.75905,-3.419209 -4.65625,-4.59375 1.0667,-2.423923 2.24105,-5.126932 1.40625,-7.75 -0.013,-0.02976 -0.0182,-0.06467 -0.0312,-0.09375 -0.086,-0.190467 -0.1977,-0.368258 -0.3125,-0.53125 -4.4863,-4.733593 -15.17825,0.322547 -15.71875,-5.28125 -0.4972,-0.365267 -0.95441,-0.687607 -1.4375,-1.03125 -11.72355,-7.9809781 -32.49864,-9.3794015 -45.0625,-5.46875 -16.06345,4.2463 -31.8515,2.98675 -47.5,-4.625 -2.55284,-0.90919375 -4.77126,-1.25876104 -6.71875,-1.1875 z m -56.5,56 c 1.50075,-2.73595 -0.9146,-0.66695 0,0 z"
+ mask="url(#mask4019)"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#8288a8;fill-opacity:0.03971121;fill-rule:evenodd;stroke:none;stroke-width:50;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4214);enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ style="color:#000000;fill:none;stroke:#1c1d26;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m -223.375,544.75 c 0.23961,0.1472 0.48006,0.28988 0.71875,0.4375 0.1681,0.10399 0.3318,0.20748 0.5,0.3125 0.608,0.38 1.2065,0.76363 1.8125,1.15625 0.7726,0.5003 1.5459,1.01285 2.3125,1.53125 0.081,0.0548 0.1691,0.10132 0.25,0.15625 12.9355,8.78748 24.7579,19.91145 28,26.9375 10.6597,10.41379 11.63805,65.5118 30.03125,37.46875 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 5.0744,-27.8113 70.21645,-22.58355 85.46875,-5.0625 15.23735,28.65935 31.1241,88.20724 38.625,88.53125 10.3542,1.00226 28.61405,-43.09289 33.90625,-67.03125 4.6236,-16.57245 5.5708,-40.82085 28.25,-33.78125 29.3283,1.13045 49.87855,-0.3054 78.46875,5.625 29.8912,0.0265 37.8653,49.35183 45.875,71.78125 1.1091,10.15205 15.85195,34.08488 20.34375,34.5 3.5761,0.33049 11.75675,-40.14458 17.71875,-52.65625 2.6592,-5.58112 3.4277,-13.96937 3.9375,-15.34375 7.8424,-16.55259 12.4767,-37.26424 40.78125,-36.75 28.93087,0.52562 31.85318,15.45327 39.69632,24.91345 3.83122,16.07389 11.97764,38.69686 23.39743,50.21155 2.93605,1.88772 6.58306,0.29269 11.46875,-7.15625 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 3.24258,-15.28004 22.02915,-18.88391 35.0936,-19.4375 19.85586,-0.81571 42.22909,5.01749 50.375,14.375 15.23735,28.65935 31.124,88.20724 38.625,88.53125 10.354,1.00226 28.61405,-43.09289 33.90625,-67.03125 4.62365,-16.57245 5.5708,-40.82085 28.25,-33.78125 29.3283,1.13045 59.5348,-3.0554 88.125,2.875 29.89125,0.0265 36.9903,33.25808 45,55.6875 1.10915,10.15206 4.47687,25.30363 8.96875,25.71875 3.57606,0.33049 14.35085,-12.51958 20.3125,-25.03125 2.6593,-5.58111 3.4275,-13.96938 3.9375,-15.34375 7.84225,-16.5526 14.17655,-41.3178 36.875,-34.8125 30.7202,1.0039 61.9323,-2.4082 92.21875,2.59375 15.1016,2.10134 21.01425,44.5313 32.6875,44.71875 2.38985,0.0384 5.03305,-4.245 8.03125,-8.1875 6.21635,-25.09005 20.49085,-54.18715 51,-36.875 37.1824,-0.8024 46.9806,38.58965 47.2813,69.5625 0.09,9.23319 15.5783,36.81646 20.875,36.6875 0.5479,-0.0134 0.9799,-0.34262 1.2812,-1 3.5677,-27.07123 -1.0882,-56.69275 14.1563,-80.375 16.2351,-23.236 33.718,-52.79755 65.6562,-45.3125 22.7614,2.85979 53.3777,-6.50708 72.625,6.84375 0.2657,0.17295 0.5256,0.35022 0.7813,0.53125 0.2229,0.16454 0.4366,0.32894 0.6562,0.5 0.5475,0.42642 1.0985,0.87564 1.625,1.34375 0.384,0.34139 0.7526,0.69815 1.125,1.0625 0.1382,0.13525 0.2696,0.26778 0.4063,0.40625 0.085,0.0909 0.1666,0.1893 0.25,0.28125 4.0947,4.51899 6.5187,10.31468 8.4687,16.21875 0.045,0.13478 0.081,0.27138 0.125,0.40625 0.6867,2.28959 1.4037,4.65938 2.1875,7.09375 0.092,0.30004 0.1883,0.60855 0.2813,0.90625 0.4743,1.46174 0.9649,2.90855 1.4687,4.40625 0.8044,2.39267 1.6312,4.799 2.5,7.25 1.5457,4.36088 3.186,8.79268 4.875,13.15625 0.1785,0.46166 0.3515,0.91475 0.5313,1.375 0.1148,0.29385 0.2284,0.58181 0.3437,0.875 0.662,1.68433 1.3264,3.3457 2,5 0.5199,1.2775 1.0381,2.52885 1.5625,3.78125 0.6418,1.5322 1.2924,3.01578 1.9375,4.5 0.044,0.10191 0.081,0.21085 0.125,0.3125 0.7386,1.69541 1.4814,3.35345 2.2188,4.96875 0.4116,0.90196 0.809,1.81469 1.2187,2.6875 0.04,0.0859 0.085,0.16438 0.125,0.25 0.4229,0.89776 0.8616,1.76185 1.2813,2.625 0.8283,1.70294 1.6276,3.32602 2.4375,4.875 0.4593,0.87853 0.9237,1.77113 1.375,2.59375 0.076,0.13898 0.1426,0.26894 0.2187,0.40625 0.2708,0.48939 0.5453,0.97 0.8125,1.4375 0.1242,0.217 0.2518,0.44413 0.375,0.65625 0.2204,0.37895 0.4697,0.76209 0.6875,1.125 0.3376,0.56258 0.6693,1.13408 1,1.65625 0.039,0.0619 0.086,0.12621 0.125,0.1875 0.2917,0.45778 0.5891,0.91945 0.875,1.34375 0.2731,0.40499 0.5455,0.78326 0.8125,1.15625 0.1477,0.20624 0.2917,0.42885 0.4375,0.625 0.017,0.0224 0.047,0.0402 0.062,0.0625 0.2892,0.38744 0.5628,0.74762 0.8438,1.09375 0.073,0.0905 0.1457,0.19364 0.2187,0.28125 0.1478,0.17793 0.292,0.33421 0.4375,0.5 0.2542,0.28942 0.5039,0.56119 0.75,0.8125 0.097,0.0994 0.1855,0.18795 0.2813,0.28125 0.2291,0.22263 0.466,0.43791 0.6875,0.625 0.071,0.0595 0.1487,0.13166 0.2187,0.1875 0.1591,0.12722 0.345,0.26732 0.5,0.375 0.2295,0.15843 0.4677,0.29216 0.6875,0.40625 0.092,0.0474 0.191,0.0855 0.2813,0.125 0.033,0.0145 0.061,0.0491 0.094,0.0625 0.068,0.0276 0.1521,0.0396 0.2187,0.0625 0.086,0.0296 0.1654,0.0721 0.25,0.0937 0.043,0.011 0.082,0.0225 0.125,0.0312 0.2637,0.0546 0.5364,0.0576 0.7813,0.0312 0.1363,-0.0836 0.2574,-0.18498 0.375,-0.34375 3.6485,-4.92185 -1.376,-45.10447 0.7187,-66.65625 -3.5365,-30.2009 10.89,-45.949 41.8125,-34.375 0.5,-0.0326 1.0291,-0.0483 1.5625,-0.0312 0.5339,0.017 1.0602,0.0606 1.625,0.125 0.075,0.008 0.1431,0.0219 0.2188,0.0312 0.4972,0.0614 1.0123,0.12293 1.5312,0.21875 0.074,0.0137 0.1438,0.0168 0.2188,0.0312 0.5253,0.1011 1.0484,0.24069 1.5937,0.375 0.1494,0.0368 0.2867,0.0858 0.4375,0.125 0.4806,0.12469 0.9745,0.25762 1.4688,0.40625 0.5887,0.17709 1.1752,0.35302 1.7812,0.5625 0.054,0.0188 0.1018,0.0434 0.1563,0.0625 0.241,0.0841 0.4752,0.16097 0.7187,0.25 0.4337,0.15848 0.8715,0.32649 1.3125,0.5 0.2833,0.11146 0.5579,0.22629 0.8438,0.34375 0.4058,0.16648 0.8078,0.32184 1.2187,0.5 0.3288,0.14257 0.6369,0.28772 0.9688,0.4375 0.378,0.17053 0.7433,0.35168 1.125,0.53125 0.3748,0.17642 0.7472,0.34645 1.125,0.53125 0.3375,0.16506 0.6603,0.3285 1,0.5 0.4277,0.21597 0.8505,0.43049 1.2812,0.65625 0.2996,0.15699 0.6056,0.30721 0.9063,0.46875 0.4701,0.25248 0.934,0.51817 1.4062,0.78125 0.2605,0.14506 0.5201,0.28935 0.7813,0.4375 0.5142,0.29203 1.0156,0.60285 1.5312,0.90625 0.2181,0.12832 0.4382,0.24474 0.6563,0.375 0.5611,0.33486 1.1265,0.6843 1.6875,1.03125 0.1681,0.10399 0.3318,0.20748 0.5,0.3125 0.608,0.38 1.2065,0.76363 1.8125,1.15625 0.7726,0.5003 1.5459,1.01285 2.3125,1.53125 0.081,0.0548 0.1691,0.10132 0.25,0.15625 12.9355,8.78748 24.7579,19.91145 28,26.9375 10.6597,10.41379 11.638,65.5118 30.0312,37.46875 13.27,-21.18524 30.228,-38.207 44.0625,-57.78125 5.0744,-27.8113 70.2165,-22.58355 85.4688,-5.0625 15.2373,28.65935 31.124,88.20724 38.6249,88.53125 10.3542,1.00226 28.6141,-43.09289 33.9063,-67.03125 4.6236,-16.57245 5.5708,-40.82085 28.25,-33.78125 22.2999,0.85954 45.0938,-1.34016 67.3125,0.15625"
+ id="path4063"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccccsccscccccccccccsscccsccsccccccsscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccc" />
+ <path
+ style="color:#000000;fill:none;stroke:#1c1d26;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ mask="none"
+ d="m 1673.875,899.875 c -24.9897,0.17052 -50.1205,1.64601 -74.6562,-2.40625 -15.1021,-2.10134 -21.0456,-44.50005 -32.7188,-44.6875 -2.3899,-0.0384 -5.0337,4.21375 -8.0312,8.15625 -6.2165,25.09004 -20.491,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.09,-9.23319 -15.5783,-36.81646 -20.875,-36.6875 -0.5481,0.0134 -1.0111,0.31137 -1.3125,0.96875 -3.5677,27.07123 1.1196,56.69275 -14.125,80.375 -16.2349,23.236 -33.7181,52.8288 -65.6563,45.34375 -22.6658,-2.84778 -53.145,6.41782 -72.4062,-6.6875 -0.08,-0.0546 -0.1703,-0.10086 -0.25,-0.15625 -0.5046,-0.32835 -0.9689,-0.7055 -1.4375,-1.0625 -0.5474,-0.42642 -1.0673,-0.87564 -1.5938,-1.34375 -0.3474,-0.30886 -0.6931,-0.64112 -1.0312,-0.96875 -0.2527,-0.24501 -0.5027,-0.49425 -0.75,-0.75 -4.1151,-4.54166 -6.5136,-10.40907 -8.4688,-16.34375 -11.1713,-22.1624 -16.2457,-57.95453 -34.0625,-78.09375 -1.215,-1.3067 -2.5478,-2.36339 -4.3123,-2.4997 -1.3628,0.83621 -1.7689,5.52583 -1.75,12.25 0,1.34483 0.031,2.78766 0.062,4.28125 0.3359,14.93588 1.9451,36.56438 0.5937,50.46875 3.5363,30.2009 -10.8899,45.98025 -41.8125,34.40625 -11.6035,-0.20278 -22.4274,-6.9153 -31.7812,-13.1561 -0.081,-0.0548 -0.169,-0.10122 -0.25,-0.15625 -12.9362,-8.78766 -24.7578,-19.9424 -28,-26.96875 -8.3954,-8.20163 -10.8049,-44.10025 -20.4351,-45.28247 -2.5974,-0.31887 -5.7202,1.88789 -9.6274,7.84497 -13.2699,21.18524 -30.1967,38.207 -44.0312,57.78125 -5.0744,27.8113 -70.21635,22.5523 -85.4688,5.03125 -15.23735,-28.65935 -31.124,-88.20724 -38.625,-88.53125 -10.354,-1.00227 -28.61405,43.09289 -33.90625,67.03125 -4.62365,16.57245 -5.60205,40.8521 -28.28125,33.8125 -29.3283,-1.13045 -59.50355,3.02415 -88.09375,-2.90625 -29.892,-0.0269 -37.02155,-33.22683 -45.03125,-55.65625 -1.10915,-10.15206 -4.47688,-25.33488 -8.96875,-25.75 -3.57606,-0.33049 -14.35087,12.51958 -20.3125,25.03125 -2.65931,5.58112 -3.4275,13.96938 -3.9375,15.34375 -7.84225,16.55259 -14.17655,41.3178 -36.875,34.8125 -30.7202,-1.0039 -61.90105,2.4082 -92.1875,-2.59375 -15.10181,-2.10179 -21.04572,-44.5005 -32.71895,-44.68795 -2.38989,-0.0384 -5.03305,4.21375 -8.03125,8.15625 -6.21635,25.09004 -20.49085,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.0896,-9.23319 -22.72806,-55.01589 -28.02478,-54.88693 -17.07445,-0.007 -17.93483,108.60162 -38.51177,127.81729 -16.2351,23.236 -9.9938,14.805 -35.4322,17.06964 -22.76142,-2.8598 -67.64988,4.61687 -86.89721,-8.73397 -24.97843,-19.68701 -34.18877,-117.09322 -47.45381,-116.06221 -10.11765,1.70414 -15.14478,40.0682 -17.00994,61.05907 -2.16389,24.35277 -10.88672,46.90362 -26.6558,50.59067 -31.39495,2.56078 -52.78532,4.10972 -93.01399,-7.66581 C 48.11685,895.36766 42.1732,852.96895 30.5,852.7815 c -2.3899,-0.0384 -5.03355,4.21375 -8.03125,8.15625 -6.2165,25.09004 -20.49095,54.2184 -51,36.90625 -37.1824,0.8024 -46.9493,-38.58965 -47.25,-69.5625 -0.09,-9.23319 -15.5783,-36.81646 -20.875,-36.6875 l -5e-4,-2.5e-4 c -0.5481,0.0134 -1.0111,0.31137 -1.3125,0.96875 -3.5677,27.07123 1.1196,56.69275 -14.125,80.375 -16.2349,23.236 -33.71805,52.8288 -65.65625,45.34375 -13.09429,-1.64519 -28.79722,0.77097 -43.4375,0.5625"
+ id="path4082"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscccccccccccccccccccccscsccccccccsscccsccscccccsccsccccccccc" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/SkyL.png has changed
Binary file share/hedgewars/Data/Themes/Cave/Stalactite.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Stalactite.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="55"
+ height="140"
+ version="1.0"
+ sodipodi:docname="Stalactite .svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Stalactite.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 130 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="240 : 130 : 1"
+ inkscape:persp3d-origin="120 : 86.666667 : 1"
+ id="perspective45" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="5.3740116"
+ inkscape:cx="-29.695726"
+ inkscape:cy="57.383838"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-maximized="0"
+ inkscape:snap-global="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
+ <sodipodi:guide
+ orientation="1,0"
+ position="12,57.763157"
+ id="guide2457" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="139.18839,135.09461"
+ id="guide2461" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="9.7924984,140.00249"
+ id="guide3045" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="0,136.53674"
+ id="guide3047" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="44,58.289473"
+ id="guide3049" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="67.105262,79"
+ id="guide3010" />
+ </sodipodi:namedview>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="tmp"
+ style="display:inline"
+ transform="translate(-1.90625,-96.829468)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="main"
+ transform="translate(-1.90625,-96.829468)">
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 2.9064941,93.380823 c 0.7299794,6.004013 2.5435758,11.699027 4.0453097,17.469557 2.5701904,9.8762 5.7794152,19.05669 6.7221942,29.3293 0.921223,10.03775 2.546616,21.10561 3.047535,29.38394 0.500919,8.27832 0.26695,13.45839 0.355648,20.18855 0.07922,6.01114 -0.587718,12.08768 0.157674,18.03463 1.101103,8.78497 2.862554,23.39094 6.312031,25.5766 6.109748,3.4565 6.326761,-13.60285 7.462626,-17.59427 2.091476,-7.34944 4.270392,-14.6731 6.037705,-22.1405 1.930207,-8.15564 3.143058,-15.02693 4.585337,-23.32233 1.152809,-6.63048 2.910658,-11.53306 4.113079,-18.15122 1.12324,-6.18235 3.317819,-15.42803 4.385736,-21.62407 2.077956,-12.05625 4.508809,-24.20315 5.015916,-35.624657"
+ id="path3039"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csszsacsssssc" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 23.574861,233.26194 c -3.318224,-4.17231 -5.414372,-18.13144 -6.335753,-25.48251 -0.745393,-5.94696 -0.08482,-12.02131 -0.164042,-18.03244 -0.0887,-6.73016 0.140026,-11.90639 -0.360893,-20.18471 -0.500919,-8.27834 -2.113556,-19.3377 -3.034779,-29.37545 C 12.736616,129.91422 9.5238582,120.72636 6.9536672,110.85017 6.3963648,108.70869 3.990983,96.721593 3.4191027,94.581253 c 1.8941844,1e-5 5.5458695,-1.26753 7.9141683,1.31108 2.14431,2.334717 2.144394,8.539847 3.85943,8.539847 2.909357,0.19304 3.926665,3.55431 6.741755,4.62428 1.074087,0.91803 6.218744,-1.39051 6.244325,2.21269 -5.599418,0.28083 -9.978875,0.90921 -14.020305,2.70905 -0.326902,2.97068 6.736156,0.53473 7.214665,2.17918 -2.25438,0.49065 -3.350511,-0.2337 -5.411731,1.20076 -1.010325,1.39223 -0.64886,2.27245 0.167417,1.9944 0.662011,0.13501 2.640682,-0.89621 5.527452,0.0949 -3.044517,1.11007 -5.432267,1.50535 -4.243998,2.7457 1.962154,2.31531 5.546437,3.9762 8.018984,4.55735 2.815271,0.54171 9.435776,1.13949 7.908888,1.61097 -1.910348,1.33834 -6.490705,1.51264 -8.721394,1.63797 -2.225986,-0.59997 -4.695974,3.53944 -5.640805,4.48681 -0.04827,3.65839 4.535053,5.95776 7.575466,7.11204 1.958767,0.43149 6.529547,0.79538 7.895259,2.3725 -4.575942,-0.29066 -5.91054,-1.19953 -8.547975,-0.15316 -2.102028,0.99722 -3.434192,0.80818 -5.65517,1.34764 -1.70891,0.30628 -1.635636,1.51608 -0.944899,2.8265 3.600034,-0.9711 4.224214,0.22226 5.549269,0.46806 -4.087991,1.03099 -5.187817,3.16405 -5.084548,3.72518 -0.333549,2.79451 0.407044,5.96335 2.70765,6.20518 2.819183,0.60964 7.736435,-0.70977 10.453908,0.37039 1.754389,-0.0478 0.32162,1.40993 -0.56091,1.50061 -2.142548,1.1389 -4.366046,1.11917 -6.69292,1.02767 -2.059203,-0.21714 -3.092883,0.78865 -5.089425,1.33661 -1.125382,2.40198 -1.581167,7.6977 3.877535,6.8751 3.009077,0.45503 -2.563276,1.52293 -3.38724,1.46248 -1.337702,1.2262 -1.263945,2.29017 -0.0035,2.5048 2.391023,0.24452 7.288426,-0.49598 9.439441,0.13546 -0.114048,1.48362 -4.070072,2.10988 -5.727607,1.9867 -1.989801,0.063 -5.814915,1.40592 -4.557644,4.81112 0.233692,0.64855 -0.291343,1.90028 0.273331,2.92253 0.603158,1.09191 3.77708,0.66777 3.78576,1.3193 -0.239582,0.48457 -3.048757,0.50176 -3.567952,1.13466 -1.265225,1.54232 -1.228051,4.89033 -0.562102,5.21376 1.549114,1.39692 7.48138,-0.34441 8.335234,1.48443 -2.590905,0.17345 -9.200802,-0.18646 -8.344464,1.21983 0.05676,0.0932 -0.213804,1.30324 0.280936,1.52335 0.858225,0.38181 2.434387,1.05069 2.774033,1.26071 -0.174875,1.11049 -2.301605,1.56859 -2.321946,2.62945 2.403429,2.63741 -2.38768,0.22224 -0.964682,2.95421 0.760457,2.93299 -0.539597,4.64742 -0.147466,7.36424 1.289718,1.8389 0.163639,3.42452 0.345696,5.15178 1.139834,2.96866 2.544714,2.96438 4.802034,3.91084 1.858594,0.59421 -0.203709,0.86813 -1.327304,1.06732 -2.235816,0.39636 -1.970638,1.51705 -1.293141,3.07446 1.563607,2.28544 2.585831,3.18987 2.126523,5.51947 -1.051622,3.99586 0.291891,3.73 0.241223,5.93288 z"
+ id="path3053"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssscscccccccccccccccccccccccccccccccscsccssccccccscccc" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 24.72515,230.25659 c -0.19103,-0.62294 1.493474,-1.28924 1.436685,-1.68069 -0.140331,-0.96731 0.0025,-1.59306 0.715589,-2.76871 0.364408,-1.6836 0.786536,-3.0864 0.06638,-3.59743 -1.087257,-0.77153 -3.041449,-0.54495 -4.048433,-1.68777 1.064465,-1.42563 3.908437,-0.0615 5.006475,-2.75684 0.442042,-1.99326 -2.163299,-2.84673 -1.804464,-5.25463 -0.263586,-1.59269 -2.355457,-3.2585 -1.189377,-4.24371 1.525896,-1.28922 3.016523,-3.20937 2.472068,-4.87108 -0.547805,-1.67192 0.747166,-3.58107 1.193228,-5.2447 0.776682,-1.77529 1.703065,-2.19256 1.045323,-2.87708 -1.7294,-1.79982 -8.255962,-1.3479 -9.264456,-1.48401 4.850698,-0.92065 7.1612,-1.10214 10.21545,-0.98475 1.705567,-1.62602 2.418688,-3.15204 3.057303,-6.45141 0.04326,-3.19619 3.473886,-5.3512 2.312993,-8.57027 -1.474873,-1.89405 -3.92351,0.42629 -5.865826,-0.0157 -1.918243,7e-5 -3.607972,0.38721 -4.330009,-0.16997 2.059203,-0.42797 5.819443,-1.02762 6.881973,-3.63286 0.4692,-0.29823 -8.144998,-0.62691 -10.51304,-0.6373 3.477819,-1.94866 11.894821,-2.70236 11.971597,-3.09797 0.36234,-1.8671 -1.286876,-2.64981 0.314454,-3.69236 2.02868,-1.2248 2.507405,-7.43259 0.626789,-7.75224 -3.901457,-0.28978 -9.461044,-0.47555 -12.524385,-0.0672 2.23578,-0.88308 6.143105,-1.96045 8.366188,-2.81937 2.533188,-0.75642 6.151766,1.52983 6.679872,-2.04207 0.269328,-2.29213 -3.267735,-4.41969 -0.09006,-4.66397 1.901492,-0.3473 3.540643,-2.18195 -0.927754,-2.71467 -2.262923,-0.59203 -5.55539,-2.33251 -15.085819,-1.20502 1.749649,-2.25226 12.888963,-2.09578 19.800255,-0.59254 2.684202,-0.98684 -1.52507,-5.7779 -0.03849,-8.73991 -0.630195,-2.70287 -4.707537,-1.99966 -6.647754,-2.69148 -3.295767,-0.14728 -7.323386,-1.2072 -9.456758,-1.767 1.225066,-0.37659 4.240302,-0.82555 4.987962,-1.43107 2.538008,-1.47832 4.787255,0.21667 7.338007,-1.20249 2.533236,-0.80262 2.979327,-1.18305 5.073613,-3.0238 1.708731,-1.03495 2.005503,-1.97712 -0.360547,-2.53769 -4.22078,-0.77582 -8.425685,-1.61673 -13.054587,-1.18242 -2.143372,0.2011 -10.214445,-0.55959 -11.294002,-0.6283 3.108206,-1.31021 10.809101,-2.09423 13.93871,-2.43935 3.338936,-0.31623 6.920977,2.06072 10.076396,0.34317 1.384544,-0.83091 3.400851,-1.95533 4.254753,-3.00503 0.832524,-1.02342 -13.469071,-4.82473 -18.451386,-4.1548 3.743447,-2.324 14.696089,-0.42978 19.711774,1.60573 -1.410772,-3.02677 -4.08241,-5.5179 -6.526286,-6.8731 -2.867992,-0.018 -5.856478,-0.35676 -8.349745,-2.24921 -2.593755,-2.24053 -11.43162,-4.63019 -12.559352,-8.492397 -0.08326,-1.3371 5.60677,-1.45877 6.260136,-2.15257 l 27.968858,0.847951 c -0.507109,11.421566 -3.5575,23.526586 -5.63546,35.582856 -1.067911,6.19604 -2.957158,15.31012 -4.080403,21.49248 -1.202415,6.6182 -2.88286,11.29656 -4.035665,17.92704 -1.44228,8.29539 -2.960172,15.65744 -4.890378,23.81309 -1.767314,7.4674 -3.980145,15.00667 -6.071627,22.35612 -0.858657,3.01733 -1.883798,13.97805 -4.64388,16.514 z"
+ id="path3834"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscscccsscsccccccccsccccccccccccccccscccscccccccssssscc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3799"
+ d="m 26.500609,119.60377 c 11.540376,-1.19807 18.98427,1.77075 24.710855,4.619"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 9.5081422,115.98645 c 2.2840628,-1.37069 5.0400318,-2.28706 7.6323908,-2.90268 m 27.261987,0.0876 c 2.771691,0.71495 5.447061,1.70867 7.654002,3.10501"
+ id="path3029"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17.30579,194.40162 c 9.000772,-3.38543 15.131673,-1.34767 19.290943,1.11588"
+ id="path3805"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3803"
+ d="m 16.952826,175.04707 c 0.877419,-0.47409 1.760875,-0.8288 2.62454,-1.08797 m 7.559719,-0.73474 c 3.67747,0.0385 6.604257,0.54086 9.140306,1.38303 m 2.301678,0.89772 c 0.670069,0.30115 1.317141,0.62728 1.949834,0.97542"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 14.518526,147.41453 c 6.157938,-2.65755 11.199543,-3.57256 15.419029,-3.70102"
+ id="path3801"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="csszsacsssssc"
+ inkscape:connector-curvature="0"
+ id="path3828"
+ d="m 2.9064941,93.380813 c 0.7299794,6.004013 2.5435767,11.699027 4.0453097,17.469557 2.5701914,9.8762 5.7794162,19.05669 6.7221942,29.3293 0.921224,10.03775 2.546616,21.10561 3.047535,29.38395 0.500919,8.27832 0.26695,13.45839 0.355648,20.18855 0.07922,6.01113 -0.69822,12.0841 0.157675,18.03463 1.321543,9.18791 3.513836,24.87959 7.614596,26.78611 3.830258,-2.35851 5.024196,-14.81236 6.160061,-18.80378 2.091476,-7.34945 4.270391,-14.67311 6.037704,-22.1405 1.930207,-8.15565 3.143058,-15.02693 4.585338,-23.32233 1.152809,-6.63049 2.910658,-11.53306 4.113079,-18.15123 1.123239,-6.18235 3.317819,-15.42803 4.385736,-21.62407 2.077956,-12.05625 5.100914,-24.20315 5.608021,-35.624657"
+ style="color:#000000;fill:none;stroke:#2d2f3c;stroke-width:1.99999988;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3809"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.55140088,0,0,-0.55255119,19.669911,247.5528)" />
+ <path
+ transform="matrix(0.36760058,0,0,-0.36836745,27.803075,197.25852)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3811"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3813"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.55140088,0,0,-0.55255119,15.609376,245.49042)" />
+ <path
+ transform="matrix(0.55140088,0,0,-0.55255119,12.105079,272.41275)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3815"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3817"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.36760058,0,0,-0.36836745,19.848875,223.17753)" />
+ <path
+ transform="matrix(0.55140088,0,0,-0.55255119,15.275634,268.67818)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3819"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3821"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.40436064,0,0,-0.4052042,16.620278,274.41696)" />
+ <path
+ transform="matrix(0.55140088,0,0,-0.55255119,7.4883065,308.47641)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3823"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3825"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.34345458,0,0,-0.34417108,10.373531,296.01192)" />
+ <path
+ transform="matrix(0.34345458,0,0,-0.34417108,12.654783,294.27771)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3827"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3829"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.34345458,0,0,-0.34417108,11.396161,291.00635)" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/Stalagmite01.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Stalagmite01.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3962"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="110"
+ height="260"
+ version="1.0"
+ sodipodi:docname="Stalagmite01.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Stalagmite01.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata3967">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3965" />
+ <sodipodi:namedview
+ inkscape:window-height="826"
+ inkscape:window-width="1440"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="2.5600001"
+ inkscape:cx="13.103579"
+ inkscape:cy="120.1365"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer4"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ borderlayer="true"
+ inkscape:window-maximized="1"
+ inkscape:snap-global="false">
+ <sodipodi:guide
+ orientation="1,0"
+ position="5,-11.60097"
+ id="guide2451" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="105,-19.058737"
+ id="guide2453" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="10,2"
+ id="guide2455" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="25.292968,87"
+ id="guide2461" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="19,94.628904"
+ id="guide3055" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="86,73.472812"
+ id="guide3057" />
+ </sodipodi:namedview>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="tmp"
+ style="display:inline" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="main"
+ style="opacity:1;display:inline">
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 63.03125 1.96875 C 62.625786 1.9763293 62.246074 2.0682472 61.875 2.1875 C 61.85263 2.194689 61.834749 2.2111739 61.8125 2.21875 C 61.599902 2.2911249 61.389229 2.3619819 61.1875 2.46875 C 60.737249 2.7070519 60.305318 3.0424188 59.90625 3.4375 C 59.502805 3.8369141 59.13659 4.3047578 58.78125 4.84375 C 58.512267 5.2517526 58.243547 5.678724 58 6.15625 C 57.954476 6.2455091 57.919673 6.3459986 57.875 6.4375 C 57.810343 6.5696852 57.750406 6.7070249 57.6875 6.84375 C 57.618434 6.9941867 57.535751 7.1255582 57.46875 7.28125 C 57.420633 7.3925298 57.390825 7.5111197 57.34375 7.625 C 57.05527 8.3249999 56.782943 9.0576134 56.53125 9.84375 C 56.282843 10.619623 56.060282 11.472161 55.84375 12.3125 C 55.62383 13.16599 55.409877 14.037584 55.21875 14.9375 C 55.02738 15.838559 54.854135 16.728941 54.6875 17.65625 C 54.521502 18.579132 54.36429 19.508655 54.21875 20.4375 C 54.150491 20.873544 54.095672 21.284646 54.03125 21.71875 C 53.9571 22.217526 53.882164 22.725416 53.8125 23.21875 C 53.638289 24.455511 53.465751 25.739169 53.3125 26.90625 C 53.244191 27.426307 53.159372 28.001139 53.09375 28.5 C 52.916348 29.847975 52.732954 31.214656 52.5625 32.34375 C 52.533313 32.535989 52.498053 32.784476 52.46875 32.96875 C 52.382124 33.512311 52.276721 34.065197 52.1875 34.53125 C 52.062768 35.182794 51.947739 35.745376 51.8125 36.21875 C 50.816434 39.705265 49.814533 43.202077 48.8125 46.6875 C 46.808435 53.658346 44.818432 60.62945 42.96875 67.65625 C 42.043909 71.16965 41.154183 74.707531 40.3125 78.25 C 39.393241 82.118969 38.557871 85.824121 37.78125 89.46875 C 35.451387 100.40264 33.623154 110.6942 31.5625 122.5 C 31.287988 124.07272 30.993713 125.57948 30.6875 127.0625 C 30.074617 130.02824 29.407145 132.86527 28.71875 135.625 C 28.031332 138.38539 27.318325 141.08483 26.625 143.84375 C 25.930698 146.60201 25.255604 149.41365 24.625 152.375 C 24.309926 153.85583 24.005076 155.3677 23.71875 156.9375 C 23.349156 158.96382 22.937997 161.1867 22.46875 163.5 C 22.461869 163.53392 22.444398 163.55978 22.4375 163.59375 C 22.231486 164.60755 22.031695 165.60412 21.8125 166.65625 C 21.517741 168.07358 21.217265 169.44034 20.90625 170.90625 C 20.904134 170.91621 20.908366 170.92754 20.90625 170.9375 C 19.406884 173.57975 17.601465 181.9297 17.40625 187.375 C 12.961981 203.93256 10.011425 223.62992 8.78125 236.15625 C 8.1731344 240.32074 7.6331188 244.71547 7.15625 249.09375 C 7.0351748 250.20538 6.921589 251.29868 6.8125 252.40625 C 6.6329374 254.16744 6.4545652 255.90931 6.3125 257.65625 C 6.2394285 258.56804 6.187097 259.47887 6.125 260.375 C 6.0873366 260.91661 6.0335302 261.45995 6 262 C 5.99873 262.0204 6.0012636 262.04211 6 262.0625 C 5.9274098 263.23723 5.8645168 264.39551 5.8125 265.5625 L 10.25 265.6875 L 105.34375 268.46875 C 103.95314 257.07572 99.517046 240.60622 96.65625 229.65625 C 93.343229 212.49678 88.881036 201.16884 85.625 183.90625 C 85.272552 179.53232 84.083273 171.83392 83.46875 166.46875 C 83.250904 158.88026 82.262624 152.5882 81.09375 146 C 80.112542 138.06524 79.432475 130.51114 79.03125 123.90625 C 78.630025 117.30136 78.512721 98.364671 78.34375 85.59375 C 78.192831 74.18722 79.451216 62.65974 78.03125 51.375 C 75.933648 34.704954 72.602501 6.9911709 66.03125 2.84375 C 64.940089 2.2288485 63.935777 1.9518417 63.03125 1.96875 z "
+ id="path3039" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 61.875,2.1875 c -7.631069,2.4524148 -8.192471,27.485618 -10.0625,34.03125 -3.984266,13.946059 -8.133267,27.861373 -11.5,42.03125 -3.677036,15.475876 -6.002461,28.50894 -8.75,44.25 -2.196098,12.58178 -5.553141,21.87911 -7.84375,34.4375 -0.750027,4.11207 -1.749443,8.93809 -2.818879,13.97868 -1.501737,2.61961 -3.292514,11.01441 -3.488228,16.47363 -4.444269,16.55756 -7.403652,36.25409 -8.6338274,48.78042 -1.3933467,9.54191 -2.556675,20.22443 -2.9653156,29.39227 l 4.4375,0.125 C 25.787436,260.91938 25.396039,247.5 30.875,247.5 c 5.542318,-0.36632 13.106005,0.28033 18.46875,-1.75 3.80233,-0.24269 18.80862,-1.81039 27.287803,-4.55394 -2.972674,-5.38351 -40.429522,-0.77572 -41.181128,-3.04891 -0.79009,-3.75844 22.037406,-2.8892 25.862075,-6.4284 -5.633785,-4.05581 -12.636459,-2.98549 -18.90625,-4.53125 -8.259178,-4.47263 -10.021785,-2.12697 -14.5625,-5.03125 -3.804605,-5.38834 3.925686,-5.09916 8.237925,-4.57154 2.633674,0.36768 4.08732,-3.52298 -8.122148,-6.71378 1.692925,-1.50811 18.677303,1.55126 19.68665,-1.80946 0.675184,-2.24809 -9.836382,-3.22842 -9.006434,-5.56586 1.144756,-3.22406 20.85376,4.19682 21.266507,0.78564 0.232986,-1.92553 -18.370382,-5.96107 -18.65625,-7.21875 -0.129085,-0.56791 0.69247,-2.63672 2.3125,-2.47555 4.241312,0.42197 12.304364,0.67932 20.25,-0.27445 -3.639213,-2.5396 -10.750542,-3.23092 -15,-3.46875 -4.374651,0.61018 -14.973079,-2.57781 -10.03125,-4.65625 11.096122,-4.28585 0.985178,-4.73874 2.21875,-6.625 1.620932,-2.47856 4.175383,-2.40289 10.567779,-2.08392 3.73145,-0.81878 16.656391,-1.33068 19.258071,-4.32336 -2.151867,-1.89023 -11.866076,1.29588 -16.821845,0.76262 -4.955769,-0.53326 -8.259982,-2.30034 -12.629005,-3.35534 -6.166143,-1.10083 -3.470922,-6.76087 -3.4375,-10.6875 0.04546,-5.34052 -3.564691,-5.66107 0.817961,-6.11996 4.127583,0.43139 10.755257,3.13838 15.932039,1.08871 -0.429099,-2.16517 -11.477175,-4.97722 -15.625,-7.65625 -4.595056,-2.57972 -0.174857,-10.014 3.875,-10.65625 -2.13701,-4.55376 -4.470141,-8.22123 -0.625,-10.625 3.93403,-2.06008 -1.211602,-1.92718 -2.78125,-1.8125 -2.548322,-2.32678 6.161299,-6.78021 8.5625,-7.1875 -1.258831,-4.86256 -8.746359,-3.34494 -7.610862,-7.44606 0.257858,-0.93132 10.624745,0.42888 16.573119,1.00856 -0.217258,-2.81527 -9.502088,-3.95018 -12.806007,-4.3125 -3.769854,-0.41341 -3.398078,-1.88726 -2.591202,-3.92943 0.206201,-0.57003 0.04657,-4.47943 2.125,-3.71875 5.508399,2.016 12.269375,1.92606 19.406493,-0.04284 C 53.409328,98.567929 45.550397,94.539042 44.174939,94.440534 43.651918,88.331623 54.962858,88.35387 55.65625,84.375 c 0.480587,-2.757734 1.177869,-5.117926 1.90625,-5.46875 1.777155,-0.233884 3.339066,1.358935 9.9375,-0.9375 -4.784133,-1.094113 -15.290807,-1.602188 -16.718811,-3.454126 -0.258211,-1.209739 0.03475,-6.782829 -0.004,-8.795874 C 51.419667,63.545293 55.036151,64.250583 58.4375,61 58.29794,59.094278 52.346743,58.124097 53.09375,52.96875 54.115015,51.518295 51.70631,47.506543 54.1875,46 61.93447,41.296152 61.927905,38.849856 56.160801,38.568265 53.9485,38.460245 54.715973,35.900912 54.83216,34.802913 59.485398,34.242905 67.805344,36.680193 69.973847,34.188774 66.071945,33.106579 59.38042,32.489155 57.906493,30.893386 56.063668,28.898224 55.77187,26.36155 57.0625,23.40625 60.04117,19.069489 60.031224,14.295569 59.15625,9.875 58.511341,9.1172267 62.75373,3.5737318 67.199879,5.0702518 66.152319,3.1532732 64.378031,1.446731 61.875,2.1875 z"
+ id="path3053"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssccccccccccccccssssscccscczcscccccccscscsccsccccccssccscccc" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 65.644903,7.2482403 c -1.981623,1.8946436 -0.395053,4.4929307 0.208749,7.1076567 0.21582,0.934595 -0.928657,1.991752 -0.680776,2.851263 1.007122,3.492129 5.378898,12.496428 4.726092,17.008131 -0.414078,2.861795 -8.291474,0.701038 -12.992961,0.718204 4.789139,3.667457 10.886318,3.527371 13.75933,3.759102 1.211816,14.686235 -10.637395,12.956624 -2.876017,18.561529 -1.582496,9.524798 -4.318963,11.301504 -1.975303,20.008253 -7.618629,0.91777 -9.87978,0.891593 -18.875,-0.0625 5.805734,3.235692 15.341286,3.852108 17.84375,5 4.592512,1.753985 5.370352,1.190356 6.381296,7.487621 0.228136,1.421083 -0.135642,5.604093 -1.38788,7.081288 -0.439894,0.518918 -9.822302,2.603482 -9.985649,3.227207 -0.314607,1.201315 7.907356,0.256755 9.057122,-0.04287 2.682706,-0.69911 1.889158,4.207695 0.722657,7.429685 -3.845427,2.28209 0.697338,0.70426 -3.002777,1.54286 -3.550667,0.89756 -8.887317,1.56978 -12.437985,1.3841 2.472657,5.64584 5.815077,2.62165 7.839199,7.56523 4.565039,3.07249 1.562214,8.84252 6.09375,11.78125 1.166634,0.7016 -7.935167,4.42641 -7.25,7.375 0.49649,2.13662 10.927283,3.18718 11.09375,5.5625 0.364811,5.20549 -0.157591,8.74098 -1.875,9.03174 -7.432265,2.32253 -11.536746,3.59406 -21,3.18701 1.289855,2.78055 10.932872,6.46442 15.375,5.125 17.55536,-3.17094 0.614812,4.90662 7.068507,5.53125 3.880833,0.36267 5.724605,1.44514 -0.813774,7.60734 -12.609353,3.6455 -5.618552,2.2541 -12.804187,3.9554 1.507529,0.47095 4.782565,1.3037 8.432057,1.42177 5.416998,0.17525 7.48773,0.57354 8.4873,1.63849 1.440739,1.48727 0.809876,5.46045 -1.063947,8.605 -6.657309,3.91572 -20.70625,7.28435 -26.983869,6.38844 1.505109,4.09822 5.097371,2.8283 6.521663,3.97731 4.834895,2.80523 11.649861,0.66593 16.509041,3.35886 4.825814,1.52303 2.878294,-0.46075 6.867901,3.03222 3.255126,1.96388 4.16924,8.15334 -0.9375,6.375 -8.347527,-0.068 -11.930812,0.35679 -21.64108,3.03835 26.088001,5.56741 -10.258812,6.81168 -10.517112,9.48495 5.921132,1.06519 12.861698,0.6082 18.823604,1.26311 6.360671,0.60005 13.82158,-4.01529 19.832646,-0.75613 4.150895,2.48134 6.425842,3.33111 4.973786,11.23234 -5.636528,3.05389 -12.216424,7.07523 -23.661286,8.33823 -11.380767,1.25592 -26.977795,0.36664 -35.55091,-2.00856 -0.01502,4.78549 32.946414,6.74659 32.92591,8.11038 -0.09655,6.4217 -20.946749,6.51747 -22.71875,12.5625 -0.1441,2.30499 8.774065,2.70871 11.34375,3.75 L 55.40625,267 l 45.2409,-1.5625 C 99.455582,253.53554 98.036116,242.99559 94.762334,230.90121 90.253792,211.57381 84.638751,194.2439 83.553291,184.2703 81.483752,165.25463 77.361469,139.96018 76.407221,124.25151 75.452973,108.54284 76.233959,98.640885 76.064988,85.869964 75.914069,74.463434 77.241507,62.590687 75.821541,51.305947 74.347907,39.594693 72.934237,23.105779 69.540049,12.493204 68.361052,9.7643765 67.326035,5.6408984 65.644903,7.2482403 z"
+ id="path3834"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssccccccsssscccccssccccccsccccccccccccscscccccsssscs" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path3171"
+ d="m 52.42614,33.77387 c 3.331067,0.911292 6.237256,1.408491 8.806854,1.578597 m 8.594721,-0.828846 c 1.832401,-0.538654 3.445408,-1.288935 4.926674,-2.164467"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 41.443093,76.164495 c 2.871562,0.761873 5.631599,1.297466 8.271899,1.646348 M 72.955565,76.23331 c 1.967252,-0.558235 3.731689,-1.179264 5.280256,-1.800195"
+ id="path3173"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3175"
+ d="m 48.59575,98.539577 c 10.700964,1.535263 20.698198,0.05717 29.845543,-5.868281"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 44.447187,154.71909 c 7.482891,0.96752 14.04059,0.30006 19.78499,-1.29577"
+ id="path3233"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3243"
+ d="m 51.464962,177.48511 c 12.804328,-0.32945 22.632446,-5.15672 30.566491,-10.4624"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17.919568,187.98627 c 14.80936,6.33393 27.381392,7.8603 38.047895,6.67818 m 26.979078,-9.80233 c 0.667453,-0.42291 1.32118,-0.85084 1.961452,-1.28207"
+ id="path3245"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3247"
+ d="m 9.2315288,236.28094 c 2.3202282,1.00856 4.5981102,1.92464 6.8344032,2.75312 m 8.697248,2.85033 c 10.917305,3.10134 20.765639,4.06579 29.647578,3.55287 m 13.329924,-1.96395 c 11.196041,-2.68947 20.553737,-7.65195 28.366647,-12.99998"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 35.048045,106.14809 c 9.389307,3.91463 17.367844,4.87418 24.14369,4.16184"
+ id="path3249"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ id="path4033"
+ d="M 63.03125 1.96875 C 62.625786 1.9763293 62.246074 2.0682472 61.875 2.1875 C 61.85263 2.194689 61.834749 2.2111739 61.8125 2.21875 C 61.599902 2.2911249 61.389229 2.3619819 61.1875 2.46875 C 60.737249 2.7070519 60.305318 3.0424188 59.90625 3.4375 C 59.502805 3.8369141 59.13659 4.3047578 58.78125 4.84375 C 58.512267 5.2517526 58.243547 5.678724 58 6.15625 C 57.954476 6.2455091 57.919673 6.3459986 57.875 6.4375 C 57.810343 6.5696852 57.750406 6.7070249 57.6875 6.84375 C 57.618434 6.9941867 57.535751 7.1255582 57.46875 7.28125 C 57.420633 7.3925298 57.390825 7.5111197 57.34375 7.625 C 57.05527 8.3249999 56.782943 9.0576134 56.53125 9.84375 C 56.282843 10.619623 56.060282 11.472161 55.84375 12.3125 C 55.62383 13.16599 55.409877 14.037584 55.21875 14.9375 C 55.02738 15.838559 54.854135 16.728941 54.6875 17.65625 C 54.521502 18.579132 54.36429 19.508655 54.21875 20.4375 C 54.150491 20.873544 54.095672 21.284646 54.03125 21.71875 C 53.9571 22.217526 53.882164 22.725416 53.8125 23.21875 C 53.638289 24.455511 53.465751 25.739169 53.3125 26.90625 C 53.244191 27.426307 53.159372 28.001139 53.09375 28.5 C 52.916348 29.847975 52.732954 31.214656 52.5625 32.34375 C 52.533313 32.535989 52.498053 32.784476 52.46875 32.96875 C 52.382124 33.512311 52.276721 34.065197 52.1875 34.53125 C 52.062768 35.182794 51.947739 35.745376 51.8125 36.21875 C 50.816434 39.705265 49.814533 43.202077 48.8125 46.6875 C 46.808435 53.658346 44.818432 60.62945 42.96875 67.65625 C 42.043909 71.16965 41.154183 74.707531 40.3125 78.25 C 39.393241 82.118969 38.557871 85.824121 37.78125 89.46875 C 35.451387 100.40264 33.623154 110.6942 31.5625 122.5 C 31.287988 124.07272 30.993713 125.57948 30.6875 127.0625 C 30.074617 130.02824 29.407145 132.86527 28.71875 135.625 C 28.031332 138.38539 27.318325 141.08483 26.625 143.84375 C 25.930698 146.60201 25.255604 149.41365 24.625 152.375 C 24.309926 153.85583 24.005076 155.3677 23.71875 156.9375 C 23.349156 158.96382 22.937997 161.1867 22.46875 163.5 C 22.461869 163.53392 22.444398 163.55978 22.4375 163.59375 C 22.231486 164.60755 22.031695 165.60412 21.8125 166.65625 C 21.517741 168.07358 21.217265 169.44034 20.90625 170.90625 C 20.904134 170.91621 20.908366 170.92754 20.90625 170.9375 C 19.406884 173.57975 17.601465 181.9297 17.40625 187.375 C 12.961981 203.93256 10.011425 223.62992 8.78125 236.15625 C 8.1731344 240.32074 7.6331188 244.71547 7.15625 249.09375 C 7.0351748 250.20538 6.921589 251.29868 6.8125 252.40625 C 6.6329374 254.16744 6.4545652 255.90931 6.3125 257.65625 C 6.2394285 258.56804 6.187097 259.47887 6.125 260.375 C 6.0873366 260.91661 6.0335302 261.45995 6 262 C 5.99873 262.0204 6.0012636 262.04211 6 262.0625 C 5.9274098 263.23723 5.8645168 264.39551 5.8125 265.5625 L 10.25 265.6875 L 105.34375 268.46875 C 103.95314 257.07572 99.517046 240.60622 96.65625 229.65625 C 93.343229 212.49678 88.881036 201.16884 85.625 183.90625 C 85.272552 179.53232 84.083273 171.83392 83.46875 166.46875 C 83.250904 158.88026 82.262624 152.5882 81.09375 146 C 80.112542 138.06524 79.432475 130.51114 79.03125 123.90625 C 78.630025 117.30136 78.512721 98.364671 78.34375 85.59375 C 78.192831 74.18722 79.451216 62.65974 78.03125 51.375 C 75.933648 34.704954 72.602501 6.9911709 66.03125 2.84375 C 64.940089 2.2288485 63.935777 1.9518417 63.03125 1.96875 z "
+ style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2d2f3c;stroke-width:1.99999988000000006;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ transform="matrix(0.65217391,0,0,0.65217391,56.761729,88.004023)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4052"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4054"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.4347826,0,0,0.4347826,47.826602,140.53021)" />
+ <path
+ transform="matrix(0.65217391,0,0,0.65217391,33.404412,83.602295)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4056"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4058"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.65217391,0,0,0.65217391,60.082041,85.171992)" />
+ <path
+ transform="matrix(0.58763587,0,0,0.58763587,63.406599,106.19356)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4060"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4062"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.52309782,0,0,0.52309782,64.582721,113.83622)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4064"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.65217391,0,0,0.65217391,42.503917,29.800899)" />
+ <path
+ transform="matrix(0.46963275,0,0,0.46963275,50.531869,56.181457)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4066"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4068"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.58763587,0,0,0.58763587,49.148787,47.990436)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4070"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.83471506,0,0,0.83471506,35.863434,-35.872725)" />
+ <path
+ transform="matrix(0.45073,0,0,0.45073,50.815075,83.054549)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4072"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.65217391,0,0,0.65217391,32.836442,-52.682475)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4074"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4076"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.45073,0,0,0.45073,41.1476,0.57117523)" />
+ <path
+ transform="matrix(0.45073,0,0,0.45073,46.188498,2.0903499)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4078"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4080"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.35945942,0,0,0.35945942,53.583216,27.952348)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4082"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.42399747,0,0,0.42399747,47.628881,-54.871167)" />
+ <path
+ transform="matrix(0.42399747,0,0,0.42399747,50.66723,-56.252235)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4084"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path4086"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ transform="matrix(0.42399747,0,0,0.42399747,50.529123,-52.868619)" />
+ <path
+ transform="matrix(0.74344449,0,0,0.74344449,31.587476,-132.19896)"
+ d="m 53.026315,253.0921 a 1.5131578,1.5131578 0 1 1 -3.026316,0 1.5131578,1.5131578 0 1 1 3.026316,0 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path4088"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/Stalagmite02.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/Stalagmite02.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="64"
+ height="162"
+ version="1.0"
+ sodipodi:docname="Stalactite02.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="Stalagmite02.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 130 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="240 : 130 : 1"
+ inkscape:persp3d-origin="120 : 86.666667 : 1"
+ id="perspective45" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="2.6870058"
+ inkscape:cx="-88.785874"
+ inkscape:cy="73.963999"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-maximized="0"
+ inkscape:snap-global="false">
+ <sodipodi:guide
+ orientation="1,0"
+ position="1,-6.3157894"
+ id="guide2457" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="63,-11.723086"
+ id="guide2459" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="13.223684,3.0921052"
+ id="guide2461" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="97.631578,43"
+ id="guide3045" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="11,41.842105"
+ id="guide3047" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="56,23.68421"
+ id="guide3049" />
+ </sodipodi:namedview>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="tmp"
+ style="display:inline"
+ transform="translate(0,-98)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="main"
+ transform="translate(0,-98)">
+ <path
+ style="color:#000000;fill:#4b4e64;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 0.36574672,265.60261 C 1.2291358,258.51609 3.3741818,251.7943 5.1503698,244.98336 8.1902838,233.32653 11.986021,222.49083 13.1011,210.36611 c 1.089584,-11.84751 3.012031,-24.91086 3.604497,-34.68174 0.592466,-9.77087 0.315737,-15.88489 0.420646,-23.82847 0.0937,-7.09492 -0.695128,-14.26704 0.18649,-21.2862 1.302339,-10.36886 3.385709,-27.60823 7.465607,-30.18795 7.226354,-4.079707 7.483028,16.05538 8.826481,20.76644 2.473711,8.67452 5.050841,17.3186 7.141145,26.13234 2.282968,9.62607 3.717478,17.73623 5.423345,27.52725 1.363495,7.82593 3.442605,13.61243 4.864778,21.42382 1.328521,7.297 3.924178,18.20964 5.187265,25.5228 2.45772,14.22994 5.332831,28.56687 5.932616,42.04764"
+ id="path3039"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csszsacsssssc" />
+ <path
+ style="color:#000000;fill:#636885;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.69999999;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 24.811427,100.5015 c -3.924656,4.92456 -6.403893,21.40046 -7.493664,30.0769 -0.881619,7.01917 -0.10032,14.1887 -0.194022,21.28362 -0.104909,7.94358 0.165617,14.05306 -0.426849,23.82393 -0.592466,9.77089 -2.499825,22.8242 -3.58941,34.67172 -1.115078,12.12472 -4.9149932,22.96911 -7.9549082,34.62594 -0.659154,2.52758 -3.504139,16.67591 -4.18053508,19.20214 2.24036208,-10e-6 6.55942208,1.49606 9.36054728,-1.54746 2.5362,-2.75566 2.5363,-10.07955 4.564773,-10.07955 3.441065,-0.22785 4.333043,-1.86561 7.662613,-3.1285 1.270386,-1.08354 7.936977,1.01209 7.696779,-0.63152 -0.670072,-4.58512 -19.344941,-3.89677 -18.216705,-7.35182 0.22791,-0.69794 21.338924,3.68485 23.002498,3.18111 4.842369,-1.00139 12.657083,0.15319 15.82165,-2.8255 -3.49785,-2.52274 -8.776014,0.47254 -12.668744,-0.48893 -2.538375,-1.1789 -4.364774,-1.77054 -7.043907,-1.70551 -3.00766,-0.25688 -5.990672,-2.38892 -9.022031,-2.13095 -2.666386,-0.57912 -3.885032,1.51825 -6.322957,-0.17484 -2.362165,-3.35157 0.711004,-6.72001 3.388349,-6.39183 0.782999,-0.15936 3.43454,-0.80584 6.848891,-1.97565 -3.600927,-1.31022 -6.269432,-1.93206 -4.863997,-3.39605 2.320753,-2.73275 3.91445,-3.06241 6.838875,-3.74834 3.329785,-0.63938 11.160242,-1.34494 9.354302,-1.90142 -2.259479,-1.57964 -7.676934,-1.78537 -10.3153,-1.9333 -2.632803,0.70815 -5.087323,-0.91623 -7.683277,-0.86965 -0.05709,-4.31798 6.842319,-2.52816 10.438392,-3.89055 2.316748,-0.50929 5.54411,-0.47287 7.159417,-2.33434 -3.000029,-1.59822 -6.368235,-1.9232 -9.487683,-3.15822 -2.48619,-1.17702 -5.734799,-1.22567 -8.361679,-1.86239 -2.021227,-0.36151 -1.934562,-1.01292 -1.117587,-2.5596 4.25797,1.14618 8.381091,2.57217 14.461466,2.90302 -9.503886,-3.15815 -12.283162,-6.99587 -12.16102,-7.65816 -0.394508,-3.29836 0.481435,-9.36805 3.202495,-9.65348 3.334412,-0.71956 9.150332,0.83774 12.364445,-0.43717 2.075018,0.0564 0.380399,-1.66414 -0.663421,-1.77117 -2.534116,-1.34423 -5.163976,-1.32095 -7.916105,-1.21295 -2.43554,0.25629 -3.658133,-0.93084 -6.01956,-1.5776 -1.331054,-2.83504 -1.870138,-9.08556 4.586187,-8.11465 3.55901,-0.53707 -3.031736,-1.7975 -4.006286,-1.72616 -1.582178,-1.44728 -1.494941,-2.70307 -0.0041,-2.9564 2.828002,-0.28861 8.620446,0.5854 11.164576,-0.15988 -0.134891,-1.75111 -4.813911,-2.49029 -6.774373,-2.3449 -2.353454,-0.0744 -6.877639,-1.6594 -5.390591,-5.67854 0.574262,-1.59041 4.917539,-5.50144 1.532775,-5.7443 -0.694971,-0.9793 1.713921,-3.46566 2.818636,-3.99871 1.832227,-1.64879 5.96958,-0.52532 6.979483,-2.68389 -2.841708,-1.36777 -9.371979,-2.45125 -4.583211,-2.08559 -0.206835,-1.3107 -5.873672,-2.78322 -5.897731,-4.03535 2.842676,-3.11292 -2.824048,-2.66948 -1.140985,-5.89401 0.899437,-3.4618 -0.716026,-6.61128 -0.252229,-9.81793 1.525424,-2.17045 -0.351146,-4.00313 -0.135816,-6.0418 1.348147,-3.5039 4.994013,-3.46002 7.663876,-4.57712 2.198267,-0.70135 0.198114,-0.72957 -1.025188,-1.29858 -2.682877,-0.12202 -4.781899,-1.82939 -3.980584,-3.6676 1.849369,-2.69749 3.525291,-3.76499 2.982041,-6.51461 -0.400405,-0.47133 1.101258,-3.70034 3.861743,-2.7695 -0.840871,-3.1148 -4.879696,-3.07506 -4.860349,-3.26241 z"
+ id="path3053"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssscsccssccccccccccccccccccccccccccccccccccccccccccccc" />
+ <path
+ style="color:#000000;fill:#3a3d4e;fill-opacity:1;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 28.700865,104.20401 c -0.784266,2.55211 -0.623383,2.91419 0.561387,4.86334 0.431006,1.98715 0.38559,3.87582 -0.46618,4.47899 -1.285962,0.91063 -3.597299,0.6432 -4.788317,1.99207 1.259005,1.68266 4.622735,0.0726 5.921449,3.25389 0.522829,2.35263 -2.558659,3.35998 -2.134244,6.20201 -0.311759,1.87985 -2.785937,3.846 -1.406746,5.00884 1.804766,1.52166 3.567817,3.78801 2.923859,5.74931 -0.647921,1.97337 1.3895,3.91612 1.917084,5.87969 0.918627,2.09537 1.950317,5.69551 0.925113,6.15244 -2.239995,0.99838 -11.826852,-0.58332 -13.019657,-0.42267 3.98641,4.58094 11.550652,2.95998 13.132884,3.6083 2.824998,1.15755 3.677759,1.00255 4.433086,4.89679 0.05116,3.77245 4.108768,6.316 2.735712,10.11545 -1.744418,2.23554 -4.640564,-0.50315 -6.937854,0.0185 -2.268817,-8e-5 -4.267358,-0.45702 -5.121354,0.20061 2.43554,0.50513 6.882994,1.2129 8.13971,4.28785 0.554951,0.352 -9.633563,0.73994 -12.434384,0.75221 4.113419,2.29999 14.068697,3.18958 14.159504,3.65652 0.428561,2.20373 -1.522063,3.12756 0.371924,4.35807 2.399437,1.44563 2.965653,8.77266 0.74134,9.14994 -4.614481,0.34203 -11.190128,0.56129 -14.81332,0.0793 2.644388,1.0423 7.265808,2.31392 9.895178,3.3277 2.996149,0.8928 7.276052,-1.80566 7.900673,2.41024 0.31855,2.70539 -1.841801,8.08963 1.916623,8.37796 2.409494,0.22559 8.352027,-3.31055 4.292537,0.52238 -2.672737,2.01298 -5.545457,2.72991 -8.502367,3.14764 -2.909929,-9e-5 -13.262604,-0.58595 -16.520055,-1.2955 2.069412,2.65833 12.521071,4.64786 14.781668,5.04783 3.174761,1.16476 6.600019,1.84996 8.358288,5.346 -0.745368,3.19019 -5.256626,4.53443 -7.551433,5.35098 -3.898095,0.17384 -8.661795,1.42485 -11.185058,2.08558 1.448957,0.44449 5.015252,0.9744 5.899553,1.68909 3.001849,1.74486 5.662165,-0.25573 8.679088,1.41929 2.996205,0.94733 3.601636,0.46453 6.078669,2.63717 2.021016,1.22154 2.216399,4.04191 -0.582066,4.70354 -4.992162,0.9157 -9.965547,1.90822 -15.440419,1.39561 -2.535091,-0.23736 -14.41561,-1.35845 -15.692465,-1.27735 3.676257,1.54643 15.118944,4.49074 18.820515,4.89809 3.949154,0.37324 9.586477,-0.18039 13.318575,1.84683 1.637581,0.98072 3.711132,-0.17697 4.721091,1.06199 0.984675,1.20794 -17.331287,3.90864 -23.224161,3.11792 4.427592,2.74301 19.405058,1.90498 24.55927,0.82256 -1.668603,3.57248 -5.9957,2.86315 -8.886214,4.46269 -3.392141,0.0212 -6.926797,0.42108 -9.875729,2.65473 -3.067785,2.64449 -13.520842,5.46499 -14.854677,10.02355 -0.09848,1.57817 6.631453,1.72177 7.404227,2.54066 l 32.302265,-1.07848 c -0.599787,-13.48083 -3.429531,-27.69069 -5.887255,-41.92065 -1.263081,-7.31316 -3.497603,-18.07047 -4.82613,-25.36749 -1.422167,-7.81143 -3.409727,-13.33328 -4.773216,-21.15921 -1.705868,-9.79102 -3.189915,-18.48041 -5.472883,-28.10649 -2.090304,-8.81374 -4.629736,-17.78997 -7.103453,-26.46449 -1.015584,-3.56134 -1.41104,-13.50867 -3.391635,-16.50184 z"
+ id="path3834"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscccsscscsccccccscccccccccccccccccscccscccccccsssssc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3799"
+ d="m 28.271879,234.65177 c 13.649475,1.41408 22.453801,-2.09001 29.226967,-5.45179"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 8.1738998,238.92128 c 2.7014942,1.61782 5.9611392,2.69941 9.0272732,3.42602 m 32.244338,-0.1034 c 3.27824,-0.84386 6.442556,-2.01674 9.052834,-3.66484"
+ id="path3029"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 17.396632,146.36817 c 10.645737,3.99582 17.89711,1.59066 22.816521,-1.31706"
+ id="path3805"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3803"
+ d="m 16.979161,169.21227 c 1.037775,0.55957 2.082689,0.97823 3.104196,1.28413 m 8.94132,0.86721 c 4.349558,-0.0455 7.811239,-0.63838 10.810772,-1.63239 m 2.722328,-1.05957 c 0.79253,-0.35545 1.557859,-0.74038 2.306182,-1.15129"
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#323442;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 14.099973,201.82684 c 7.283351,3.1367 13.246351,4.21668 18.236983,4.36831"
+ id="path3801"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="csszsacsssssc"
+ inkscape:connector-curvature="0"
+ id="path3828"
+ d="M 0.36574672,265.60262 C 1.2291358,258.5161 3.3741828,251.79431 5.1503698,244.98337 8.1902848,233.32654 11.986022,222.49084 13.1011,210.36612 c 1.089585,-11.84752 3.012031,-24.91086 3.604497,-34.68175 0.592466,-9.77087 0.315738,-15.88489 0.420646,-23.82847 0.0937,-7.09491 -0.695127,-14.26703 0.186491,-21.2862 1.302339,-10.36886 3.385708,-27.60823 7.465607,-30.18794 7.226353,-4.079711 7.483028,16.05537 8.826481,20.76643 2.473711,8.67453 5.05084,17.31861 7.141145,26.13234 2.282968,9.62608 3.717477,17.73623 5.423345,27.52725 1.363495,7.82594 3.442605,13.61243 4.864778,21.42382 1.328521,7.29701 3.924178,18.20965 5.187265,25.52281 2.45772,14.22994 5.332831,28.56687 5.932616,42.04764"
+ style="color:#000000;fill:none;stroke:#2d2f3c;stroke-width:1.99999988;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3809"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ transform="matrix(0.65217391,0,0,0.65217391,20.192816,83.634061)" />
+ <path
+ transform="matrix(0.4347826,0,0,0.4347826,29.812382,142.99619)"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3811"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3813"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ transform="matrix(0.65217391,0,0,0.65217391,15.390185,86.068271)" />
+ <path
+ transform="matrix(0.65217391,0,0,0.65217391,11.245448,54.291956)"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3815"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3817"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ transform="matrix(0.4347826,0,0,0.4347826,20.404487,112.40409)" />
+ <path
+ transform="matrix(0.65217391,0,0,0.65217391,14.995448,58.69985)"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3819"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3821"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ transform="matrix(0.47826086,0,0,0.47826086,16.585837,51.926396)" />
+ <path
+ transform="matrix(0.65217391,0,0,0.65217391,5.7849228,11.726166)"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3823"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3825"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ transform="matrix(0.40622372,0,0,0.40622372,9.1974458,26.437947)" />
+ <path
+ transform="matrix(0.40622372,0,0,0.40622372,11.895616,28.484835)"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ sodipodi:ry="1.5131578"
+ sodipodi:rx="1.5131578"
+ sodipodi:cy="253.0921"
+ sodipodi:cx="51.513157"
+ id="path3827"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#2d2f3c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3829"
+ sodipodi:cx="51.513157"
+ sodipodi:cy="253.0921"
+ sodipodi:rx="1.5131578"
+ sodipodi:ry="1.5131578"
+ d="m 53.026315,253.0921 c 0,0.8357 -0.677464,1.51316 -1.513158,1.51316 -0.835694,0 -1.513158,-0.67746 -1.513158,-1.51316 0,-0.83569 0.677464,-1.51316 1.513158,-1.51316 0.835694,0 1.513158,0.67747 1.513158,1.51316 z"
+ transform="matrix(0.40622372,0,0,0.40622372,10.40697,32.34601)" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/horizont.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/horizont.svg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ width="1024"
+ height="512"
+ version="1.0"
+ sodipodi:docname="horizont.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="horizont.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="display:inline;enable-background:new">
+ <sodipodi:namedview
+ inkscape:window-height="824"
+ inkscape:window-width="1434"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="0.90509668"
+ inkscape:cx="698.89623"
+ inkscape:cy="206.45937"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="layer2"
+ inkscape:window-maximized="0"
+ inkscape:snap-global="false"
+ borderlayer="true"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <sodipodi:guide
+ orientation="0,1"
+ position="2272.329,20.79935"
+ id="guide3067" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5">
+ <filter
+ inkscape:collect="always"
+ id="filter4015-4"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="5.1957342"
+ id="feGaussianBlur4017-8" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter3884"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.6668516"
+ id="feGaussianBlur3886" />
+ </filter>
+ </defs>
+ <g
+ style="display:inline"
+ inkscape:label="main"
+ id="layer2"
+ inkscape:groupmode="layer"
+ transform="translate(0,-512)">
+ <g
+ id="g4328"
+ mask="none"
+ style="filter:url(#filter3884)"
+ transform="matrix(0.5,0,0,0.66650663,-13.64037,333.37598)">
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m -242.84375,1322.4062 c -4.85509,0.2256 -9.73424,1.7368 -13.59375,4.75 4.99587,-2.2421 10.28385,-3.832 15.6875,-4.7187 l -1.03125,-0.031 z"
+ id="path4265"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path2418"
+ d="m 1423.9688,578.5 c -4.8281,3.25415 -10.4078,5.74486 -14.6563,9.71875 -2.8071,4.86128 -5.3538,19.30823 -10.1875,22.625 -3.986,4.3034 -5.5496,9.81753 -9.2812,14.40625 -3.1278,5.77767 -5.5426,11.9348 -8.625,17.71875 -2.0329,6.93474 1.6422,15.88956 -1.9376,22.53125 l 1.4688,0.90625 c -0.7094,9.88949 -8.0591,15.35962 -8.9062,25.21875 -5.0321,9.56068 -12.558,19.27351 -13.1876,30.4375 -6.0568,11.33686 -8.3145,24.16955 -13.7187,35.78125 -3.2417,9.2532 -3.2788,19.48504 -8.0625,28.21875 -3.3928,9.46966 -3.2124,19.68014 -4.5625,29.53125 -7.3632,11.12623 -14.068,22.68756 -20.3437,34.4375 -2.9836,7.70241 -1.7247,16.60719 -6.125,23.84375 -6.4973,16.40792 -19.425,28.89981 -30.3438,42.34375 -4.5174,7.09624 -11.8464,11.51011 -18.6875,16.0625 -6.9476,3.24781 -14.1674,5.81428 -21.1563,8.96875 -7.1899,0.27391 -14.3543,1.14105 -21.4062,2.5 -6.7374,1.01921 -13.4323,2.25541 -20.25,2.625 -10.5582,1.39384 -21.1486,2.60812 -31.7812,3.25 -5.8835,0.52459 -11.7393,1.30543 -17.5938,2.0625 -0.7462,-2.22538 -1.4506,-4.52658 -2.0312,-6.96875 -1.3283,-5.58058 -4.1856,-10.40386 -5.5313,-15.5 -1.7075,-6.46567 -1.9668,-13.16787 -4.4063,-20.1875 -2.1295,-6.13015 -6.5296,-8.98073 -9.0937,-15.0625 -2.2432,-5.32058 -2.6232,-13.8757 -4.9063,-19.1875 -1.3405,-3.12012 -3.9586,-9.84076 -6.1562,-16.53125 -2.1567,-6.56636 -3.8247,-13.15193 -12.2812,-11.21875 -5.2883,1.39649 -7.6724,8.74414 -11.1563,16.9375 -2.8839,6.78249 -7.1313,14.04607 -8.9375,19.875 -1.3577,4.38184 -0.1224,9.8679 -0.2812,14.40625 -0.1578,4.48553 -1.7151,8.02267 -2.1563,12.46875 -0.9937,10.01451 0.6981,18.41193 -3.2187,30 -1.8044,5.33631 -2.7673,11.91031 -4.6876,18.5625 -3.9915,0.30393 -7.9619,0.60988 -11.9374,1.0625 -12.2625,1.78753 -24.6985,1.60664 -37,3.03125 -10.1305,0.45886 -20.2905,0.94686 -30.43755,0.625 -9.75753,-0.14214 -19.18976,-2.93728 -28.25,-6.34375 -6.24427,-2.09836 -11.4945,-6.33838 -17.5625,-8.84375 -4.49785,-3.02242 -6.41529,-8.8087 -11.4375,-11.1875 -5.02357,-5.8332 -11.51406,-10.02888 -17.375,-14.90625 -3.24416,-4.40704 -7.05621,-8.39562 -11.53125,-11.625 -4.98299,-3.61424 -9.33808,-7.953 -13.09375,-12.8125 -3.47846,-3.95176 -7.11437,-7.96754 -9,-12.96875 -5.70989,-5.54227 -9.8769,-12.5796 -12.34375,-20.125 -6.52442,-5.42212 -4.97495,-15.47963 -11.15625,-21.1875 -5.28522,-7.26574 -8.41656,-16.07622 -15.09375,-22.3125 -3.87548,-4.72593 -6.16382,-10.68397 -6.71875,-16.75 -3.78003,-5.67084 -6.88185,-11.79971 -9.09375,-18.25 -6.37214,-7.55064 -16.25571,-12.37805 -19.53125,-22.28125 -1.77765,-5.35588 -4.41097,-10.70825 -9.84375,-13.125 -5.19573,-2.31019 -5.89965,-9.2372 -11.9375,-10.3125 -7.27022,-2.56843 -15.4451,-4.92629 -23.03125,-2.375 -3.13742,0.86864 -4.19589,2.32748 -5.1875,6.40625 -1.86451,2.47982 -2.9553,3.28025 -3.59375,7.5 -0.0203,5.00717 -2.74489,8.89718 -5.1875,12.875 -4.13053,3.73232 -3.92186,8.7611 -3.71875,13.6875 -2.62972,5.4048 -7.17562,9.56251 -8.78125,15.5625 -3.74519,5.10083 -2.79254,11.37927 -5.5625,16.84375 -1.94978,4.72274 -6.29164,7.87903 -8.125,12.71875 -2.55657,3.83097 -4.507,8.15932 -4.71875,12.84375 -0.27365,4.55586 0.51379,9.62233 -2.9375,13.28125 -4.0107,4.28922 -8.51369,8.35824 -9.6875,14.4375 -3.59529,4.75872 -0.0743,12.14273 -5.15625,15.96875 -5.53506,2.65807 -4.50848,9.97577 -8.0625,14.0625 -5.71002,3.27521 -8.59878,9.63554 -13.84375,12.875 -5.30537,2.50086 -9.13687,6.53308 -12.53125,11.0625 -5.02895,3.57621 -11.59839,3.39652 -17.21875,5.6875 -6.86264,1.47552 -13.26577,4.85584 -20.375,5.15625 -10.52935,1.11885 -20.97138,2.92412 -31.4375,4.46875 -24.52214,2.45166 -49.19318,2.45978 -73.8125,2.75 -13.56824,0.0226 -27.17565,0.0498 -40.71875,0.5 -5.20758,0.60307 -10.43959,0.76828 -15.625,1.59375 -9.26921,0.49784 -19.17521,-0.53405 -27.15625,-5.625 -3.2594,-2.92831 -6.00116,-6.4339 -8.65625,-9.9375 -1.94873,-3.07529 -4.71126,-5.65563 -6.84375,-8.4375 -2.08637,-6.50997 -7.71976,-11.94177 -7.34375,-19.15625 -1.30714,-9.55231 -9.34737,-16.51896 -10.6875,-26.09375 -2.2474,-7.49963 -4.86466,-15.05372 -5.09375,-22.9375 -3.42517,-13.22576 4.72363,-26.77434 -0.0312,-39.875 -1.88622,-6.21043 -3.64108,-12.73148 -2.46875,-19.25 -0.16009,-10.09918 -6.24449,-19.54301 -4.03125,-29.78125 0.31794,-9.13737 -3.65283,-18.07471 -1.90625,-27.21875 -2.78774,-8.77498 -5.27694,-18.13771 -3.46875,-27.375 -2.13856,-8.87886 -8.13711,-17.38785 -5.75,-26.875 0.46259,-6.56881 -3.71496,-12.62247 -2.65625,-19.21875 -3.45995,-5.60247 1.15674,-12.4827 -2.09375,-18.21875 -1.92486,-5.20411 -8.87035,-5.87803 -10.34375,-11.21875 -1.73744,-6.65086 -10.05158,-2.89568 -14.09375,-0.71875 -5.89582,2.96776 -8.0121,9.58689 -11.03125,15 -1.75776,5.49362 -3.36684,11.11001 -6.21875,16.28125 -1.05954,6.60734 -1.72398,13.46153 -5.21875,19.34375 -2.35941,4.75504 -5.06809,9.54328 -5.6875,14.90625 -6.45373,8.74326 -11.63661,18.34996 -16.6875,27.9375 -2.88495,7.90567 -1.70405,17.28003 -7.3125,24.125 -5.23737,8.02222 -2.68356,18.7527 -8.40625,26.5625 -3.5263,9.25006 -6.01977,19.08622 -11.75,27.3125 -0.81988,9.85624 -7.37668,17.73298 -11.34375,26.4375 -1.51314,8.54474 -1.8675,17.68652 -6.0625,25.4375 -5.70759,6.95938 -13.25227,13.05504 -15.625,22.125 -2.47925,4.70901 -3.35132,9.89398 -4.09375,15.09375 -0.81273,5.83079 -4.26071,10.72002 -8.53125,14.59375 -2.95503,3.23536 -6.02645,6.37324 -9.96875,8.40625 -4.78064,2.57439 -9.19219,5.9537 -14.53125,7.28125 -10.20554,3.82662 -21.27784,2.64843 -31.9375,3.46875 -24.67453,0.98527 -49.38416,1.1116 -74.0625,0.25 -12.434187,-0.39512 -24.744308,-2.22632 -37.09375,-3.59375 -4.17203,-0.50387 -8.497808,-1.94264 -10.625,-5.21875 -3.306753,-0.36887 -7.043649,-1.96404 -6.65625,-5.375 -4.27956,-3.3162 -3.784754,-9.09074 -4.375,-13.875 -1.11986,-5.03773 -1.298437,-10.42338 -4.34375,-14.8125 -1.828179,-3.47167 -4.812841,-6.9383 -4.8125,-10.96875 1.780177,-6.65073 5.373431,-14.07835 1.71875,-20.75 C 38.468308,840.81289 35.847866,835.07739 34,829.15625 33.894612,823.50601 31.539454,818.56255 28.40625,814 c -2.966256,-5.14261 -5.719574,-10.8398 -5.34375,-16.9375 -4.384076,-8.00306 -2.752286,-17.73724 -6.75,-25.875 0.822076,-8.91946 -0.09195,-18.47125 -5.125,-26.125 -3.8143133,-9.86633 -6.1192112,-20.4262 -12,-29.375 -3.1722033,-6.55672 -3.8660127,-13.94706 -4.15625,-21.125 -4.7985974,-7.25603 -8.082052,-15.3891 -10.78125,-23.625 0.256857,-7.41579 0.315587,-15.90338 -5.1875,-21.625 -3.337562,-8.27013 -10.36528,-14.39006 -13.84375,-22.59375 -2.795969,-4.45057 -6.939492,-8.21061 -8.25,-13.46875 -0.992486,-1.07561 -1.980294,-2.17718 -2.9375,-3.28125 -0.044,-0.0507 -0.0811,-0.10544 -0.125,-0.15625 -0.615254,-0.71209 -1.21829,-1.43005 -1.8125,-2.15625 -0.206291,-0.25213 -0.421684,-0.49609 -0.625,-0.75 -0.396124,-0.49462 -0.772324,-0.998 -1.15625,-1.5 -0.278168,-0.36372 -0.541401,-0.72592 -0.8125,-1.09375 -0.533623,-0.72403 -1.059485,-1.44638 -1.5625,-2.1875 -0.240466,-0.35407 -0.485938,-0.70415 -0.71875,-1.0625 -0.214275,-0.33003 -0.417645,-0.6663 -0.625,-1 -0.309055,-0.49724 -0.613351,-0.99388 -0.90625,-1.5 -5.469473,-2.87459 -10.404936,-6.55065 -15.8125,-9.34375 -0.655422,-0.22548 -1.366897,-0.46661 -2.09375,-0.6875 -0.142037,-0.0438 -0.293484,-0.0821 -0.4375,-0.125 -0.444871,-0.13006 -0.916089,-0.2593 -1.375,-0.375 -0.45744,-0.11704 -0.909374,-0.21831 -1.375,-0.3125 -1.240825,-0.251 -2.501158,-0.42523 -3.71875,-0.40625 -2.3735,0.037 -4.58895,0.74026 -6.21875,2.65625 -0.2744,0.3987 -0.50335,0.77896 -0.71875,1.15625 -4.1275,2.65819 -4.26405,8.42772 -7.21875,12.1875 -5.8095,7.03226 -11.55325,14.18262 -16.53125,21.84375 -2.7244,5.22442 -3.2077,11.24593 -3.5,17.03125 -6.464,9.13845 -0.41595,21.54031 -6.78125,30.75 -4.7964,8.55415 -12.17915,16.91837 -11.15625,27.40625 0.3033,9.26193 2.4147,19.01036 -1.5625,27.8125 -2.9844,11.30962 -8.6968,21.63095 -13.125,32.375 -2.9975,11.89151 -1.48975,24.27921 -3.28125,36.3125 -2.5458,10.52644 -8.6008,19.75741 -11.9375,30 -4.8041,10.33224 -2.84705,22.43772 -7.90625,32.6875 -3.2155,9.61609 1.00315,20.0458 -2.59375,29.625 -2.276,8.24087 -7.6168,15.66517 -7.8125,24.4375 -2.3976,9.65745 -11.3922,15.614 -15,24.6875 -3.1371,5.24923 -4.7361,11.62211 -9.25,15.875 -2.8867,3.45439 -4.8859,8.09397 -9.3125,9.875 0.4834,3.4138 -4.16635,4.64992 -2.96875,8.0625 -3.2784,3.46179 -8.64995,3.72944 -13.03125,5 -4.712,1.28277 -9.76715,2.41075 -13.78125,4.53125 -5.038,1.88473 -10.3942,1.47275 -15.5625,2.5 -6.442,1.30129 -13.062,0.50521 -19.5625,1.375 -4.6488,0.58112 -9.447,0.32105 -14,1.1875 -3.61136,0.8019 -6.72198,0.81146 -9.5625,0.9375 l 0,97.2812 c 68.67708,0 137.35412,0.01 206.03125,0 6.0834,0 12.1667,-3e-4 18.25,0 0.60417,1e-4 1.208331,0 1.8125,0 9.812534,8e-4 19.624948,-9e-4 29.4375,0 666.16803,0.058 1332.33295,0.048 1998.49995,0 6.0834,8e-4 12.1667,-5e-4 18.25,0 103.9797,0.01 207.9596,0.026 311.9376,0.031 l 0,-180.90625 c -2.4221,2.51998 -5.0077,4.84507 -8.1563,6.46875 -4.7806,2.57439 -9.1923,5.9537 -14.5313,7.28125 -10.2055,3.82662 -21.278,2.64843 -31.9374,3.46875 -24.6748,0.98527 -49.3841,1.1116 -74.0626,0.25 -12.434,-0.39512 -24.7443,-2.22632 -37.0937,-3.59375 -4.172,-0.50387 -8.4978,-1.94264 -10.625,-5.21875 -3.3068,-0.36887 -7.0437,-1.96404 -6.6563,-5.375 -4.2795,-3.3162 -3.7845,-9.09074 -4.375,-13.875 -1.1197,-5.03773 -1.2984,-10.42338 -4.3437,-14.8125 -1.8282,-3.47167 -4.8128,-6.9383 -4.8125,-10.96875 1.7802,-6.65073 5.3733,-14.07835 1.7188,-20.75 -1.3754,-6.09336 -3.9959,-11.82886 -5.8438,-17.75 -0.1054,-5.65024 -2.4605,-10.5937 -5.5938,-15.15625 -2.9663,-5.14261 -5.7195,-10.8398 -5.3437,-16.9375 -4.3841,-8.00306 -2.7523,-17.73724 -6.75,-25.875 0.8221,-8.91946 -0.092,-18.47125 -5.125,-26.125 -3.8143,-9.86633 -6.1192,-20.4262 -12,-29.375 -3.1722,-6.55672 -3.8657,-13.94706 -4.1563,-21.125 -4.7985,-7.25603 -8.082,-15.3891 -10.7812,-23.625 0.2569,-7.41579 0.3156,-15.90338 -5.1875,-21.625 -3.3376,-8.27013 -10.3658,-14.39006 -13.8437,-22.59375 -2.7962,-4.45057 -6.9396,-8.21061 -8.25,-13.46875 -4.2301,-4.58383 -8.2197,-9.3971 -11.2813,-14.6875 -5.4695,-2.87459 -10.4049,-6.55065 -15.8125,-9.34375 -2.6378,-0.90748 -5.9483,-1.95382 -9,-1.90625 -2.3735,0.037 -4.5889,0.74026 -6.2188,2.65625 -0.2744,0.3987 -0.5033,0.77896 -0.7187,1.15625 -4.1275,2.65819 -4.264,8.42772 -7.2187,12.1875 -5.8096,7.03226 -11.5533,14.18262 -16.5313,21.84375 -2.7244,5.22442 -3.2077,11.24593 -3.5,17.03125 -6.464,9.13845 -0.4159,21.54031 -6.7813,30.75 -4.7963,8.55415 -12.1791,16.91837 -11.1562,27.40625 0.3033,9.26193 2.4147,19.01036 -1.5625,27.8125 -2.9844,11.30962 -8.6968,21.63095 -13.125,32.375 -2.9975,11.89151 -1.4897,24.27921 -3.2813,36.3125 -2.5458,10.52644 -8.6007,19.75741 -11.9374,30 -4.8042,10.33224 -2.8471,22.43772 -7.9063,32.6875 -3.2155,9.61609 1.0032,20.0458 -2.5937,29.625 -2.2761,8.24087 -7.6169,15.66517 -7.8126,24.4375 -2.3976,9.65745 -11.3922,15.614 -15,24.6875 -3.137,5.24923 -4.7361,11.62211 -9.25,15.875 -2.8867,3.45439 -4.8858,8.09397 -9.3124,9.875 0.4834,3.4138 -4.1664,4.64992 -2.9688,8.0625 -3.2784,3.46179 -8.6499,3.72944 -13.0312,5 -4.712,1.28277 -9.7672,2.41075 -13.7813,4.53125 -5.038,1.88473 -10.3942,1.47275 -15.5625,2.5 -6.442,1.30129 -13.062,0.50521 -19.5625,1.375 -4.6488,0.58112 -9.447,0.32105 -14,1.1875 -7.1153,1.57994 -12.317,0.11165 -17.25,2.4375 -5.7687,1.16257 -11.61,1.92267 -17.2187,3.78125 -5.532,1.53982 -11.0165,3.32876 -16.8126,3.875 -10.555,2.14116 -21.2054,3.74815 -31.8124,5.56255 -13.403,3.6336 -27.432,3.0253 -41.1876,3.5 -11.3288,0.01 -22.7031,-0.8311 -33.7812,-3.2188 -5.1606,-0.7097 -7.6589,-6.19739 -13.2812,-6.46875 -4.9022,-1.44452 -11.4847,-1.99008 -13.4376,-7.625 -0.6648,-6.08302 -5.5586,-10.43245 -8.625,-15.4375 -4.6374,-6.76494 -9.7148,-14.0332 -9.8437,-22.5625 -1.8711,-11.20698 -10.4925,-19.49199 -14.5937,-29.75 -2.8406,-9.2777 -1.4023,-19.20304 -4.0626,-28.53125 -2.1811,-12.44428 -3.7413,-25.24844 -9.4062,-36.71875 -3.1959,-7.53448 -6.5179,-15.00841 -9.8125,-22.5 0.041,-12.59736 -8.2712,-23.765 -7.0625,-36.5 0.195,-9.84231 0.226,-20.08057 -4.0312,-29.1875 -3.0372,-10.72634 -2.7827,-22.17061 -6.5626,-32.71875 -2.1134,-10.91167 -1.7797,-22.78447 -8.125,-32.40625 -3.9421,-7.50716 -8.4133,-15.10514 -9.4062,-23.6875 -5.2193,-8.52349 -3.6954,-19.70924 -10.2188,-27.625 -3.7509,-6.97472 -0.3554,-16.07293 -5.8437,-22.375 -2.7983,-5.08695 -2.02,-11.98136 -6.875,-15.90625 -0.748,-6.01154 -2.9855,-11.11007 -4.9063,-16.53125 -1.817,-5.34757 -3.1478,-5.43416 -5.6874,-8.375 -2.961,-7.96003 -18.459,-9.21962 -22.25,-9.21875 z"
+ style="color:#000000;fill:#2b2d3a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#000000;fill-opacity:0.18037977;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 38.4375,841.84375 c -0.9838,0.73323 -1.9439,1.42913 -2.8437,2.03125 -11.6761,7.81259 -14.2877,10.64622 -26.4376,14.1875 -13.3294,3.88508 -29.2999,16.3506 -41.2812,19.40625 -11.9814,3.05567 -25.1411,6.78534 -37.2812,7.21875 -12.1401,0.43336 -15.541,-3.39865 -27.8438,-5.75 -12.3028,-2.35137 -28.124,-6.79509 -40.5938,-12.09375 -12.4696,-5.29869 -14.734,-13.40399 -27.375,-21.8125 -0.011,-0.008 -0.02,-0.0236 -0.031,-0.0312 -0.6881,4.99727 -1.5519,9.95125 -3.8125,14.53125 -2.4694,7.38486 -0.5488,15.25292 -1.1563,22.84375 10.7631,5.13527 18.4914,7.95403 29.7813,11.5 12.2575,3.84983 26.3917,5.33765 38.5937,7.09375 12.202,1.7561 18.6023,1.18304 30.75,0.9375 12.1477,-0.24555 32.2178,-1.15737 44.3126,-3.3125 12.0946,-2.15511 19.426,-5.55865 31.4687,-9.53125 11.6372,-3.8388 23.6332,-10.00857 35.25,-15.5625 -1.0165,-1.85315 -1.8127,-3.76947 -1.8125,-5.84375 1.7802,-6.65073 5.3733,-14.07835 1.7188,-20.75 -0.3874,-1.71616 -0.8665,-3.39097 -1.4063,-5.0625 z"
+ id="path4266" />
+ <path
+ id="path3997"
+ d="m 1081.2188,880.84375 c -0.4126,1.0286 -0.7965,2.04059 -1.0938,3 -1.3577,4.38184 -0.1224,9.8679 -0.2812,14.40625 -0.028,0.80727 -0.1144,1.58709 -0.2188,2.34375 9.6527,0.76452 19.9405,1.16348 27.3125,1.3125 8.7731,0.17733 14.5661,0.51328 21.6875,0.0312 -1.7916,-2.39719 -3.6928,-4.71993 -5.0625,-7.96875 -1.3447,-3.18956 -2.0268,-7.53745 -2.8437,-11.65625 -4.4768,1.452 -8.6273,2.62034 -15.5,2.375 -7.7815,-0.2778 -15.9675,-1.89947 -24,-3.84375 z"
+ style="color:#000000;fill:#000000;fill-opacity:0.18037977;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#c9c9c9;fill-opacity:0.05415165;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 3.3438,723.40625 c -1.6308,0.95138 -3.464,1.84308 -5.5938,2.65625 -12.296,4.69465 -27.8998,8.63542 -40.0312,10.71875 -12.1315,2.08331 -15.4979,5.4777 -27.4688,5.09375 -11.9708,-0.384 -24.9043,-3.69891 -36.7188,-6.40625 -7.3492,-1.68412 -16.2393,-6.60351 -25.0624,-10.90625 -0.3336,1.21222 -0.7474,2.41216 -1.2813,3.59375 -1.688,6.3968 -4.2613,12.48022 -6.9687,18.5 10.1476,3.12494 17.1575,5.82157 28.0312,7.5625 11.9261,1.90944 31.709,2.6887 43.6875,2.90625 11.9785,0.21755 18.2806,0.71218 30.3125,-0.84375 12.0321,-1.55591 25.9759,-2.83903 38.0625,-6.25 4.3266,-1.221 8.1129,-2.35065 11.75,-3.53125 -0.2767,-0.47997 -0.5683,-0.97106 -0.875,-1.4375 -2.7617,-7.14363 -4.7344,-14.66022 -7.8437,-21.65625 z"
+ id="path4268" />
+ <path
+ id="path4004"
+ d="m 2086.4375,841.84375 c -0.9838,0.73323 -1.9439,1.42913 -2.8437,2.03125 -11.6761,7.81259 -14.2877,10.64622 -26.4376,14.1875 -13.3294,3.88508 -29.2999,16.3506 -41.2812,19.40625 -11.9814,3.05567 -25.1411,6.78534 -37.2812,7.21875 -12.1401,0.43336 -15.541,-3.39865 -27.8438,-5.75 -12.3028,-2.35137 -28.124,-6.79509 -40.5938,-12.09375 -12.4696,-5.29869 -14.734,-13.40399 -27.375,-21.8125 -0.011,-0.008 -0.02,-0.0236 -0.031,-0.0312 -0.6881,4.99727 -1.5519,9.95125 -3.8125,14.53125 -2.4694,7.38486 -0.5488,15.25292 -1.1563,22.84375 10.7631,5.13527 18.4914,7.95403 29.7813,11.5 12.2575,3.84983 26.3917,5.33765 38.5937,7.09375 12.202,1.7561 18.6023,1.18304 30.75,0.9375 12.1477,-0.24555 32.2178,-1.15737 44.3126,-3.3125 12.0946,-2.15511 19.426,-5.55865 31.4687,-9.53125 11.6372,-3.8388 23.6332,-10.00857 35.25,-15.5625 -1.0165,-1.85315 -1.8127,-3.76947 -1.8125,-5.84375 1.7802,-6.65073 5.3733,-14.07835 1.7188,-20.75 -0.3874,-1.71616 -0.8665,-3.39097 -1.4063,-5.0625 z"
+ style="color:#000000;fill:#000000;fill-opacity:0.18037977;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4015"
+ d="m 2051.3438,723.40625 c -1.6308,0.95138 -3.464,1.84308 -5.5938,2.65625 -12.296,4.69465 -27.8998,8.63542 -40.0312,10.71875 -12.1315,2.08331 -15.4979,5.4777 -27.4688,5.09375 -11.9708,-0.384 -24.9043,-3.69891 -36.7188,-6.40625 -7.3492,-1.68412 -16.2393,-6.60351 -25.0624,-10.90625 -0.3336,1.21222 -0.7474,2.41216 -1.2813,3.59375 -1.688,6.3968 -4.2613,12.48022 -6.9687,18.5 10.1476,3.12494 17.1575,5.82157 28.0312,7.5625 11.9261,1.90944 31.709,2.6887 43.6875,2.90625 11.9785,0.21755 18.2806,0.71218 30.3125,-0.84375 12.0321,-1.55591 25.9759,-2.83903 38.0625,-6.25 4.3266,-1.221 8.1129,-2.35065 11.75,-3.53125 -0.2767,-0.47997 -0.5683,-0.97106 -0.875,-1.4375 -2.7617,-7.14363 -4.7344,-14.66022 -7.8437,-21.65625 z"
+ style="color:#000000;fill:#c9c9c9;fill-opacity:0.05415165;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3978"
+ d="m 392.6875,729.8125 c -5.14838,2.49552 -10.3354,11.08372 -14.7298,12.09072 -11.81441,2.70734 -19.69225,5.56265 -31.6631,5.94665 -11.97092,0.38395 -19.04531,-3.24025 -31.17684,-5.32356 -2.36029,-0.40533 -6.01351,-6.64534 -8.58651,-7.18256 -0.76549,3.29734 -1.94048,6.44507 -4.1875,9.1875 -2.06918,3.16941 -2.90344,6.76975 -3.53125,10.4375 3.65019,0.45688 7.92073,2.93783 11.34566,3.38072 12.03197,1.55593 22.47041,4.96795 34.44894,4.7504 11.97846,-0.21755 26.70572,-2.37563 38.63185,-4.28507 4.11276,-0.65848 7.88015,-6.07287 11.26105,-6.97105 -0.84088,-7.09597 -2.96026,-14.12701 -1.59375,-21.28125 -0.0785,-0.24696 -0.14085,-0.50212 -0.21875,-0.75 z"
+ style="color:#000000;fill:#c9c9c9;fill-opacity:0.05415165;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssscccsssccc" />
+ <path
+ id="path3918"
+ d="m 258.90625,856.90625 c -4.16652,4.59934 -8.14574,9.36757 -9.75,15.5 -1.35134,2.56669 -2.2081,5.28768 -2.84375,8.0625 6.92929,3.26633 13.89258,6.34198 20.71875,8.59375 12.04272,3.9726 19.37418,7.37614 31.46875,9.53125 12.09465,2.15513 32.1649,3.06695 44.3125,3.3125 12.14777,0.24554 18.51677,0.8186 30.71875,-0.9375 12.20205,-1.7561 26.36755,-3.24392 38.625,-7.09375 1.47971,-0.46475 2.8795,-0.92912 4.25,-1.375 -2.37635,-7.97622 -8.78402,-14.41052 -9.96875,-22.875 -0.13695,-0.45702 -0.26717,-0.91752 -0.40625,-1.375 -11.83696,4.66414 -25.88009,8.55028 -37.0625,10.6875 -12.3028,2.35135 -15.73501,6.18336 -27.875,5.75 -12.14008,-0.43341 -25.26864,-4.16308 -37.25,-7.21875 -11.98136,-3.05565 -27.95178,-15.52117 -41.28125,-19.40625 -1.32709,-0.3868 -2.53223,-0.77943 -3.65625,-1.15625 z"
+ style="color:#000000;fill:#000000;fill-opacity:0.18037977;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3937"
+ d="m 760.3125,740.28125 c -0.94915,0.99729 -1.53892,2.43658 -2.09375,4.71875 -1.86451,2.47982 -2.9553,3.28025 -3.59375,7.5 -0.006,1.35847 -0.21852,2.62568 -0.5625,3.84375 9.75403,0.43393 15.28011,2.97434 22.6448,3.07928 9.73732,0.13875 20.67463,-1.9057 28.2927,-2.14178 -1.60497,-2.54313 -3.70206,-4.69974 -6.625,-6 -4.62061,-2.05447 -5.69854,-7.75573 -10.125,-9.75 -2.74431,0.28548 -9.93548,2.7357 -13.6677,2.64178 -5.99301,-0.15083 -9.77852,-2.41906 -14.2698,-3.89178 z"
+ style="color:#000000;fill:#c9c9c9;fill-opacity:0.05415165;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccscccsc" />
+ <path
+ id="path3887"
+ d="m 867,861.90625 c -13.90297,5.30107 -27.96476,15.49058 -39.69377,17.83743 -15.2714,3.05567 -31.05133,8.73528 -46.52503,9.16869 -15.4736,0.43336 -21.76884,-1.44871 -37.44994,-3.80006 -11.89409,-1.7835 -26.03606,-10.96327 -39.26876,-14.61231 -0.34123,3.77616 -0.0278,7.74579 -3.3125,10.21875 -5.53506,2.65807 -4.50848,9.97577 -8.0625,14.0625 -0.0203,0.0116 -0.0423,0.0195 -0.0625,0.0312 14.64,3.17067 31.93212,6.82439 46.16247,8.43118 15.5526,1.7561 24.32273,3.13298 39.80623,2.88744 15.4833,-0.24555 41.05295,-5.38224 56.46875,-7.53737 15.4157,-2.15511 23.15045,-5.55865 38.50005,-9.53125 3.00261,-0.77709 6.0287,-1.68011 9.0625,-2.625 -0.16287,-0.36948 -0.3253,-0.74452 -0.46875,-1.125 -5.70989,-5.54227 -9.8769,-12.5796 -12.34375,-20.125 -1.1624,-0.96601 -2.07328,-2.07178 -2.8125,-3.28125 z"
+ style="color:#000000;fill:#000000;fill-opacity:0.18037977;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssccccssssccccc" />
+ <path
+ id="path3897"
+ d="m 1496.2812,728.40625 c -13.9591,3.64034 -21.0339,10.55759 -33.8299,12.28164 -15.4629,2.08331 -19.7419,5.4777 -35,5.09375 -15.2581,-0.384 -31.7852,-3.69891 -46.8438,-6.40625 -5.171,-0.92967 -19.683,-6.74827 -25.7013,-9.00039 -2.6623,6.81892 -4.6605,13.88394 -7.2187,20.75 5.3493,1.20707 19.1048,6.39653 25.7416,7.2302 15.2011,1.90944 40.4198,2.6887 55.6876,2.90625 15.2678,0.21755 23.7486,0.48237 39.0846,-1.07356 13.0323,-1.3222 19.0955,-6.37495 32.7049,-8.78164 -0.8072,-5.68718 -1.6783,-11.34896 -3.625,-16.78125 -0.3964,-2.04665 -0.7155,-4.12567 -1,-6.21875 z"
+ style="color:#000000;fill:#c9c9c9;fill-opacity:0.05415165;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssccsssccc" />
+ <path
+ id="path3883"
+ d="m 1310.7812,854.0625 c -1.5131,6.65957 -1.2876,13.81026 -4.9374,19.8125 -1.6471,4.15943 -3.6952,8.07708 -6.0313,11.8125 9.4386,3.21708 17.7733,5.47496 28.7813,8.1875 15.6232,3.84983 33.666,5.33765 49.2187,7.09375 15.5526,1.7561 23.6727,1.18304 39.1563,0.9375 15.4833,-0.24555 41.0529,-1.15737 56.4687,-3.3125 15.4157,-2.15511 24.7754,-5.55865 40.125,-9.53125 6.2785,-1.62492 12.6554,-3.66571 19.0313,-5.90625 -1.5703,-9.10949 -3.4279,-18.19076 -7.375,-26.59375 -1.7848,0.49237 -3.727,0.9945 -5.9376,1.5 -16.9896,3.88508 -37.3535,16.3506 -52.625,19.40625 -15.2714,3.05567 -32.0262,6.78534 -47.5,7.21875 -15.4736,0.43336 -19.8188,-3.39865 -35.5,-5.75 -15.6811,-2.35137 -35.8561,-6.79509 -51.75,-12.09375 -10.0343,-3.34524 -14.8642,-7.82512 -21.125,-12.78125 z"
+ style="color:#000000;fill:#000000;fill-opacity:0.18037977;fill-rule:nonzero;stroke:#444759;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m -54.09375,750.3125 c 0.234641,0.38958 0.518459,0.83663 0.59375,0.9375 -0.03137,-0.0884 -0.154463,-0.3812 -0.46875,-0.96875 -0.05436,-0.008 -0.08246,0.0235 -0.125,0.0312 z"
+ id="path4374"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 1766.4375,1049.3125 c 1.6204,-0.2739 0.9605,-0.3176 0,0 z"
+ id="path4370"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m -80.84375,718.46875 -0.09375,0.1875 z"
+ id="path4366"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1491.0625,725 c -0.1465,0.68738 -0.3758,1.33337 -0.6563,1.9375 1.001,-0.33913 0.6675,-0.96698 0.6563,-1.9375 z"
+ id="path4364"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m -46.84375,765.375 c -0.06003,0.93045 -0.101259,1.56952 0,0 z"
+ id="path4356"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 2014.9062,809.28125 c -0.3243,1.55829 0.23,1.27585 0.094,0 z"
+ id="path4350"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m -142.78125,845.875 c -0.29127,0.14427 -0.4054,0.39047 -0.46875,0.65625 0.16101,-0.21659 0.32648,-0.43796 0.46875,-0.65625 z"
+ id="path4346"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m -143.25,846.5625 c -1.34588,1.80463 -3.04208,3.29656 -0.21875,0.75 0.13542,-0.22443 0.1603,-0.4927 0.21875,-0.75 z"
+ id="path4344"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 782.5625,846.6562 c -0.87581,1.28549 -1.75511,5.39336 -0.59375,1.71875 l 0.25,-0.8125 z"
+ id="path4342"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 798.28125,866.2187 c 0.23959,0.25847 0.47618,0.52553 0.71875,0.78125 2.5025,2.62784 0.91936,0.64036 -0.71875,-0.78125 z"
+ id="path4340"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 803.03125,872.56245 c 0.80485,2.65637 1.38736,3.05523 0,0 z"
+ id="path4338"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 767.125,881.1562 c -0.0254,0.0632 -0.19776,0.71245 -0.4375,1.78125 0.34134,-1.32152 0.4629,-1.84443 0.4375,-1.78125 z"
+ id="path4334"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 2027.7188,889.31245 c 0.6806,1.96033 4.2061,9.16286 1.9062,3.75 -0.716,-1.03745 -0.9072,-3.12562 -1.9062,-3.75 z"
+ id="path4332"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 762.21875,893.21875 c -1.61029,1.66512 -2.51064,3.37799 -0.5,0.6875 z"
+ id="path4328"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 308.59375,894.5625 c -1.07937,2.30041 -0.79357,3.33019 -0.0625,0.25 z"
+ id="path4326"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 2030.3125,895 c -0.2574,0.0178 -0.2517,1.306 0.4687,1.03125 -0.1925,-0.77718 -0.3517,-1.03932 -0.4687,-1.03125 z"
+ id="path4324"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m -16.875,900.03125 c 0.904385,2.9954 1.280811,3.07099 0,0 z"
+ id="path4322"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 356.6875,914.15625 c 0.21425,0.44943 0.15528,0.32574 0,0 z"
+ id="path4320"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4525"
+ d="m 1422.8438,578.0625 c -4.57,0.37473 -8.2175,5.4287 -13.3126,10.375 -2.807,4.86128 -5.5725,19.08948 -10.4062,22.40625 -3.986,4.3034 -5.5501,9.81753 -9.2812,14.40625 -3.1278,5.77767 -5.5426,11.9348 -8.625,17.71875 -2.0328,6.93474 1.6422,15.88956 -1.9376,22.53125 l 1.4688,0.90625 c -0.7094,9.88949 -8.0593,15.35962 -8.9062,25.21875 -5.032,9.56068 -12.558,19.27351 -13.1876,30.4375 -6.0569,11.33686 -8.3145,24.16955 -13.7187,35.78125 -3.2417,9.2532 -3.2788,19.48504 -8.0625,28.21875 -3.3928,9.46966 -3.2124,19.68014 -4.5625,29.53125 -7.3632,11.12623 -14.0685,22.68756 -20.3437,34.4375 -2.9837,7.70241 -1.7247,16.60719 -6.125,23.84375 -6.4973,16.40792 -19.425,28.89981 -30.3438,42.34375 -4.5174,7.09624 -11.8464,11.51011 -18.6875,16.0625 -6.9476,3.24781 -14.1669,5.81428 -21.1563,8.96875 -7.19,0.27391 -14.3543,1.14105 -21.4062,2.5 -6.7374,1.01921 -13.4323,2.25541 -20.25,2.625 -10.5582,1.39384 -21.1491,2.60812 -31.7812,3.25 -3.0164,-0.0147 -16.8924,2.24977 -17.875,1.3125 -2.8607,-11.02137 -5.5016,-17.0393 -8.2188,-26.59375 -2.0133,-6.6417 -2.6999,-8.72155 -3.8438,-15.65625 -1.7336,-5.7841 -7.9596,-12.87855 -9.7187,-18.65625 -1.6115,-4.5887 -3.1335,-16.43337 -5.7813,-20.5 -2.3396,-3.59414 -2.8795,-10.80594 -5.5624,-15.15625 -6.2482,-10.13033 -4.1979,-8.71747 -9.375,-7.3125 -11.0299,2.47193 -6.8914,2.85095 -9.3126,8.4375 -1.7364,3.68813 -5.173,8.14475 -5.5937,14.15625 -2.7306,3.9249 -5.6137,11.00685 -7.1875,16.09375 -3.0869,6.3022 0.2972,14.99415 -1.8125,21.96875 -3.6689,7.9158 0.4355,19.6015 -2.5,28.125 -2.2049,9.78351 -3.2955,14.86244 -5.9063,23.21875 -1.6756,0.14949 -10.012,1.09049 -11.6874,1.28125 -12.2622,1.78753 -24.6985,1.60664 -37,3.03125 -10.1305,0.45886 -20.2905,0.94686 -30.43755,0.625 -9.75753,-0.14214 -19.18976,-2.93728 -28.25,-6.34375 -6.24427,-2.09836 -11.4945,-6.33838 -17.5625,-8.84375 -4.49785,-3.02242 -6.41529,-8.8087 -11.4375,-11.1875 -5.02357,-5.8332 -11.51406,-10.02888 -17.375,-14.90625 -4.49939,-6.32261 -9.84726,-10.00492 -15.09375,-14.4375 -8.02897,-7.33353 -15.35234,-17.2522 -18.4375,-21.9375 -6.86075,-11.6118 -7.07919,-9.20063 -12.65625,-21.59375 -4.21156,-7.34537 -12.76814,-23.53305 -19.15625,-33.09375 -9.64459,-14.15735 -10.06725,-13.62165 -13.5,-26.5625 -4.54438,-6.6417 -6.48194,-10.65905 -9.0625,-17.59375 -3.91318,-5.7841 -9.97309,-9.15354 -14.59375,-14.6875 -3.80736,-5.21298 -8.12027,-15.69538 -9.03125,-16.8125 -5.39357,-3.9739 -7.43312,-9.96455 -13.5625,-13.21875 -6.28635,-0.84793 -14.81732,-6.51634 -19.4375,-5.375 -7.04064,0.7472 -13.58997,2.4487 -13.65625,7.96875 -3.5362,3.22739 -3.6129,6.3635 -4.5625,12.375 -3.64486,7.09355 -8.24111,14.23192 -7.40625,21.59375 -5.26132,7.27717 -6.08177,12.61915 -10.84375,19.59375 -2.84208,2.71668 -1.77877,8.81251 -3.375,12.5625 -3.05484,7.17668 -7.8355,12.71424 -12.1875,18.3125 -1.26051,8.5824 -4.30904,19.16573 -9.31413,26.67303 -5.47662,6.54152 -4.43801,14.52911 -7.65462,22.10822 -1.51459,3.56875 -5.89093,4.38189 -6.75,7.875 -2.58556,5.68345 -5.36782,11.10809 -10,14.78125 -3.96492,3.14405 -7.12047,6.32896 -11.65625,9.4375 -4.89346,8.24532 -13.80723,2.76806 -13.875,10.84375 -3.6013,0.99218 -7.41196,1.46339 -10.875,2.875 -6.86264,1.47552 -13.26577,4.85584 -20.375,5.15625 -10.52935,1.11885 -20.97138,2.92412 -31.4375,4.46875 -24.52214,2.45166 -49.19318,2.45978 -73.8125,2.75 -13.56824,0.0226 -27.17565,0.0498 -40.71875,0.5 -5.20758,0.60307 -10.43959,0.76828 -15.625,1.59375 -6.85372,0.36811 -14.04807,-0.11045 -20.5625,-2.4375 l 0.125,-0.21875 c -3.22687,-1.72037 -8.04292,-4.86672 -12.71875,-9.46875 -0.90736,-1.13217 -1.78298,-2.28515 -2.65625,-3.4375 -1.52224,-2.40225 -3.54781,-4.4948 -5.375,-6.625 4.77012,-2.17245 1.35535,-1.47403 -1.1875,-2.125 -4.36781,-8.22329 -5.85327,-16.28674 -8,-21.0625 -0.0632,-0.16377 -0.12289,-0.33607 -0.1875,-0.5 -0.86231,-3.14606 -2.39635,-6.04261 -4,-8.90625 -2.03519,-5.2154 -5.31022,-9.48497 -6.125,-14.46875 -2.2474,-7.49963 -4.52091,-12.39747 -4.75,-20.28125 -0.35826,-8.14899 -0.19066,-16.96393 0.34375,-24.0625 0.74783,-8.1142 0.40771,-12.75737 -1.0625,-19.625 -0.92182,-6.84579 -3.18997,-12.09887 -2.125,-18.09375 -0.0656,-4.1411 -1.14143,-8.16682 -2.21875,-12.1875 -1.89746,-7.90778 -2.79509,-12.00533 -1.8125,-17.59375 0.12144,-3.48997 -0.39642,-6.95198 -0.96875,-10.40625 -1.10268,-5.84708 -1.60013,-11.74603 -0.9375,-16.8125 -2.9552,-10.20524 -6.36246,-19.26439 -4.4375,-29 0.0571,-3.36881 -3.09808,-9.63742 -4.28125,-13.78125 -0.68723,-4.7069 -1.37635,-9.13255 0.0625,-13.40625 -1.04048,-3.90569 -2.4882,-9.14788 -3.34375,-14.28125 -0.049,-0.99302 -0.0379,-1.98515 0.125,-3 -0.20368,-0.32981 -0.38029,-0.66183 -0.53125,-1 -0.0515,-5.73509 0.29117,-10.93875 -0.875,-15.8125 -1.90871,-4.55812 -5.62914,-8.70086 -9.53125,-9.875 -1.42643,-4.94134 -0.16753,-6.05665 -5.0625,-6.78125 -1.25971,-0.35008 -4.03043,0.41266 -6.875,1.5625 -4.26528,1.71615 -7.69384,3.71814 -9.71875,7.46875 -1.98441,3.04631 -3.44391,6.51966 -4.96875,9.28125 -0.97835,3.05769 -1.90508,6.15166 -3.03125,9.1875 -0.0181,0.0436 -0.0442,0.0813 -0.0625,0.125 -0.86722,2.07378 -1.85882,4.24713 -3.1875,6.71875 -0.39484,3.37159 -0.94467,6.96394 -1.5625,9.84375 -1.79265,7.66923 -3.89822,7.90517 -5.96875,15.03125 -0.7524,1.6931 -3.36474,8.79128 -3.6875,9.6875 -9.18133,13.13122 -9.51879,14.98893 -16.3125,27.875 -1.41411,3.87512 -1.85498,8.10874 -2.59375,12.21875 -1.02381,3.69118 -2.29202,7.29501 -3.90625,10.8125 -4.35017,9.62381 -5.82274,19.33827 -9.65625,28.21875 -5.34521,12.19797 -8.19295,21.26739 -11.75,26.625 -2.27362,10.39774 -5.80296,18.0556 -11.5,26.1875 -1.34184,9.48275 -1.20857,16.23505 -5.5625,24.96875 -4.92181,8.96396 -12.19334,14.67684 -15.53125,22.96875 -2.9888,7.87572 -3.23873,15.34219 -6.46875,22 -0.0258,0.0731 -0.0659,0.14551 -0.0937,0.21875 -5.15582,9.00379 -15.27336,14.0475 -23.40625,20.125 -2.27195,1.26172 -4.60165,2.39605 -7.15625,3.03125 -10.20554,3.82662 -21.27784,2.64843 -31.9375,3.46875 -24.67453,0.98527 -49.38416,1.1116 -74.0625,0.25 -8.779512,-0.27899 -17.505429,-1.27038 -26.21875,-2.3125 -8.907587,-1.60812 -18.036501,-3.54522 -21.34375,-6.9375 -3.905614,-0.70433 -5.850043,-3.09118 -6.8125,-4.9375 -0.04928,-0.0945 -0.112074,-0.18985 -0.15625,-0.28125 -1.488045,-6.25292 -3.154238,-11.84223 -4.84375,-16.875 -0.699337,-4.02233 -1.32875,-8.08661 -3.71875,-11.53125 -0.494733,-0.93949 -1.074208,-1.89373 -1.65625,-2.84375 -1.152945,-2.81498 -2.223862,-5.33091 -3.125,-7.5 -0.0031,-0.0413 0.0025,-0.0836 0,-0.125 0.484762,-1.9855 1.017061,-3.78036 1.5,-5.59375 0.0026,-0.01 -0.0026,-0.0217 0,-0.0312 1.357931,-4.44662 2.517847,-9.03933 1.125,-13.40625 -0.001,-0.01 10e-4,-0.0213 0,-0.0312 -0.05969,-0.56785 -0.13248,-1.14283 -0.21875,-1.75 -0.3761,-3.24731 1.2208,-6.9989 -6.5,-18.125 -0.01877,-0.13065 -0.06688,-0.29298 -0.09375,-0.4375 -0.168867,-4.57819 -1.808406,-8.7051 -4.125,-12.53125 -2.283249,-6.1661 -4.942642,-13.24196 -6.5625,-19.1875 -2.1835,-8.01427 -5.05405,-21.40233 -6.78125,-26 0.95875,-9.3083 -1.81955,-16.30955 -5.21875,-25.5625 -3.2736345,-9.83167 -4.1666442,-13.32352 -6.09375,-18.34375 -0.040889,-0.10652 -0.083801,-0.23584 -0.125,-0.34375 -0.289142,-0.74481 -0.5888625,-1.53239 -0.9375,-2.375 -1.486825,-2.51278 -2.7542438,-4.90265 -3.8125,-7.25 -0.26456602,-0.58684 -0.50958269,-1.16598 -0.75,-1.75 C -3.0820176,709.01343 -4.2929375,702.6715 -4.7812,694.40635 -5.1108625,693.93654 -5.4410823,693.47316 -5.75,693 c -0.3089177,-0.47316 -0.5849753,-0.961 -0.875,-1.4375 -4.060346,-6.67095 -6.369025,-13.65799 -9.375,-20.8125 0.538594,-4.57617 0.309109,-8.76495 -0.75,-12.625 -0.11768,-0.42889 -0.236354,-0.8604 -0.375,-1.28125 -0.83187,-2.52512 -2.038312,-4.90044 -3.65625,-7.15625 -3.2321,-5.7841 -10.3455,-16.87855 -13.625,-22.65625 -6.6939,-13.38144 -6.5964,-11.12321 -8.5625,-13.96875 1.4269,1.32583 -9.40775,-12.08895 -11.59375,-14.96875 -0.488127,-0.15729 -0.974391,-0.3336 -1.46875,-0.53125 -0.296075,-0.11838 -0.608173,-0.2441 -0.90625,-0.375 -0.166837,-0.0732 -0.332589,-0.17325 -0.5,-0.25 -0.569754,-0.26164 -1.143015,-0.5162 -1.71875,-0.8125 -0.217604,-0.11179 -0.43792,-0.22802 -0.65625,-0.34375 -0.506272,-0.26877 -1.021603,-0.55858 -1.53125,-0.84375 -0.75878,-0.42397 -1.517284,-0.87118 -2.28125,-1.3125 -0.206007,-0.11921 -0.418737,-0.22431 -0.625,-0.34375 -1.334098,-0.77117 -2.663233,-1.53814 -4,-2.25 -0.315608,-0.16838 -0.622243,-0.33904 -0.9375,-0.5 -0.01255,-0.006 -0.0187,-0.0249 -0.03125,-0.0312 -0.700846,-0.35711 -1.427422,-0.69244 -2.125,-1 -0.104173,-0.0459 -0.208426,-0.0804 -0.3125,-0.125 -0.818801,-0.35014 -1.626456,-0.65368 -2.4375,-0.90625 -1.614085,-0.5026 -3.218854,-0.80215 -4.78125,-0.75 -0.522841,0.0175 -1.047469,0.06 -1.5625,0.15625 -5.3365,2.9024 -9.45965,8.33228 -12.84375,15.15625 -16.4814,19.00892 -17.9306,24.22857 -20.8125,40.375 -2.3586,9.06482 -2.47535,17.11979 -4.15625,26.5625 -5.5223,8.3526 -9.14735,17.46145 -13.28125,24.96875 0.4706,10.65582 1.49765,21.8384 -0.71875,32.75 -3.9634,10.5482 -10.97185,24.27355 -14.15625,35 -1.3616,10.71542 -1.5029,20.17408 -2.5625,31.625 1.2673,12.735 -12.88665,22.87135 -12.84375,35.46875 -3.4545,7.4917 -3.49275,20.5906 -6.84375,28.125 -1.3442,12.50441 -1.44775,25.4087 -5.34375,38.3125 -2.789,9.3282 -4.5215,13.50357 -7.5,22.78125 -4.3006,10.25806 -15.163,15.48049 -17.125,26.6875 -3.0076,7.72497 -8.6997,11.07865 -13.5625,17.84375 -3.2151,5.005 -3.39665,2.667 -4.09375,8.75 -0.2202,0.45997 -6.6125,2.96791 -6.8125,3.40625 -1.9975,0.50604 -4.0608,0.86203 -5.9375,1.40625 -4.712,1.28277 -9.76705,2.41075 -13.78125,4.53125 -5.038,1.88473 -10.3942,1.47275 -15.5625,2.5 -6.442,1.30129 -13.0619,0.50521 -19.5625,1.375 -4.6487,0.58112 -9.4469,0.32105 -14,1.1875 -3.65159,0.81084 -6.79028,0.80748 -9.65625,0.9375 l 0,21.56245 c 10.84964,3.9751 23.65091,9.9761 27.53125,9.25 11.4447,-2.1416 -25.49045,-13.0188 8.40625,-16.5313 7.693,-0.7971 15.7506,-1.1539 26.875,2 9.7412,2.6419 21.55525,4.6385 16.90625,-11.53115 3.9676,2.38768 12.6516,7.02576 12.875,7.03125 2.0819,-0.18293 -6.6688,-8.74789 -6.0625,-9.28125 2.877,-1.95995 10.58615,-5.32261 12.34375,-6.5 9.2419,-6.19031 0.7198,-1.08307 19.375,-2.6875 0.4648,-3.0777 -7.4912,-7.02505 -7.625,-11.59375 -0.073,-5.00759 24.81865,2.37598 27.15625,-2.25 1.9144,-1.32162 -16.42395,-9.4134 -17.53125,-10.4375 -0.1286,-6.28585 6.80495,-3.59238 2.40625,-5 4.7395,0.43221 11.178,5.17178 16.0625,1.90625 -2.5893,-3.35394 -8.8077,-5.0727 -13,-6.46875 -0.584,-3.26357 -0.6367,-6.38275 3.3125,-8.4375 5.3513,4.78882 33.20245,14.00091 27.21875,8.6875 -4.6694,-4.14648 -12.4616,-7.33825 -19.5625,-9.9375 -6.522,-2.38735 -1.21615,-10.6676 0.46875,-12.3125 2.1935,-2.1412 32.30265,13.46526 34.34375,10.59375 9.0961,-9.34797 -10.20355,-13.4326 -11.78125,-15.4375 -3.0598,-3.88798 -17.11485,-5.9101 -15.40625,-8.5 -0.9258,-4.7673 -6.91635,-5.65805 -3.53125,-8.34375 3.1904,-0.981 19.57365,6.12545 26.71875,3.90625 0.9106,-2.1264 -13.2985,-6.30075 -18.6875,-10.21875 -5.3831,-3.9136 -7.74115,-8.3515 -7.65625,-9 0.288,-1.8614 3.5608,-0.4774 1.625,-8 1.6092,0.3427 6.55225,1.1061 9.21875,-0.25 -2.8248,-0.044 -10.1334,-4.9947 -9.625,-6.0625 3.5526,-11.27574 16.9695,3.00419 21.0625,0.5 0.5815,-1.0273 -13.57215,-6.05525 -18.09375,-7.40625 -3.6176,-1.0808 -6.75685,-5.07915 -7.03125,-7.03125 -1.4257,-3.711 35.837,10.404 43.4375,10 4.6669,-3.74874 -17.16135,-7.86205 -22.09375,-13.53125 -4.069,-3.58406 -12.1772,-7.38455 -9.25,-12.125 13.5342,-21.91787 25.5332,-5.89346 26.5625,-7.3125 -6.9173,-3.9646 -20.9573,-11.9635 -16.0625,-17.84375 3.5233,-3.0301 3.2683,-3.8686 6.4375,-7.8125 -1.7814,-3.9252 -6.9641,0.40515 -5.6875,-4.40625 6.5317,-0.116 2.363,-2.4573 5.8125,-3.6875 2.4185,0.0214 -3.16805,-1.67325 -3.65625,-1.65625 -2.1462,-5.47095 -3.3827,-11.7673 3.25,-10.125 1.4032,0.3475 10.5271,3.4466 11.25,2.25 0.5968,-0.9881 -12.845,-9.13975 -11,-14.90625 5.3888,-0.9127 28.7754,13.9348 34.6875,6.96875 -0.1622,-3.7385 -33.01005,-17.01875 -30.28125,-16.96875 -0.3697,-2.35773 2.2464,-11.06377 5.8125,-10.53125 6.7676,1.01058 15.40715,11.65872 15.46875,8.09375 -2.7653,-2.33745 -19.25065,-10.72205 -21.59375,-13.03125 1.349,0.68637 21.23315,10.67113 27.53125,12.46875 0.9835,-0.0135 -2.00395,-9.72 -5.84375,-12.125 -7.4203,-4.6478 -12.872,-8.767 -14.875,-8.75 0.1949,-4.01379 3.12835,-5.76265 6.65625,-9.125 10.0556,3.25755 37.95895,6.7125 38.03125,6.8125 -1.7865,-6.5868 -41.29925,-12.12895 -39.96875,-17.71875 3.6702,0.9767 15.3234,2.2427 15.4375,1.3125 0.1415,-1.1524 -7.8352,-2.97495 -11.3125,-4.96875 -2.5028,-1.4349 -4.2102,-4.13755 -4.25,-4.78125 0.3622,-0.0398 7.4735,0.56625 8.75,-0.65625 -1.4332,-0.0612 -8.27005,-2.31325 -9.21875,-2.84375 -3.1169,-0.0135 6.6013,-1.56565 9.625,-1.59375 2.8094,-2.7269 -17.8319,-9.7032 -14.6875,-13.0625 1.5895,-1.2142 23.73655,5.6594 26.71875,4.3125 0,-1.2238 -8.05665,-3.65095 -14.09375,-7.65625 -6.0314,-4.0019 -1.1681,-4.3442 -0.25,-6.75 0.763,-1.9994 9.5771,0.2003 8.875,-1.75 -0.6188,-1.851 -8.28925,-4.2208 -10.59375,-8.3125 -1.5035,-2.6657 3.67175,-6.0933 3.09375,-7.125 0.1053,-2.5878 12.384,2.679 9.875,0.75 2.3493,-2.1718 -7.979,-4.3655 -9.9375,-8.0625 1.9509,-1.0798 12.0307,-1.13765 12.875,-1.65625 2.4941,-0.0281 13.33555,0.94515 14.96875,1.28125 0.6659,-2.0673 -25.4036,-5.55165 -23.5625,-5.59375 0.4123,-0.0782 4.19755,-6.6134 2.71875,-6.6875 -1.523,-2.339 11.68615,-1.97867 12.65625,-1.71875 4.8968,-3.71053 -11.69355,-5.1624 -11.71875,-8.03125 0.2257,-3.7477 -0.9211,-1.74735 -0.25,-3.53125 1.889,-0.679 4.58385,0.32055 4.96875,0.65625 10.6812,-0.9761 23.0994,-1.69443 10.1875,-4.71875 8.0215,-1.9848 -8.4984,-5.66015 -11.125,-6.65625 -0.816,-0.359 6.44405,-0.6466 10.09375,-0.8125 3.6495,-0.166 -8.0357,-2.55475 -5.125,-2.65625 2.1479,-1.40226 14.0211,2.31998 19.1875,2.28125 -0.2944,-3.31164 -16.6363,-5.69543 -19.125,-7.4375 1.853,-2.33443 4.3239,-3.76938 6.75,-3.84375 -0.631,-3.01625 2.1528,-2.08477 4,-2.0625 -1.219576,-0.0694 5.374816,-0.2379 9.03125,-1.03125 0.05121,-0.0111 0.10622,-0.0199 0.15625,-0.0312 0.03505,-0.008 0.05931,-0.0231 0.09375,-0.0312 0.36261,-0.0847 0.654304,-0.18242 0.9375,-0.28125 0.01863,-0.006 0.04427,0.007 0.0625,0 0.141457,-0.0501 0.25852,-0.10229 0.375,-0.15625 0.03404,-0.0157 0.06198,-0.0153 0.09375,-0.0312 0.136652,-0.0683 0.252159,-0.14428 0.34375,-0.21875 0.0891,-0.16162 0.142423,-0.32201 0.1875,-0.46875 0.0075,-0.0236 0.02485,-0.0393 0.03125,-0.0625 0.03296,-0.1216 0.05828,-0.23177 0.0625,-0.34375 0.0023,-0.0436 0.0018,-0.0828 0,-0.125 -0.0012,-0.024 -0.02871,-0.0389 -0.03125,-0.0625 -0.01012,-0.10876 -0.02612,-0.21237 -0.0625,-0.3125 -0.0032,-0.009 0.0034,-0.0226 0,-0.0312 -0.0053,-0.0127 -0.02554,-0.0187 -0.03125,-0.0312 -0.05219,-0.12294 -0.129272,-0.23286 -0.21875,-0.34375 -0.09622,-0.11924 -0.20858,-0.23686 -0.34375,-0.34375 -0.02142,-0.0166 -0.04019,-0.0462 -0.0625,-0.0625 -0.397279,-0.29496 -0.959821,-0.5256 -1.59375,-0.75 -4.40286,-1.55852 -13.316307,-1.87149 -10.71875,-7.03125 2.810332,-2.20118 6.956447,-1.9357 10.71875,-0.78125 0.105584,0.0324 0.207564,0.06 0.3125,0.0937 0.389948,0.1254 0.777666,0.26419 1.15625,0.40625 0.09087,0.0341 0.191176,0.0588 0.28125,0.0937 0.382167,0.14836 0.759749,0.30767 1.125,0.46875 0.07216,0.0319 0.147346,0.0614 0.21875,0.0937 0.375591,0.16966 0.741928,0.35275 1.09375,0.53125 0.275141,0.1401 0.523255,0.29426 0.78125,0.4375 0.134074,0.0742 0.277256,0.14411 0.40625,0.21875 0.03921,0.0228 0.08628,0.0397 0.125,0.0625 0.332526,0.19525 0.644224,0.39962 0.9375,0.59375 0.02964,0.0196 0.06454,0.0429 0.09375,0.0625 0.291996,0.19605 0.567131,0.40458 0.8125,0.59375 0.01707,0.0132 0.04567,0.0181 0.0625,0.0312 0.0931,0.0727 0.164498,0.14771 0.25,0.21875 0.152491,0.12675 0.310507,0.25472 0.4375,0.375 0.199077,0.18845 0.369756,0.36392 0.5,0.53125 -1.1183,0.8341 -2.6578,1.9756 -3,2.5625 -0.2431,0.44745 0.457136,0.7741 1.625,1.0625 0.583932,0.1442 1.271609,0.2771 2.03125,0.40625 1.519282,0.25829 3.298512,0.51561 4.8125,0.8125 0.378497,0.0742 0.721216,0.13697 1.0625,0.21875 0.682569,0.16356 1.273548,0.35635 1.71875,0.5625 0.222601,0.10307 0.421369,0.19569 0.5625,0.3125 0.282261,0.23362 0.382137,0.51159 0.25,0.8125 -0.01214,1.25866 -3.489386,4.38638 -5.59375,7.34375 -0.233811,0.3286 -0.463246,0.64678 -0.65625,0.96875 -1.158074,1.93185 -1.458912,3.68939 0.53125,4.6875 0.0235,-0.60745 1.630589,-2.44567 5.03125,-2.3125 2.541,0.0994 4.624,0.3113 6.5,2.625 0.462288,0.26219 0.680928,0.54365 0.6875,0.84375 0.0033,0.15005 -0.06712,0.31034 -0.15625,0.46875 -0.802109,1.42568 -5.054323,3.16918 -7.53125,4.96875 -0.275213,0.19995 -0.525844,0.39292 -0.75,0.59375 -0.672475,0.60248 -1.076512,1.21561 -1.03125,1.8125 0.439763,0.24036 0.900566,0.40673 1.375,0.53125 0.237217,0.0623 0.474337,0.11632 0.71875,0.15625 3.177373,0.51907 6.923556,-0.65911 10.15625,1.3125 2.8369,2.389 4.4868,6.1499 2.8125,8.875 -6.6893,2.9878 -10.72915,5.24035 -8.15625,6.90625 0.3955,1.32532 1.221705,1.67614 2.46875,1.40625 0.249409,-0.054 0.497439,-0.15048 0.78125,-0.25 2.838113,-0.99524 7.40925,-4.11071 13.75,-6.3125 3.7562,-1.30431 3.70825,1.19351 1.28125,6.03125 -3.1091,1.6661 -9.22975,6.266 -11.28125,8.6875 -1.9548,2.4243 10.5737,-4.90375 12.9375,-2.03125 0.788175,0.32981 0.180442,0.88906 -1.34375,1.59375 -1.016131,0.46979 -2.457891,1.00505 -4.125,1.59375 -5.001314,1.7661 -12.252484,3.97561 -17.6875,6.125 -0.905836,0.35823 -1.745228,0.71032 -2.53125,1.0625 -1.572047,0.70437 -2.883248,1.41095 -3.75,2.0625 -0.216686,0.16289 -0.401668,0.31065 -0.5625,0.46875 -0.482501,0.47429 -0.698703,0.92332 -0.59375,1.34375 2.2824,0.0488 25.8411,-5.30075 27.25,-5.65625 3.2346,4.1071 0.5944,5.97303 2.375,9.875 1.0959,3.202 -19.50435,4.079 -15.65625,6.0625 0.4453,0.21434 1.166454,0.28159 2.09375,0.21875 0.463648,-0.0314 0.974109,-0.10242 1.53125,-0.1875 7.242832,-1.10606 21.630725,-6.30856 23.375,-4.15625 1.87845,2.31779 7.440381,7.20116 7.125,10.65625 -0.03379,0.37019 -0.13224,0.72984 -0.3125,1.0625 -0.06009,0.11089 -0.14065,0.20651 -0.21875,0.3125 -7.9544,4.65297 -29.5088,10.59849 -28.875,16.875 0.308869,0.45296 1.351594,0.58567 2.875,0.5 1.015608,-0.0571 2.23778,-0.21837 3.59375,-0.4375 6.101863,-0.98608 14.859032,-3.30557 18.96875,-4.125 0.456634,-0.091 0.855174,-0.1372 1.1875,-0.1875 0.332327,-0.0503 0.593175,-0.0919 0.78125,-0.0937 1.787975,3.98741 1.616757,4.57925 2.625,6.75 0.144035,0.31011 0.298,0.64168 0.5,1.03125 -5.3964,2.5262 -17.12365,6.46345 -16.59375,6.96875 1.9352,1.84475 6.791663,1.27693 11.25,0.3125 1.114584,-0.24111 2.207701,-0.52225 3.21875,-0.78125 3.033147,-0.77701 5.373287,-1.47846 5.59375,-1.28125 1.7853,0.0825 5.87875,10.1295 3.53125,10.0625 -4.7563,9.35702 -29.85345,5.28826 -33.53125,12.53125 0.201209,0.0647 0.422166,0.13417 0.65625,0.1875 1.638584,0.37333 4.042365,0.47109 6.8125,0.40625 1.582938,-0.0371 3.294011,-0.12351 5.03125,-0.25 5.211705,-0.37948 10.747809,-1.08013 14.53125,-1.5625 1.261145,-0.16079 2.335553,-0.31204 3.125,-0.40625 0.7894539,-0.0942 1.3074875,-0.13638 1.46875,-0.125 7.5984,12.87228 -23.53895,11.95034 -24.34375,20.4375 -0.1446,1.52493 8.225722,0.7398 12.3125,2.125 0.340565,0.11543 0.663901,0.25825 0.9375,0.40625 0.820797,0.444 1.298713,1.04502 1.25,1.875 -0.07678,1.19923 0.483309,1.52919 1.40625,1.40625 0.230735,-0.0307 0.476088,-0.10867 0.75,-0.1875 3.013032,-0.86713 8.4001188,-4.21921 11.03125,-0.875 -0.5366,3.31155 -11.02005,10.211 -11.84375,10.125 -0.393,0.53507 -0.138902,0.69082 0.53125,0.625 0.223384,-0.0219 0.503611,-0.0591 0.8125,-0.125 3.706664,-0.79064 12.967025,-4.34233 13.71875,-0.78125 1.1113,5.73919 -24.7518,3.35731 -25.5625,12 9.0561,0.407 20.15815,4.37205 29.15625,4.65625 0.3512,0.9055 -6.2484,7.62735 -12.875,9.78125 -2.8349,0.9215 -7.66485,8.14775 -4.65625,8.09375 1.430878,-0.0255 2.774296,-0.0203 4.0625,0 0.714443,0.0113 1.422165,0.0379 2.09375,0.0625 0.5164112,0.0192 1.0712947,0.0358 1.5625,0.0625 0.1030618,0.006 0.2105367,0.0253 0.3125,0.0312 1.0157137,0.0594 1.9986129,0.12837 2.90625,0.21875 0.0097,9.7e-4 0.021559,-9.7e-4 0.03125,0 0.1113364,0.0112 0.2340168,0.0196 0.34375,0.0312 0.6143254,0.0652 1.1856921,0.14004 1.75,0.21875 0.1511973,0.021 0.3210844,0.0406 0.46875,0.0625 0.088414,0.0132 0.194105,0.0177 0.28125,0.0312 0.5901318,0.0915 1.1547914,0.20646 1.6875,0.3125 0.25183636,0.0504 0.54215621,0.10274 0.78125,0.15625 0.08435485,0.019 0.16722548,0.0432 0.25,0.0625 0.48119693,0.11228 0.915378,0.21932 1.34375,0.34375 0.2533785,0.0733 0.5147517,0.17272 0.75,0.25 0.5238631,0.17209 1.0019521,0.34112 1.4375,0.53125 0.2545409,0.11113 0.4936962,0.22702 0.71875,0.34375 0.1204497,0.0627 0.2629718,0.12329 0.375,0.1875 0.085814,0.0494 0.169107,0.10594 0.25,0.15625 1.7435393,1.08428 2.3613022,2.36667 1.96875,3.6875 -0.3411203,1.14775 -1.0285702,2.16579 -1.96875,3.09375 -0.073947,0.073 -0.14163,0.14698 -0.21875,0.21875 -0.1592959,0.14856 -0.3276268,0.29402 -0.5,0.4375 -0.1145552,0.0952 -0.2236824,0.18821 -0.34375,0.28125 -0.1449764,0.11251 -0.2847946,0.20308 -0.4375,0.3125 -0.2788288,0.19978 -0.5720757,0.40385 -0.875,0.59375 -0.2218256,0.13918 -0.4537266,0.27213 -0.6875,0.40625 -0.091541,0.0526 -0.187964,0.10439 -0.28125,0.15625 -0.6418399,0.35679 -1.31634925,0.70757 -2.03125,1.03125 -0.008772,0.004 -0.0224685,-0.004 -0.03125,0 -0.56228989,0.254 -1.1519296,0.48275 -1.75,0.71875 -0.508291,0.20025 -1.0338068,0.40509 -1.5625,0.59375 -0.2001451,0.0714 -0.3911709,0.14887 -0.59375,0.21875 -0.2515676,0.0869 -0.4951461,0.16537 -0.75,0.25 -0.6810319,0.22611 -1.3646462,0.44443 -2.0625,0.65625 -0.1462676,0.0444 -0.2907583,0.0811 -0.4375,0.125 -1.6899356,0.50523 -3.416136,0.98675 -5.09375,1.4375 -0.476437,0.12801 -0.906722,0.24952 -1.375,0.375 -0.590308,0.15793 -1.209551,0.31336 -1.78125,0.46875 -0.625705,0.17049 -1.279872,0.36167 -1.875,0.53125 -0.671499,0.19109 -1.316291,0.3696 -1.9375,0.5625 -0.04422,0.0137 -0.08107,0.0487 -0.125,0.0625 -0.473262,0.14809 -0.938027,0.28658 -1.375,0.4375 -0.39103,0.1353 -0.76719,0.26763 -1.125,0.40625 -0.302289,0.11711 -0.599045,0.25483 -0.875,0.375 -0.155433,0.0677 -0.32223,0.11871 -0.46875,0.1875 -0.02014,0.009 -0.04254,0.0218 -0.0625,0.0312 -0.164479,0.0781 -0.316367,0.17025 -0.46875,0.25 -0.236323,0.12368 -0.450939,0.24696 -0.65625,0.375 -0.153983,0.096 -0.30208,0.18247 -0.4375,0.28125 -0.09849,0.0716 -0.192946,0.14557 -0.28125,0.21875 -0.09855,0.0822 -0.196054,0.16568 -0.28125,0.25 -0.04429,0.0433 -0.08434,0.0811 -0.125,0.125 -0.07385,0.0806 -0.157458,0.16739 -0.21875,0.25 -0.117838,0.15909 -0.212326,0.33275 -0.28125,0.5 0.504423,0.0307 1.019739,0.0372 1.5625,0.0312 0.25961,-0.003 0.513463,-0.0204 0.78125,-0.0312 0.03102,-10e-4 0.06262,10e-4 0.09375,0 0.259793,-0.0113 0.545529,-0.0128 0.8125,-0.0312 0.171668,-0.0118 0.356781,-0.0166 0.53125,-0.0312 0.40765,-0.0343 0.827908,-0.076 1.25,-0.125 0.0411,-0.005 0.08377,-0.0263 0.125,-0.0312 0.928333,-0.11024 1.888995,-0.26531 2.875,-0.4375 0.911241,-0.15913 1.832547,-0.32796 2.78125,-0.53125 0.510898,-0.10947 1.043266,-0.2546 1.5625,-0.375 0.622868,-0.14458 1.242872,-0.27927 1.875,-0.4375 0.891062,-0.22284 1.78547,-0.47421 2.6875,-0.71875 0.1767985,-0.048 0.3542256,-0.0764 0.53125,-0.125 0.2832517,-0.0778 0.5601361,-0.17061 0.84375,-0.25 0.2817343,-0.0789 0.5619204,-0.13845 0.84375,-0.21875 0.5115517,-0.14565 1.0205741,-0.28816 1.53125,-0.4375 0.1365005,-0.0399 0.2698848,-0.0848 0.40625,-0.125 2.5788093,-0.75886 5.04257989,-1.52493 7.46875,-2.28125 0.5133402,-0.16003 1.0614138,-0.31286 1.5625,-0.46875 0.4574107,-0.14239 0.8355862,-0.26841 1.28125,-0.40625 5.34563,-1.65341 9.855581,-2.97005 12.15625,-2.96875 1.2981,1.2802 0.90305,5.73605 -2.84375,8.34375 -1.566083,1.0901 -5.3660506,2.90675 -9.3125,4.8125 -0.1551934,0.0749 -0.3130358,0.14345 -0.46875,0.21875 -1.2387132,0.59915 -2.380051,1.17298 -3.59375,1.78125 -0.95590735,0.47777 -1.90563839,0.94115 -2.78125,1.40625 -0.6362221,0.33926 -1.2440684,0.67408 -1.8125,1 -0.050411,0.0288 -0.1064658,0.0651 -0.15625,0.0937 -0.429469,0.24841 -0.8415071,0.51283 -1.21875,0.75 -0.4177451,0.26241 -0.7846788,0.5048 -1.125,0.75 -0.049524,0.0355 -0.1084778,0.0586 -0.15625,0.0937 -0.3113241,0.2301 -0.6155109,0.47644 -0.84375,0.6875 -0.1304288,0.12061 -0.2433535,0.23012 -0.34375,0.34375 -0.00585,0.007 0.00575,0.0247 0,0.0312 -0.09042,0.1037 -0.1865529,0.18388 -0.25,0.28125 -0.028465,0.0425 -0.039357,0.0838 -0.0625,0.125 -0.021547,0.0394 -0.045948,0.0868 -0.0625,0.125 -0.051664,0.11867 -0.092963,0.23745 -0.09375,0.34375 2.8995645,0.1186 5.3948623,0.23933 7.53125,0.34375 0.32869984,0.0155 0.75043268,0.0473 1.0625,0.0625 1.6128998,0.0816 3.149196,0.14738 4.375,0.21875 18.838615,1.09726 -7.9423304,1.58321 4.8125,8.28125 4.2498,1.2276 0.5906,3.218 1.375,6.375 0.2707,1.09 5.6106,0.17605 8.875,1.90625 2.7506,1.4583 1.99515,5.10285 1.40625,7.21875 -0.115288,0.41399 -7.831572,3.02427 -16.46875,5.96875 -3.7243847,1.26967 -7.6242827,2.59664 -11.15625,3.84375 -1.1597584,0.40926 -2.1881258,0.80205 -3.25,1.1875 -0.7182234,0.2609 -1.528577,0.53528 -2.1875,0.78125 -0.06827,0.0255 -0.151195,0.0684 -0.21875,0.0937 -1.534051,0.57506 -2.914256,1.10337 -4,1.5625 -7.183487,3.03765 -10.268659,5.49285 -8.59375,8.09375 0.119636,0.18578 0.237669,0.37496 0.40625,0.5625 0.168581,0.18754 0.375725,0.37267 0.59375,0.5625 0.17054,0.10664 0.389059,0.2238 0.65625,0.3125 0.01037,0.003 0.02075,-0.003 0.03125,0 0.03338,0.0109 0.05899,0.0207 0.09375,0.0312 0.259886,0.0802 0.540649,0.12261 0.875,0.1875 0.325277,0.064 0.704189,0.10672 1.09375,0.15625 0.122046,0.0153 0.247161,0.0486 0.375,0.0625 0.108172,0.0119 0.200305,0.0204 0.3125,0.0312 0.05048,0.005 0.104976,-0.005 0.15625,0 0.489582,0.0449 1.006035,0.0985 1.5625,0.125 0.292667,0.0139 0.566079,0.0223 0.875,0.0312 0.374816,0.0112 0.728594,0.0274 1.125,0.0312 0.240332,0.002 0.471279,4e-4 0.71875,0 1.272974,-10e-4 2.619596,-0.0534 4.03125,-0.125 2.0886852,-0.10591 4.2752316,-0.27719 6.4375,-0.53125 0.020729,-0.002 0.041777,0.002 0.0625,0 0.1766582,-0.021 0.3551131,-0.0406 0.53125,-0.0625 0.5541442,-0.0688 1.1103208,-0.14052 1.65625,-0.21875 0.2630073,-0.0378 0.5209485,-0.0851 0.78125,-0.125 0.4567486,-0.0699 0.897523,-0.14221 1.34375,-0.21875 0.68289955,-0.11713 1.35009053,-0.24248 2,-0.375 0.6681219,-0.13624 1.3150636,-0.28525 1.9375,-0.4375 0.022462,-0.005 0.040105,-0.0257 0.0625,-0.0312 0.4352694,-0.10717 0.841915,-0.1976 1.25,-0.3125 0.1548514,-0.0434 0.2869159,-0.0805 0.4375,-0.125 1.1058732,-0.32714 2.1080339,-0.67692 2.9375,-1.0625 8.1763,-3.8007 9.31655,-7.71545 12.78125,-4.59375 8.6267,-3.6737 1.7735,6.36665 2.3125,9.40625 0.872137,4.92086 -13.2603957,7.47976 -18.03125,14.9375 -0.1748459,0.27332 -0.3515417,0.55693 -0.5,0.84375 -0.096725,0.18688 -0.1914373,0.36217 -0.3125,0.53125 -0.1210625,0.16908 -0.2626358,0.34756 -0.40625,0.5 -4.30843616,4.57318 -18.36925,1.90534 -18.0625,7.75 0.0091,0.17363 0.04528,0.32495 0.09375,0.46875 0.01466,0.0444 0.04424,0.0834 0.0625,0.125 0.04669,0.10316 0.08786,0.22582 0.15625,0.3125 0.01937,0.0237 0.04152,0.04 0.0625,0.0625 0.105312,0.11763 0.228384,0.19507 0.375,0.28125 0.01366,0.008 0.01725,0.0235 0.03125,0.0312 0.03941,0.0223 0.08283,0.0422 0.125,0.0625 0.134683,0.0636 0.307359,0.11307 0.46875,0.15625 0.207846,0.0556 0.438406,0.101 0.6875,0.125 0.249364,0.0232 0.525633,0.0368 0.8125,0.0312 0.145722,-0.003 0.314053,-0.0213 0.46875,-0.0312 0.299693,-0.0191 0.606545,-0.0505 0.9375,-0.0937 0.1625199,-0.0213 0.330498,-0.0358 0.5,-0.0625 0.096239,-0.0152 0.2141254,-0.0456 0.3125,-0.0625 0.5600265,-0.0967 1.1595966,-0.22991 1.78125,-0.375 0.058414,-0.0136 0.1286042,-0.0172 0.1875,-0.0312 0.4576855,-0.10884 0.9536918,-0.24527 1.4375,-0.375 1.2149343,-0.32642 2.4875946,-0.67588 3.8125,-1.09375 1.25706623,-0.39605 2.52664553,-0.8226 3.8125,-1.25 1.0626689,-0.35339 2.1153036,-0.71846 3.15625,-1.0625 6.06024,-2.00297 11.452721,-3.61537 12.3125,-2.0625 1.063601,0.94626 -5.934582,4.49118 -12.3125,8.21875 -1.7401454,1.01703 -3.4398089,2.03301 -4.90625,3.03125 -0.30716516,0.20799 -0.58907781,0.42043 -0.875,0.625 -0.15138475,0.10888 -0.2928,0.20475 -0.4375,0.3125 -0.2853272,0.21115 -0.5557668,0.41901 -0.8125,0.625 -0.2483658,0.20094 -0.5009356,0.39864 -0.71875,0.59375 -0.095011,0.0844 -0.1924513,0.1668 -0.28125,0.25 -0.267593,0.2528 -0.5132359,0.5098 -0.71875,0.75 -0.031238,0.0363 -0.064049,0.089 -0.09375,0.125 -0.073948,0.0905 -0.1547342,0.19285 -0.21875,0.28125 -0.1230671,0.17043 -0.2292652,0.33793 -0.3125,0.5 -0.078636,0.15311 -0.1471083,0.32381 -0.1875,0.46875 -0.043234,0.15515 -0.066185,0.29253 -0.0625,0.4375 0.00293,0.1153 0.027594,0.21294 0.0625,0.3125 0.029789,0.0888 0.071178,0.17315 0.125,0.25 0.00811,0.0114 0.022616,0.0201 0.03125,0.0312 0.045916,0.0598 0.095742,0.10375 0.15625,0.15625 0.1132715,0.10002 0.2434956,0.20599 0.40625,0.28125 0.1217963,0.0563 0.2585007,0.0818 0.40625,0.125 0.1167425,0.0338 0.2429126,0.0678 0.375,0.0937 0.034025,0.007 0.058739,0.025 0.09375,0.0312 0.039025,0.007 0.084755,-0.006 0.125,0 0.176453,0.0278 0.3635073,0.0463 0.5625,0.0625 0.4392926,0.0373 0.9310423,0.0454 1.46875,0.0312 0.3296951,-0.01 0.66962832,-0.004 1.03125,-0.0312 0.7270217,-0.0517 1.5093409,-0.13859 2.34375,-0.25 0.7697148,-0.10405 1.6008718,-0.23183 2.4375,-0.375 9.07557,-1.55308 21.380753,-5.10886 22.03125,-3.875 4.0118,7.61068 10e-5,18.58471 2.5625,21.65625 7.6597,2.0439 10.6168,-7.64347 18.5,-6.9375 4.3776,0.39202 17.905,6.25827 18.9375,8.75 0.9452,2.28129 -13.0389,9.28718 -14.3125,12.15625 3.2467,7.32457 25.5108,-4.80075 26.875,-4.84375 1.3201,4.8871 -3.40765,5.2522 3.71875,8.3125 -1.811406,4.57858 56.09387,9.7495 42.09375,1.625 C 84.902825,940.38601 98.24246,936.65297 117.25,938.2809 c 5.63331,0.48248 29.69297,24.42714 35.0625,25.46875 5.60661,1.08761 -11.1997,-20.23661 2.34375,-19.84375 18.97876,-0.16481 31.65671,12.42711 38.46875,14.46875 16.41786,4.92058 34.42286,11.57559 12.40625,-10.1875 -3.68473,-3.6423 -5.40113,-11.45749 8.15625,-16.0625 0.97098,-1.56552 6.45846,-0.32527 6.59375,-0.3125 5.45864,-1.28998 6.1428,-2.83886 6.3125,-4.40625 3.82145,-1.21812 7.63023,-2.32901 9.34375,-3.21875 6.43169,0.32519 16.38199,5.69121 22.09375,8.75 6.54423,3.5047 40.40866,10.63575 43.15625,8.65625 3.0281,-3.0373 -30.78016,-8.99715 -37.90625,-12.46875 -7.95716,-3.8765 -19.02789,-9.3975 -19.21875,-10.1875 -0.22558,-0.93346 -0.088,-3.28967 0.34375,-5.75 1.58509,-0.15507 2.38885,-0.21139 0.3125,-0.40625 2.98843,-0.13844 3.41318,-0.3313 0.59375,-0.5 3.96473,-1.82522 4.46602,-4.01239 6.0625,-6.40625 0.94816,0.36949 1.60951,0.75669 1.71875,0.25 0.17022,-0.78925 0.12561,-1.56608 0,-2.3125 -0.002,-0.0105 0.002,-0.0208 0,-0.0312 0.44182,-0.42663 0.95862,-0.84448 1.5625,-1.28125 -0.20746,-1.20114 0.17003,-2.45363 0.6875,-3.75 3.27134,0.5765 12.96069,6.11611 24.0625,9.21875 11.27533,3.1512 28.17685,5.40355 28.28125,4.09375 -0.44953,-3.0404 -12.62272,-4.90655 -23.53125,-7.78125 -10.07555,-2.6552 -18.93565,-6.3776 -19.71875,-8 -1.03867,-2.1521 16.32552,-1.96905 16.3125,-3.96875 -0.0181,-2.7952 -10.8093,-1.03455 -14.3125,-3.84375 -3.25209,-2.6077 0.46697,-5.43855 1.59375,-6.71875 6.60428,0.39757 26.30942,5.33958 37.34375,5.28125 -1.82569,-5.6684 -25.33849,-15.68515 -29.6875,-19.90625 -0.45794,-0.44451 -1.11954,-1.15062 -1.8125,-2.03125 2.58634,-1.61341 4.80998,-3.40326 5.15625,-5.34375 1.44213,0.0877 -5.18079,-0.43556 -2.3125,-0.40625 -1.12527,-0.0927 5.28538,-0.69941 3.28125,-0.625 -1.86447,0.0783 1.33462,-0.59087 0.5625,-0.6875 1.94582,-0.0761 -0.70444,-0.63076 -1,-0.53125 0.19233,-1.25357 0.52216,-2.48125 0.90625,-3.6875 1.48829,-0.22321 1.791,-1.11144 0.65625,-1.875 1.23109,-3.27939 3.22864,-8.48557 4.0625,-11.53125 6.48104,0.58791 12.53956,4.77361 19.03125,4.4375 2.33046,-2.6157 -1.01522,-5.2262 -6.15625,-7.4375 -3.61628,-0.5134 -14.3075,-5.9258 -15.25,-7.71875 1.53542,-1.4691 4.0332,-3.03143 6.03125,-4.78125 4.02723,-0.15327 7.40786,-0.2544 6.59375,-1.53125 -0.36137,0.0435 -2.41579,-0.18238 -4.4375,-0.8125 0.69579,-1.03804 1.06613,-2.13697 0.84375,-3.3125 1.33698,-4.36289 4.4885,-9.30341 5.21875,-15.71875 1.31335,-1.6145 1.60252,-3.26571 1.59375,-4.90625 1.31518,-0.29244 2.37355,-0.50411 1.8125,-1 -0.85054,-0.75179 -1.47463,-1.40027 -1.96875,-2 -0.0981,-1.71292 -0.0124,-3.39905 1.09375,-5.03125 1.88331,-0.8387 4.40341,-1.45152 5.75,-2.625 1.11995,-0.091 14.66117,9.60205 20.25,7.53125 7.50171,-5.7831 7.9172,-3.8572 -17.59375,-12.4375 -1.34907,-1.10082 -3.28683,-1.19213 -4.8125,-2.03125 0.20265,-1.32285 0.70219,-2.59486 2.15625,-3.8125 0.94632,-0.82604 2.06078,-1.63228 3.1875,-2.4375 3.62108,0.95663 8.82158,2.04566 10.96875,-0.3125 0.35821,-0.39341 -2.93438,-1.45305 -6.625,-3.09375 1.20547,-1.1964 1.82971,-2.35629 1.15625,-3.46875 -0.22435,-0.39026 -0.34351,-0.77274 -0.40625,-1.15625 3.19272,-2.38084 5.66536,-4.70798 1.625,-8.1875 0.089,-0.43956 0.0553,-0.8339 -0.0937,-1.21875 3.90487,0.44521 15.44467,3.73451 16.65625,1.6875 1.47311,-3.95255 -13.77253,-7.37574 -17.1875,-8.34375 0.77031,-2.49356 -0.11608,-4.63838 2.90625,-7 -0.51487,-0.87694 -0.23561,-1.75793 0.4375,-2.625 1.51948,0.43013 3.24241,1.33572 5.03125,0.34375 1.88938,-1.12197 0.28218,-2.17815 -1.3125,-3.46875 1.21954,-0.84874 2.39547,-1.64836 3.09375,-2.375 0.16671,-1.30498 -1.92704,-2.41308 -3.53125,-3.40625 -0.19827,-0.39298 -0.43102,-0.95013 0.90625,-2.90625 1.2228,0.3555 10.80011,1.9863 12.78125,1.9375 0.97178,-4.4846 -15.96124,-6.14725 -12.3125,-7.90625 0.95258,-1.33362 1.86571,-2.58932 2.40625,-3.78125 2.66311,-2.18568 6.0413,-4.32435 8.6875,-6.4375 0.0892,-1.16331 0.6197,-2.30917 1.375,-3.40625 4.72098,-2.12756 14.39515,-4.76413 14.3125,-5.625 1.23232,-0.91928 -2.55775,-2.7986 -6.90625,-3.75 0.4853,-0.29804 0.71328,-0.529 0,-0.5 -1.62282,-0.0841 -4.3092,-1.71406 -1.3125,-1.71875 2.83243,-0.033 0.45188,-1.7424 -1.6875,-1.8125 -0.90066,-0.0954 2.96503,-2.02794 3.6875,-2.125 0.56202,-4.36932 -5.18637,-0.62728 -0.53125,-3.875 1.02676,-0.0592 2.01838,-0.25343 2.90625,-0.8125 0.0755,-1.14813 -1.6189,-2.34658 -3.65625,-3.5 0.16143,-0.53383 0.35068,-1.10758 0.59375,-1.71875 1.63648,-1.79402 -2.45321,-4.01703 3.84375,-5.625 1.95894,0.26891 4.94307,0.42718 4.5,0.25 3.48492,-1.65845 -9.87979,-7.43776 3.53125,-12.59375 2.63205,-2.3938 -3.61769,-5.51065 -3.6875,-5.71875 3.03397,-2.87334 1.51088,-5.72414 1.0625,-8.09375 0.6668,-2.75085 6.54362,-7.29998 7.53125,-7.3125 1.81619,-0.78156 10.00571,3.32902 12.90625,3.4375 -0.0779,0.54632 -15.61102,9.42307 -10.71875,12.8125 6.70887,4.64798 11.59749,0.21864 11.625,4.84375 0.015,2.51967 -11.02478,4.15606 -11.625,4.21875 1.32719,0.087 4.11053,-0.24845 4.9375,-0.34375 1.45434,0.085 -1.51301,6.573 -3.84375,6.625 2.52651,0.1015 -7.60531,2.49025 -4.4375,2.65625 3.16799,0.1659 9.4581,0.4535 8.75,0.8125 -2.27995,0.9961 -16.61906,4.67145 -9.65625,6.65625 13.92164,7.45648 4.33558,2.80497 13.25,3.6875 -0.46336,1.55184 -1.15027,3.01301 -1.78125,4.25 -2.12186,2.32247 5.24092,4.05268 3.1875,5.59375 -2.16133,1.63003 2.86741,3.00149 3.15625,4.125 -0.41665,0.83208 -0.75641,1.64986 -1.03125,2.46875 -1.9833,-0.0886 -3.88719,-0.16636 -3.84375,-0.125 -1.20954,0.0698 2.31752,3.47441 3.03125,3.9375 -0.006,0.0639 -0.0265,0.12364 -0.0312,0.1875 -2.07321,0.55336 -20.80897,3.61326 -20.28125,5.5 1.41757,-0.3361 10.8351,-1.30935 13,-1.28125 0.493,0.34887 4.58923,0.49179 7.75,0.875 0.2532,1.02915 0.59931,2.05561 1.03125,3.0625 -0.0249,0.10359 -0.042,0.2094 -0.0625,0.3125 -3.13813,2.23744 -7.66788,3.85883 -6.15625,5.46875 -0.99867,0.88456 2.34588,-0.65153 6.125,-2.28125 0.44091,3.24612 1.96617,6.26402 0.65625,9.125 0.17144,6.18195 2.55011,11.53971 5.84375,15.8125 -5.98767,3.53016 -15.34577,7.14116 -15.34375,8.1875 1.50931,0.78527 8.6662,-1.20993 14.65625,-2.78125 -1.33911,1.75332 -3.17074,3.20584 -3.09375,4.34375 -0.53179,3.73544 -1.42557,7.33179 0.21875,10.65625 -1.39024,2.0269 1.04746,3.84774 2.8125,5.5625 -1.62948,0.68415 -2.86418,1.29686 -2.8125,1.78125 0.0421,0.39494 1.92581,0.39412 4.28125,0.1875 0.0991,0.29282 0.14335,0.58657 0.0625,0.875 0.85957,1.17258 0.60519,2.25372 0.21875,3.25 -10.95384,3.91231 -28.27154,8.01598 -29.3125,12.4375 0.0587,-0.0934 25.10884,-6.08487 32.46875,-5.53125 -0.0728,0.44144 -0.5275,0.83719 -1.5,1.1875 -2.61851,20.62128 -1.93939,13.16973 -26.96875,21.28125 -3.333,2.405 9.89999,5.20584 10.75,5.125 8.02131,-0.76289 14.93314,-5.31562 24.21875,-0.59375 5.68435,2.79003 -11.55209,3.95365 -19.09375,10.90625 5.87385,0.93722 7.79445,-0.97261 12.28125,-0.0625 -1.53854,1.81979 -1.59713,3.92522 -1.40625,6.25 -1.98002,2.04955 -3.54731,3.98647 -3.59375,5.21875 2.62363,4.7482 1.1982,-0.521 3.21875,-0.25 0.35875,0.24307 0.73627,0.39699 1.09375,0.46875 0.76802,2.17747 1.19173,4.53531 1.1875,7 -2e-5,0.0104 3e-5,0.0209 0,0.0312 -3.027,1.7981 -5.65292,3.1203 -5.4375,3.53125 0.34732,0.66236 2.84155,0.35576 5.125,0.125 -0.0867,0.51635 -0.18868,1.04281 -0.3125,1.5625 1.03407,1.99338 1.64334,3.89852 1.9375,5.71875 -0.81889,0.80829 -1.74725,1.70693 -2.90625,2.78125 -0.42395,-0.017 -10.56803,2.92765 -8.46875,2.90625 2.91823,1.19897 5.91464,-0.13271 11.3125,-0.0937 -0.16203,0.95879 -0.36993,1.91101 -0.65625,2.84375 -0.087,0.39093 -0.0833,0.77668 -0.0312,1.15625 -2.75528,4.53707 -9.51731,9.93573 -10.6875,12.90625 2.75087,3.9439 6.09802,-6.0301 9.15625,-3 7.54012,1.1693 2.62923,9.62915 -3.375,13.59375 1.90433,1.5431 6.31944,-0.40685 7.78125,-1.15625 2.43322,0.034 3.75502,2.4876 3.3125,4.6875 -0.42594,2.27061 4.65784,-0.15345 7.59375,-0.78125 0.0179,0.0307 0.0469,0.063 0.0625,0.0937 -0.6598,0.78222 -0.85879,1.52034 -0.71875,2.21875 0.002,0.009 -0.002,0.0222 0,0.0312 -6.74995,4.76254 -19.21125,6.52355 -16.625,10.6875 0.77333,1.07127 10.32867,-2.3443 17.34375,-4.8125 -0.32138,2.92159 4.61898,5.72909 2.5625,8.09375 0.6738,0.43926 1.18112,0.85905 1.625,1.28125 -4.32602,5.45471 -11.27673,10.03741 -8.3125,10.21875 6.59738,0.404 16.70602,-5.086 15.46875,-1.375 -0.58164,2.33592 -0.99315,4.40524 -3.5625,4.375 3.08335,0.41791 -1.51485,3.20826 -1.875,3.34375 -3.92479,1.351 -16.19227,6.37895 -15.6875,7.40625 0.39601,0.8061 12.72772,-1.4747 16.375,-2.0625 2.32054,-0.3739 6.65042,-0.595 7.1875,-0.9375 0.44134,1.0678 -6.79803,6.581 -9.25,6.625 2.31463,1.3561 6.60327,0.5927 8,0.25 -1.68025,7.5226 9.87507,2.91985 10.125,4.78125 2.43426,3.0202 14.06574,7.01106 16.5,10.03125 l 0.34375,-0.625 c 2.10001,1.60232 4.04863,2.69544 8,3.4375 10.07638,0.91967 31.76002,9.3438 36.78125,9.15625 1.58391,-0.0592 -12.32218,-8.22386 -10.9375,-8.53125 7.21315,-1.60129 12.85204,-1.65654 27.25,-1.6875 5.27972,-0.21908 12.95321,5.65912 17.375,5.8125 21.87203,0.75868 -4.09289,-5.57941 12.1875,-6.0625 5.65288,-0.20556 23.85023,-0.13428 32.46875,-0.3125 -12.27733,14.01295 39.20692,-1.39231 54.5,-4.75 2.82759,-0.41316 -11.77535,10.83398 10.90625,10.03125 22.6816,-0.80273 -7.11083,-10.63946 21.59375,-10.8125 24.7106,-2.43894 -3.9537,-6.00205 15.15625,-8.65625 2.62732,-0.43951 4.44015,-1.00309 5.9375,-1.875 4.05826,0.89969 7.74094,1.83503 7.4375,1.84375 -3.0674,-2.03845 -4.35468,-3.48788 -4.40625,-4.46875 0.35141,-0.39879 0.72777,-0.81014 1.09375,-1.28125 3.70257,-1.54308 16.07371,0.38458 21.375,1.46875 1.69913,0.3475 17.06229,1.8216 17.9375,0.625 0.72249,-0.9881 -21.48372,-7.13975 -19.25,-12.90625 4.17394,-3.7533 9.47492,4.4678 14.8125,1.875 2.81834,-0.271 0.87173,4.9982 4.53125,0.25 -0.19652,-3.7385 -19.77255,-14.01875 -16.46875,-13.96875 4.52208,-7.85334 37.51466,6.04276 39.0625,0.5 -2.67146,-1.86491 -18.51281,-7.94742 -26.3125,-11.53125 0.2725,-0.18204 0.54681,-0.38904 0.8125,-0.5625 3.50207,-2.05758 -2.05647,-3.67671 -2,-4.75 0.0754,-0.0519 0.14448,-0.10368 0.21875,-0.15625 0.40335,-0.0127 0.79119,-0.0385 1.25,-0.0312 8.87574,0.1412 29.70519,9.7969 33.375,10.375 1.19081,-0.0135 1.86774,-5.00125 -2.78125,-7.40625 -5.67023,-2.93344 -16.95385,-6.8256 -25.125,-9.3125 1.09186,-1.13911 2.23889,-2.28408 3.59375,-3.40625 -1.65662,-3.44641 -1.49666,-6.53205 -3.25,-8.21875 -1.74352,-0.64239 7.57467,-1.11859 5.3125,-1.46875 -1.36384,-0.34767 -3.6409,-0.46077 -2.65625,-0.625 20.41427,3.42085 48.97159,9.58814 49.03125,9.65625 -1.74921,-5.32668 -36.54137,-10.18849 -48.9375,-14.8125 0.52357,-0.30746 1.46739,-0.70321 3.125,-1.21875 0.34262,-0.29042 0.60091,-0.58861 0.84375,-0.90625 5.09546,0.49874 10.32226,0.75262 10.40625,0.1875 0.11428,-0.76784 -4.14685,-1.84719 -8.25,-3.0625 0.35544,-0.39447 0.76591,-0.80782 1.28125,-1.28125 0.17369,0.0243 0.19026,0.0326 0.1875,0.0312 -0.0298,-0.0221 0.0432,-0.0758 1.875,-0.0625 -1.1259,-0.0269 -0.56651,-0.0362 0.0625,-0.0312 0.024,-2.44274 -1.01216,-4.97726 2.625,-7.625 1.22331,-2.69746 -0.0864,-5.0963 3.125,-7.125 1.08682,-0.87609 -0.0607,-1.73339 -1.4375,-2.53125 7.45118,1.40846 15.1503,2.8033 16.96875,2.125 0.003,-0.96144 -11.01452,-4.07198 -19.28125,-7.3125 0.17515,-0.04 0.33317,-0.0875 0.53125,-0.125 1.93658,-0.008 -0.10299,-0.0598 -1.03125,-0.0937 -0.0213,-0.008 -0.0412,-0.0228 -0.0625,-0.0312 0.11212,-0.004 -0.0111,0.002 0.34375,0 1.85132,0.0258 3.03089,0.0136 4.03125,-0.0312 0.11482,0.0128 0.76513,0.006 1.78125,-0.0312 -0.27518,0.016 -0.80844,-4.7e-4 -1.3125,0 -0.0402,0.002 -0.0839,-0.002 -0.125,0 -2.24163,-0.003 -5.62939,-0.11102 -3.65625,-0.15625 0.68814,-0.57246 1.23009,-1.07187 4.1875,-1.90625 1.98936,-0.79971 1.08229,-2.03041 0.3125,-3.15625 -2.99984,-0.001 -1.22354,-0.65239 -1.875,-0.75 -2.69834,-0.0437 0.34268,-0.58777 0.5625,-0.6875 -2.59601,-0.0501 6.90699,-0.79234 5.21875,-0.875 0.28013,-0.0946 2.52773,-0.63908 0.875,-0.75 0.52071,-0.0807 0.94707,-0.81751 1.46875,-2.46875 3.94672,-1.73927 3.21585,-4.51798 5.03125,-8.75 -1.8703,-0.004 -3.52512,-0.0485 -3.90625,-0.0937 0.0936,-0.0184 0.32383,-0.0582 1,-0.0625 1.40481,-0.0126 0.22731,0.0252 -1,0.0625 1.34194,4.2e-4 2.9911,-0.002 3.3125,-0.0312 -0.0341,-0.006 -0.0819,-0.0227 -0.1875,-0.0312 2.30379,0.006 0.90223,-0.24872 0.96875,-0.21875 -1.13952,-0.041 -0.15734,-0.3654 0.875,-0.375 -0.32393,-0.20335 -8.55225,-0.19428 -5.78125,-0.375 0.6856,0.0974 0.29976,0.0258 2.5,0.0937 0.15831,-0.0897 2.11268,-0.19612 -0.59375,-0.1875 1.17554,-0.79702 1.57589,-1.56792 1.65625,-2.3125 0.61184,0.13777 0.82724,0.0997 0.375,-0.1875 0.78037,-0.59584 0.3779,-1.18276 -0.625,-1.8125 -0.16925,-0.84071 -0.20724,-1.62132 0.71875,-2.34375 -0.39448,-2.02914 1.45827,-3.30393 -0.0937,-4.53125 -0.41875,-0.22053 -0.15593,-0.44565 0.4375,-0.65625 1.58902,-0.10594 2.83751,-0.22915 3.125,-0.375 3.01969,-0.0281 16.17897,0.94515 18.15625,1.28125 0.5175,-1.32645 -11.87391,-3.13415 -20.53125,-4.34375 1.34224,-0.30015 3.80679,-0.641 5.4375,-0.65625 -1.65155,0.0835 -2.56042,-1.31528 -3.34375,-1.21875 -0.8549,-0.0959 -2.90213,-1.51649 -1.0625,-1.4375 2.77425,-0.46702 1.72915,-1.63852 4.4375,-3.5625 1.19905,-2.11348 4.02504,-4.90574 8.3125,-9.375 1.32197,0.0898 -3.34093,-1.49535 -3.875,-1.59375 -2.86614,0.0295 5.4061,-1.7674 3.46875,-1.84375 1.79908,-0.08 1.29319,-1.76238 -1.40625,-1.71875 0.44071,0.0989 1.60341,-2.01171 4.3125,-1.96875 1.32789,-0.54068 -1.18089,-0.93776 -3.34375,-1.3125 0.68332,-0.26364 0.71261,-0.2914 1.5,-0.59375 4.85599,-0.9924 2.30371,-2.39606 -1.875,-3.6875 1.81891,-1.502 0.27393,-3.78428 4.21875,-6.59375 -1.48715,-2.99044 3.04404,-6.70566 6.125,-11.1875 0.99117,-0.61212 4.13135,-1.05049 1.96875,-1.8125 0.63551,0.12125 3.31123,-3.40143 4.0625,-3.25 4.39848,0.3876 7.1683,4.29291 5.9375,4.90625 0.87058,1.04566 -1.0367,2.57117 0.125,4.53125 4.5324,1.90073 5.67658,4.11014 11.59375,5.625 -0.96847,-0.10131 -4.90666,0.23876 -3.5,0.75 0.48259,0.70425 2.45491,1.42117 1.40625,3.25 -0.1748,8.00779 3.80561,13.6214 10.15625,17.625 0.28549,0.16369 0.58392,0.30997 0.875,0.46875 -2.52999,0.82029 -3.91017,1.65059 -2.90625,2.1875 -0.10035,0.74938 10.01215,2.87287 17,4.8125 0.4755,0.42027 0.71769,0.83345 0.625,1.21875 3.02896,2.63504 -1.63652,5.15666 -1.375,7.5 -0.72848,2.36204 5.48127,4.9831 4.21875,7.25 0.58294,0.62196 0.93453,1.23524 1.15625,1.84375 -5.13059,1.3733 -16.3529,3.11798 -15.40625,6.25 2.26576,0.04 11.31801,-1.00422 15.5625,-1.59375 -0.0564,1.48646 0.18727,2.9539 1.96875,4.4375 0.93524,0.79338 1.62155,1.57397 2.15625,2.34375 -5.13875,2.86547 -20.11572,6.08165 -16.34375,7.6875 2.39317,0.95143 10.85747,-1.07641 18.40625,-2.625 4.23395,2.823 4.98956,3.99279 4.96875,4.40625 0.2895,-0.0727 0.8349,-0.14192 1.875,-0.125 1.75419,1.03144 2.05365,1.88616 0.84375,3.15625 1.44624,0.0925 -6.09291,1.3514 -4.15625,1.4375 14.11341,1.4746 -19.36438,1.83855 -16.4375,7.46875 1.99442,2.4158 16.54423,0.24775 20.1875,0.21875 -12.47801,5.857 2.82741,6.93975 8.71875,11.03125 -6.5336,2.5262 -19.73549,5.96345 -19.09375,6.46875 4.35868,3.43193 22.47623,-2.0188 25.5625,-2.375 1.16531,1.20881 1.34885,2.63466 3.03125,4.15625 0.30256,1.7208 0.0432,3.31247 -1.28125,3.28125 2.45792,0.0763 -9.45501,1.6586 -5.8125,1.6875 -35.58356,8.5803 -50.33866,-0.68935 -39.875,5.09375 7.7955,2.0708 42.00035,-0.2785 43.5625,-0.1875 4.47786,2.7976 2.53573,5.7753 -9.0625,13.125 -1.69196,1.07214 19.05432,-1.04579 24.59375,1.1875 0.5314,0.66019 0.97845,1.29901 1.34375,1.9375 9.9e-4,1.30261 0.35769,2.71139 1,4.15625 -0.007,1.084 0.78116,2.13422 1.75,3.125 1.83789,2.8318 4.32759,5.6788 6.6875,8.15625 -0.64961,3.31155 -19.09654,11.2735 -20.09375,11.1875 9.841,4.90267 25.84396,0.17647 32.21875,-0.34375 3.79691,2.04952 3.34062,2.94768 6.125,6.4375 1.69296,-0.0826 0.49221,0.13748 3.46875,0.125 -2.44917,0.0578 -4.27536,-0.0908 -5.53125,0 -1.37613,1.111 8.50285,2.12436 7.65625,3.59375 3.05023,1.31915 5.41096,2.95064 3.71875,4.65625 2.85313,0.0309 -0.20406,0.75797 -2.71875,0.8125 -2.92373,0.0224 5.64421,0.71651 3.25,0.65625 -1.96617,-0.0571 -0.92207,0.46966 0.875,0.5625 -1.79295,0.1142 -2.30294,0.74559 0.0937,0.78125 2.41802,2.92191 3.33887,4.94887 8.5,7.125 0.15462,2.1767 3.17031,14.85915 14.0625,13.84375 -4.59725,6.14197 8.72496,1.54445 9.78125,5.0625 0.94113,3.13451 -12.82775,7.69038 -4.78125,8.5625 10.12064,1.09693 25.22868,-7.68469 20.03125,0.3125 -5.19742,7.9972 -13.57952,5.19087 -20.375,11.78125 -8.31132,8.06045 28.16528,-4.21794 36.84375,-3.5625 5.38397,0.40662 -5.5922,17.70195 5.375,14.40625 17.60996,-5.29187 20.54048,-16.64216 30.9687,-9.0625 31.3159,-10.08393 14.4937,3.24556 29.1875,1.75 9.1756,-0.35589 17.7859,-8.48013 26.5314,-9.375 -1.0773,-0.17835 -4.3817,-0.34846 0.5,-0.5 3.9755,-0.19928 2.7914,-0.20275 5.375,-0.375 1.6068,0.0969 3.5016,-0.0345 5.6561,-0.46875 0.243,-0.0108 0.4444,-0.046 0.6562,-0.0625 l 0,-0.0937 c 2.5635,-0.56798 5.4757,-1.51123 8.75,-2.84375 0.1948,-0.0398 4.0028,0.56625 4.6876,-0.65625 -0.7691,-0.0612 -4.4285,-2.31325 -4.9376,-2.84375 -1.6719,-0.0135 6.1907,-0.5344 7.8126,-0.5625 1.5069,-2.7269 -10.9366,-4.35421 -9.25,-8.21875 0.8523,-1.2142 9.3064,3.7219 10.9062,2.375 0,-1.2238 -4.4799,-4.02595 -7.7188,-8.03125 -3.2352,-4.0019 -0.6175,-4.3442 -0.125,-6.75 0.4095,-1.9994 15.1579,1.8253 14.7813,-0.125 4.0343,-4.14902 -14.1081,-4.3458 -15.3437,-8.4375 -0.8064,-2.6657 1.6538,-9.4058 1.3437,-10.4375 0.056,-2.5878 1.649,3.3564 11.2187,1.3125 -2.9909,-2.0569 -9.1992,-3.303 -10.25,-7 10.2247,-1.49462 13.9012,0.0141 16.7813,-5.90625 -5.9623,-0.91828 -19.0501,-0.48915 -18.0625,-0.53125 0.2212,-0.0782 2.7613,-3.95715 1.9688,-4.03125 0.053,-0.0818 -4.3198,0.24822 -5.1876,0.34375 2.6876,-3.7099 3.3573,-4.69199 3.3438,-7.5625 0.1212,-3.7477 -2.1797,-7.38245 0.5939,-9.28125 1.0132,-0.679 3.106,1.69555 3.3124,2.03125 2.627,-0.43032 9.2754,-0.5742 5.9376,-5.53125 4.3025,-1.9848 -4.5598,-5.66015 -5.9689,-6.65625 -0.4376,-0.359 3.4488,-0.6466 5.4062,-0.8125 1.9576,-0.166 -4.3112,-2.55475 -2.75,-2.65625 -1.4402,-0.052 0.1326,-1.25875 1.0313,-1.34375 0.511,0.0953 2.2107,0.43075 3.0314,0.34375 -0.5412,-0.0915 -8.0021,-5.53005 -7.4689,-5.9375 -0.9716,-0.15698 6.4384,-2.1781 7.25,-2.09375 -0.3924,0.0671 -0.1386,-0.0811 0.062,-0.71875 -1.0051,-0.6036 -0.043,-1.32075 -0.3437,-1.84375 1.5942,0.0327 1.4548,-1.325 2.5624,-1.25 -0.8233,-0.0873 2.3251,-0.0504 3.2814,-1.5 1.5019,-5.0805 -5.5398,-8.54775 -4.5,-8.46875 3.0995,-4.5259 9.002,1.8104 10.125,4.5 -0.5999,0.8341 -0.8475,1.56935 -1.0314,2.15625 -0.5216,1.7898 4.7546,3.18645 4.1876,5.59375 -0.012,2.28 -3.525,5.9395 -0.2813,8.4375 -0.021,0.0136 -0.023,0.0223 -0.031,0.0312 0.4531,-0.0175 3.9109,-1.02296 5.9376,-0.875 1.3629,0.0994 2.4624,0.3113 3.4687,2.625 1.9837,2.0975 -4.817,5.5041 -4.6875,8.6875 1.887,1.9229 2.5847,0.3859 4.7188,2.8125 1.5217,2.389 3.836,5.86865 2.9374,8.59375 -2.6292,-3.3495 -11.4114,1.5216 -10.0311,3.1875 -0.064,1.0779 9.3107,4.9892 10.3125,7.125 -1.6677,1.6661 -0.2441,3.67225 -1.3437,6.09375 -1.049,2.4243 0.1383,4.8775 1.4062,7.75 2.2545,1.759 -8.2256,3.42165 -7.625,7.90625 1.2243,0.0488 7.1507,-1.582 7.9061,-1.9375 1.7356,4.1071 -0.8184,2.098 1.5314,5.1875 0.5878,3.202 -10.0336,7.6415 -7.9687,9.625 1.9108,1.7147 12.6297,-6.274 13.7812,-3.625 1.1512,2.6489 -0.222,3.6707 -1.5625,7.0625 -7.6386,4.2205 -13.6669,0.6279 -13.2187,6.53125 0.8831,2.4158 20.5063,-3.90973 13.3124,0.90625 -11.4193,7.64495 7.2496,8.39392 15.0626,5.9375 4.3188,-1.96466 -2.9206,5.86884 -5.625,9.90625 5.0885,-1.84866 11.3535,-1.13297 18.5312,-3.90625 8.0334,-3.10387 15.6679,-6.65127 21.9061,-2.5625 4.3334,4.41721 -7.2228,10.93121 -4.0624,9.25 12.9556,-2.12129 21.5409,-9.77373 28.9062,-10.5625 26.7366,-1.4855 4.0824,7.24991 18.4375,7.5 5.5786,-0.67319 -5.8039,-11.48916 11.5,-14.90625 13.2675,-2.5067 28.9479,13.24554 18.0937,-6.46875 10.308,-8.48425 7.5037,5.97941 15.5938,-6 26.0998,6.82129 5.4916,-2.26913 6.75,-7.15625 1.3016,0.0431 13.4702,-6.21463 14.375,-6.875 -0.6491,4.38728 31.2319,10.47008 36.6875,9.71875 -3.0308,-7.20799 -19.1387,-20.95186 -15.3125,-28.5625 0.9854,-1.96015 10.5668,3.07268 10.6875,-1.90625 0.111,-4.57934 -3.2511,-9.46438 -1.4375,-11.15625 2.0119,-3.81018 35.7045,15.94922 36.0312,9.40625 0.3126,-6.2342 -20.8605,-7.39476 -23.8124,-13.375 -4.0048,-8.11311 -12.4249,-5.18 -11.5626,-10.28125 0.514,-3.03962 -6.0083,-13.07995 2.2188,-9.40625 3.3044,-3.12184 4.3898,0.79302 12.1875,4.59375 7.1902,3.50465 44.4187,10.63581 47.4375,8.65625 3.327,-3.03738 -33.8274,-8.99714 -41.6562,-12.46875 -8.7428,-3.87651 -20.9158,-9.39748 -21.125,-10.1875 -0.5619,-2.1159 0.9393,-11.51063 3.5624,-12.96875 3.1133,-1.73036 6.1169,1.21507 6.375,0.125 0.7482,-3.15695 -2.5218,-6.14736 1.5314,-7.375 2.2021,-0.66707 13.8469,5.80903 27.375,9.25 12.3883,3.15109 30.9476,5.40349 31.0625,4.09375 -0.4939,-3.04043 -13.8577,-4.90659 -25.8439,-7.78125 -11.0697,-2.65522 -20.7959,-6.37743 -21.6561,-8 -1.1414,-2.15196 17.9206,-1.96904 17.9061,-3.96875 -0.02,-2.79515 -11.8698,-1.06582 -15.7186,-3.875 -3.5733,-2.60781 0.7618,-9.81363 2,-11.09375 1.3646,-0.98256 4.9102,-2.49282 4,-2.84375 4.2419,1.23809 22.8831,7.48131 28.6875,7.21875 -2.0061,-5.66836 -27.0649,-11.99764 -31.8439,-16.21875 -2.8124,-2.48489 -12.5171,-13.41173 4.4689,-13.09375 2.8689,0.0537 3.3911,-1.48479 0.6875,-2.40625 -6.3198,-2.15391 0.1024,-8.25082 0.4375,-9.15625 8.5814,-0.28428 17.3006,2.93828 25.9375,2.53125 2.5605,-2.61568 -8.2265,-5.00737 -13.875,-7.21875 -7.3482,-2.87682 -10.3464,-5.48184 -8.4375,-8.1875 0.9556,-4.74816 16.374,-3.36503 14.375,-6.21875 -0.7855,0.0859 -11.7071,-2.25085 -12.2189,-5.5625 3.6499,-4.86424 7.7301,-9.57811 7.4376,-14.375 -0.2477,-4.42674 17.2641,-2.94428 15.7187,-4.1875 -9.1359,-7.34969 -10.6522,-10.32744 -7.125,-13.125 1.2304,-0.0912 28.6095,13.03958 34.75,10.96875 8.2422,-5.78312 -3.8154,-7.29475 -31.8437,-15.875 2.8686,-0.0292 -6.5299,-1.61111 -4.5938,-1.6875 -2.2388,0.0666 -0.6704,-7.35516 1.0312,-7.4375 0.5609,-0.5259 16.8091,6.06447 20.5,2.375 0.5056,-0.50534 -9.9159,-3.94258 -15.0624,-6.46875 4.6403,-4.09152 16.7038,-5.1742 6.875,-11.03125 2.8695,0.0291 14.3352,2.19698 15.9062,-0.21875 2.3055,-5.63025 -24.0546,-5.9941 -12.9375,-7.46875 1.5255,-0.0861 -4.4197,-1.34499 -3.2813,-1.4375 -2.3831,-3.39181 -5.9849,-5.78852 -3.9374,-8.4375 2.0471,-2.64897 21.1023,5.30856 24.5,3.59375 3.6693,-1.9834 -15.2015,-6.39165 -14.1563,-9.59375 4.1776,-3.08948 -0.3349,-1.08047 2.75,-5.1875 1.3435,0.35531 11.8538,1.98632 14.0313,1.9375 1.0676,-4.48446 -17.5402,-6.14725 -13.5313,-7.90625 2.2543,-2.87245 4.3338,-5.32567 2.4687,-7.75 -1.9565,-2.42153 0.5906,-4.42768 -2.375,-6.09375 1.7808,-2.13574 18.4575,-6.04699 18.3438,-7.125 2.4536,-1.66589 -13.1682,-6.53695 -17.8438,-3.1875 -1.5967,-2.72504 -0.7682,-7.01723 1.9376,-9.40625 3.7943,-2.42661 8.3324,-0.0769 11.6874,-2 0.2301,-3.18342 -11.9019,-6.58998 -8.375,-8.6875 1.7892,-2.31367 3.7642,-2.52554 6.1876,-2.625 4.1177,-0.16903 11.5305,1.20733 10.5312,0.84375 5.7672,-2.49797 -0.4786,-6.15741 -0.5,-8.4375 -1.0082,-2.40712 8.3649,-3.80395 7.4375,-5.59375 -0.3264,-0.58686 -1.3084,-6.75968 -2.375,-7.59375 -5.6149,-7.55602 6.9856,-12.56443 18.0313,-4.5 1.8487,-0.0787 -3.0206,9.15077 -7.5,13.90625 1.7001,1.44963 7.2764,1.41271 5.8124,1.5 1.9695,-0.0754 1.7274,1.28273 4.5626,1.25 -0.5354,0.52297 1.1933,1.24003 -0.5938,1.84375 0.3637,0.63762 0.7894,0.78582 0.094,0.71875 1.4882,-0.0868 15.527,2.05594 12.75,2.09375 1.9547,0.0758 -12.1632,5.84314 -13.1563,5.9375 1.4582,0.0874 4.4969,-0.24845 5.4063,-0.34375 1.5978,0.0846 4.4045,1.29166 1.8437,1.34375 2.7759,0.10147 -8.386,2.45907 -4.9063,2.625 3.481,0.16592 10.4031,0.48471 9.625,0.84375 -2.5045,0.99609 -18.2438,4.67151 -10.5937,6.65625 15.413,7.51358 4.5635,2.71143 14.75,3.6875 0.3671,-0.33569 2.9485,-1.3353 4.75,-0.65625 0.6401,1.78391 0.8473,5.53372 1.0625,9.28125 -0.024,2.87313 -1.92,4.31381 2.875,8.03125 -1.5421,-0.0954 -9.313,-0.42546 -9.2188,-0.34375 -1.4103,0.0738 3.0756,3.95306 3.4688,4.03125 1.7604,0.0417 -23.2369,3.52837 -22.4688,5.59375 1.5472,-0.33547 11.9012,-1.34067 14.2813,-1.3125 0.8052,0.51858 10.4199,0.5763 12.2813,1.65625 -1.8678,3.69701 -11.7093,5.92198 -9.4688,8.09375 -2.3928,1.92894 17.2121,-7.46272 17.3125,-4.875 -0.5512,1.03179 1.4005,5.58434 -0.031,8.25 -2.1974,4.09181 -7.9723,6.7115 -8.5624,8.5625 -0.6696,1.95023 7.6161,0.18818 8.3437,2.1875 0.8756,2.4059 5.5331,2.74822 -0.2187,6.75 -5.7575,4.00539 -19.8151,8.74492 -19.8126,9.96875 2.8444,1.34684 23.9847,-5.52669 25.5,-4.3125 2.9991,3.35933 -9.1168,6.30431 -6.4374,9.03125 2.8831,0.0276 12.1603,1.58024 9.1874,1.59375 -0.9047,0.53049 -7.4456,2.78272 -8.8124,2.84375 1.2173,1.2225 7.9984,0.61647 8.3437,0.65625 -0.038,0.64367 -1.6445,3.34628 -4.0313,4.78125 -3.3161,1.99383 -10.9476,3.81636 -10.8124,4.96875 0.1086,0.93024 11.2186,-0.33583 14.7187,-1.3125 1.2688,5.58981 -40.2337,11.47565 -41.9375,18.0625 0.069,-0.1 48.5702,-13.3997 54.0312,-11.75 3.2222,3.2039 -9.8593,13.47855 -10.25,13.46875 1.2636,-0.0133 3.8979,-0.0354 4.5938,-0.0937 -1.9101,-0.017 -20.1108,7.10226 -27.1875,11.75 -3.662,2.40502 -3.1255,7.39265 -2.1875,7.40625 2.8907,-0.57819 19.2903,-10.23385 26.2812,-10.375 4.2645,-0.0861 5.4955,1.25053 3.5,3.3125 -2.2346,2.30926 -21.3623,11.38129 -24,13.71875 0.09,5.44348 31.803,-7.36334 30.7813,-0.53125 2.6024,-0.0498 -12.8147,10.26143 -12.9687,14 2.8822,4.74807 1.3425,-0.5523 3.5624,-0.28125 4.2048,2.59289 8.3685,-5.59698 11.6563,-1.84375 1.7595,5.76653 -15.7251,11.91817 -15.1563,12.90625 0.6895,1.19668 12.7872,-0.2775 14.125,-0.625 6.3256,-1.6423 16.7828,-2.24254 5.5313,7.25 -0.4658,-0.0172 -11.619,2.92765 -9.3125,2.90625 3.2898,1.23033 6.6458,-0.24127 12.875,-0.125 1.2175,4.81142 -11.2695,12.98093 -12.9688,16.90625 3.0227,3.9438 6.7337,-5.99897 10.0938,-2.96875 8.2844,1.16914 2.8789,9.62916 -3.7188,13.59375 2.0792,1.53336 6.8633,-0.39635 8.5,-1.15625 2.8741,-0.0287 -11.2298,5.66289 -11.7187,7.875 -0.6058,2.93925 8.9585,-1.99622 10.375,-0.6875 -5.8591,6.57396 -24.284,8.20192 -21.0313,12.96875 1.2745,1.60689 24.8333,-7.05477 26.9688,-7.125 1.0346,1.67247 0.72,6.85467 -2.875,11.1875 -4.7039,5.66919 -12.9173,10.53181 -9.5625,10.71875 7.2486,0.40392 18.3594,-5.08602 17,-1.375 -0.2619,1.95212 -3.2694,5.91915 -6.7187,7 -4.3126,1.35093 -17.8047,6.41023 -17.25,7.4375 0.4347,0.80612 13.9926,-1.47483 18,-2.0625 2.5495,-0.37391 7.2844,-0.59488 7.875,-0.9375 0.4846,1.06786 -7.4623,6.581 -10.1563,6.625 2.5431,1.35618 7.2459,0.5927 8.7813,0.25 -1.8462,7.52258 1.288,6.13874 1.5624,8 0.081,0.64856 -2.0225,5.24263 -7.1562,9.15625 -5.1395,3.91799 -18.681,8.09245 -17.8125,10.21875 6.8144,2.21923 27.5518,-10.63726 30.5937,-9.65625 3.2283,2.68584 -2.3359,6.35766 -3.2187,11.125 1.6295,2.58986 7.8236,6.20564 4.9063,10.09375 -1.5048,2.00488 -8.8923,2.91429 -13.3126,6.25 -2.0824,1.57163 14.1586,-0.54747 16.25,1.59375 1.6069,1.64488 -3.41,5.14414 -9.9062,6.5 -8.3263,1.73783 -18.6245,1.28401 -15.7812,3.0625 9.5362,5.96517 30.4963,-1.33957 33,0.3125 1.5578,1.02825 -0.5345,4.53562 -4.0938,5.71875 -3.6759,1.22185 -12.1754,5.24428 -10.5625,6.375 6.0162,4.21766 12.3304,-5.20302 17.875,-1 0.9651,4.13671 -5.0965,4.57174 -1.6563,7.0625 2.8787,6.33932 5.7943,11.7704 5.1876,16.375 -0.1278,4.56865 9.8379,3.00376 -1.0938,12.90625 1.7572,0.51195 11.3608,-0.92435 13.7812,-0.65625 9.5336,7.31541 -22.757,7.14366 -16.4374,12.1875 6.1602,2.70127 19.4313,-0.7559 22.75,-1.03125 -2.1196,0.4441 -3.4459,4.40606 -3.625,4.3125 -1.3904,3.7585 5.3922,3.5682 8.2187,5.875 4.3464,2.3248 1.0658,3.9674 4.9375,5 21.7653,2.9842 17.7759,6.2006 27.7188,9.9688 6.4517,2.1073 2.2173,11.4201 24,15.2812 21.7826,3.8612 -5.8066,-12.2582 5.2812,-12.2812 7.9019,-0.017 12.4199,-2.6541 19.25,-2.875 7.8351,-0.4797 11.8606,5.5783 21.6875,5.25 12.6583,-2.2012 3.2479,-7.8322 11.9375,-8.8438 11.271,-0.046 9.8339,-1.3363 20.8125,-2.8438 3.4325,-0.3392 20.5985,10.9729 23.1563,10.125 3.6736,-7.8337 -4.6654,-12.4037 9.3124,-15.7187 8.299,-1.5217 35.8784,13.628 41.9063,12.5 11.4447,-2.1416 -25.4905,-13.0188 8.4063,-16.5313 7.6929,-0.7971 15.7506,-1.1539 26.875,2 9.7411,2.6419 21.5552,4.6384 16.9062,-11.5312 3.9676,2.38768 12.6516,7.02576 12.875,7.03125 2.0819,-0.18293 -6.6688,-8.74789 -6.0625,-9.28125 2.877,-1.95995 10.5862,-5.32261 12.3437,-6.5 9.2419,-6.19031 0.7199,-1.08307 19.375,-2.6875 0.4648,-3.0777 -7.4911,-7.02505 -7.625,-11.59375 -0.073,-5.00759 24.8187,2.37598 27.1563,-2.25 1.9144,-1.32162 -16.4239,-9.4134 -17.5313,-10.4375 -0.1286,-6.28585 6.805,-3.59238 2.4063,-5 4.7395,0.43221 11.178,5.17178 16.0625,1.90625 -2.5893,-3.35394 -8.8077,-5.0727 -13,-6.46875 -0.584,-3.26357 -0.6367,-6.38275 3.3125,-8.4375 5.3513,4.78882 33.2024,14.00091 27.2187,8.6875 -4.6693,-4.14648 -12.4615,-7.33825 -19.5624,-9.9375 -6.522,-2.38735 -1.2162,-10.6676 0.4687,-12.3125 2.1935,-2.1412 32.3027,13.46526 34.3437,10.59375 9.0961,-9.34797 -10.2035,-13.4326 -11.7812,-15.4375 -3.0598,-3.88798 -17.1149,-5.9101 -15.4062,-8.5 -0.9258,-4.7673 -6.9164,-5.65805 -3.5313,-8.34375 3.1904,-0.981 19.5737,6.12545 26.7187,3.90625 0.9106,-2.1264 -13.2984,-6.30075 -18.6874,-10.21875 -5.3832,-3.9136 -7.7412,-8.3515 -7.6563,-9 0.288,-1.8614 3.5608,-0.4774 1.625,-8 1.6092,0.3427 6.5523,1.1061 9.2187,-0.25 -2.8248,-0.044 -10.1333,-4.9947 -9.625,-6.0625 3.5526,-11.27574 16.9695,3.00419 21.0626,0.5 0.5815,-1.0273 -13.5722,-6.05525 -18.0938,-7.40625 -3.6176,-1.0808 -6.7569,-5.07915 -7.0312,-7.03125 -1.4258,-3.711 35.8369,10.404 43.4374,10 4.6669,-3.74874 -17.1613,-7.86205 -22.0937,-13.53125 -4.069,-3.58406 -12.1772,-7.38455 -9.25,-12.125 13.5342,-21.91787 25.5332,-5.89346 26.5625,-7.3125 -6.9173,-3.9646 -20.9573,-11.9635 -16.0625,-17.84375 3.5233,-3.0301 3.2683,-3.8686 6.4375,-7.8125 -1.7814,-3.9252 -6.9641,0.40515 -5.6875,-4.40625 6.5317,-0.116 2.363,-2.4573 5.8125,-3.6875 2.4185,0.0214 -3.168,-1.67325 -3.6562,-1.65625 -2.1462,-5.47095 -3.3827,-11.7673 3.25,-10.125 1.4031,0.3475 10.5271,3.4466 11.25,2.25 0.5968,-0.9881 -12.8451,-9.13975 -11,-14.90625 5.3887,-0.9127 28.7753,13.9348 34.6874,6.96875 -0.1621,-3.7385 -33.01,-17.01875 -30.2812,-16.96875 -0.3697,-2.35773 2.2464,-11.06377 5.8125,-10.53125 6.7676,1.01058 15.4072,11.65872 15.4687,8.09375 -2.7653,-2.33745 -19.2506,-10.72205 -21.5937,-13.03125 1.349,0.68637 21.2331,10.67113 27.5313,12.46875 0.9835,-0.0135 -2.004,-9.72 -5.8438,-12.125 -7.4203,-4.6478 -12.872,-8.767 -14.875,-8.75 0.1949,-4.01379 3.1284,-5.76265 6.6562,-9.125 10.0556,3.25755 37.959,6.7125 38.0313,6.8125 -1.7865,-6.5868 -41.2993,-12.12895 -39.9687,-17.71875 3.6702,0.9767 15.3233,2.2427 15.4374,1.3125 0.1415,-1.1524 -7.8351,-2.97495 -11.3124,-4.96875 -2.5028,-1.4349 -4.2102,-4.13755 -4.25,-4.78125 0.3622,-0.0398 7.4735,0.56625 8.75,-0.65625 -1.4332,-0.0612 -8.2701,-2.31325 -9.2188,-2.84375 -3.1169,-0.0135 6.6013,-1.56565 9.625,-1.59375 2.8094,-2.7269 -17.8319,-9.7032 -14.6875,-13.0625 1.5895,-1.2142 23.7366,5.6594 26.7187,4.3125 0,-1.2238 -8.0566,-3.65095 -14.0937,-7.65625 -6.0314,-4.0019 -1.1681,-4.3442 -0.25,-6.75 0.763,-1.9994 9.5771,0.2003 8.875,-1.75 -0.6188,-1.851 -8.2893,-4.2208 -10.5937,-8.3125 -1.5036,-2.6657 3.6717,-6.0933 3.0937,-7.125 0.1053,-2.5878 12.384,2.679 9.875,0.75 2.3493,-2.1718 -7.979,-4.3655 -9.9375,-8.0625 1.9509,-1.0798 12.0307,-1.13765 12.875,-1.65625 2.4941,-0.0281 13.3355,0.94515 14.9688,1.28125 0.6658,-2.0673 -25.4037,-5.55165 -23.5626,-5.59375 0.4123,-0.0782 4.1976,-6.6134 2.7188,-6.6875 -1.523,-2.339 11.6861,-1.97867 12.6562,-1.71875 4.8968,-3.71053 -11.6935,-5.1624 -11.7187,-8.03125 0.2257,-3.7477 -0.9211,-1.74735 -0.25,-3.53125 1.889,-0.679 4.5839,0.32055 4.9687,0.65625 10.6812,-0.9761 23.0995,-1.69443 10.1876,-4.71875 8.0215,-1.9848 -8.4984,-5.66015 -11.125,-6.65625 -0.8161,-0.359 6.444,-0.6466 10.0937,-0.8125 3.6495,-0.166 -8.0357,-2.55475 -5.125,-2.65625 2.1479,-1.40226 14.0211,2.31998 19.1875,2.28125 -0.2944,-3.31164 -16.6363,-5.69543 -19.125,-7.4375 1.853,-2.33443 4.3239,-3.76938 6.75,-3.84375 -0.631,-3.01625 2.1528,-2.08477 4,-2.0625 -1.535,-0.0873 9.3107,-0.33165 11.0938,-1.78125 2.7994,-5.07818 -16.4386,-2.70393 -12.7813,-9.96875 5.7784,-4.5259 17.219,1.34165 19.3125,4.03125 -1.1183,0.8341 -2.6578,1.9756 -3,2.5625 -0.9724,1.7898 13.1196,1.7802 12.0625,4.1875 -0.022,2.23761 -11.0258,10.33838 -5.7187,13 0.023,-0.60745 1.6305,-2.44567 5.0312,-2.3125 2.541,0.0994 4.624,0.3113 6.5,2.625 3.6983,2.0975 -9.0228,5.5041 -8.7812,8.6875 3.5181,1.9229 8.2713,-0.4266 12.25,2 2.8369,2.389 4.4867,6.1499 2.8124,8.875 -6.6893,2.9878 -10.7291,5.24035 -8.1562,6.90625 1.2656,4.24103 6.8548,-1.63338 17,-5.15625 3.7562,-1.30431 3.7084,1.19351 1.2812,6.03125 -3.1089,1.6661 -9.2297,6.266 -11.2812,8.6875 -1.9548,2.4243 10.5737,-4.90375 12.9375,-2.03125 4.2036,1.759 -31.7133,9.7654 -30.5937,14.25 2.2824,0.0488 25.8409,-5.30075 27.25,-5.65625 3.2346,4.1071 0.5942,5.97303 2.375,9.875 1.0959,3.202 -19.5044,4.079 -15.6563,6.0625 3.5624,1.7147 24.8532,-6.774 27,-4.125 2.1468,2.6489 9.093,8.63945 6.5937,12.03125 -7.9544,4.65297 -29.5087,10.59849 -28.875,16.875 1.6475,2.4158 24.3971,-4.31475 27.4063,-4.34375 2.0434,4.55704 1.509,4.66472 3.125,7.78125 -5.3964,2.5262 -17.1236,6.46345 -16.5937,6.96875 3.8704,3.6895 19.4746,-2.2759 20.0624,-1.75 1.7854,0.0825 5.8788,10.1295 3.5313,10.0625 -4.7563,9.35702 -29.8534,5.28826 -33.5313,12.53125 6.4387,2.0708 30.3351,-1.841 31.625,-1.75 7.5986,12.87228 -23.5389,11.95034 -24.3437,20.4375 -0.1928,2.03324 14.7598,-0.0203 14.5,4.40625 -0.3071,4.7969 9.3604,-4.52055 13.1875,0.34375 -0.5366,3.31155 -11.0199,10.211 -11.8438,10.125 -2.096,2.8537 14.0603,-5.02935 15.0626,-0.28125 1.1113,5.73919 -24.7519,3.35731 -25.5626,12 9.0562,0.407 20.1582,4.37205 29.1563,4.65625 0.3512,0.9055 -6.2484,7.62735 -12.875,9.78125 -2.8349,0.9215 -7.6648,8.14775 -4.6563,8.09375 17.8106,-0.318 24.4739,3.05318 23.375,6.75 -2.9436,9.90414 -31.1626,10.85012 -33.375,16.21875 12.3433,0.75117 36.9158,-10.00376 43.5626,-10 1.2979,1.2802 0.903,5.73605 -2.8438,8.34375 -4.0358,2.8092 -22.2606,10.04855 -22.2812,12.84375 41.6624,1.704 2.9953,1.12513 17.8124,8.90625 4.2499,1.2276 0.5594,3.218 1.3438,6.375 0.2707,1.09 5.6106,0.17605 8.875,1.90625 2.7506,1.4583 1.9952,5.10285 1.4062,7.21875 -0.2199,0.79 -28.1141,9.561 -37.2812,13.4375 -8.2097,3.4716 -11.0821,6.18145 -7.5938,9.21875 3.1657,1.9795 23.8045,0.84845 31.3438,-2.65625 8.1763,-3.8007 9.3167,-7.71545 12.7812,-4.59375 8.6267,-3.6737 1.7734,6.36665 2.3126,9.40625 0.9041,5.1012 -14.332,7.66815 -18.5313,15.78125 -3.0952,5.9802 -19.1083,2.54695 -18.7813,8.78125 0.3436,6.543 29.4842,-8.65395 31.5938,-4.84375 1.9017,1.6919 -22.0539,11.63925 -21.9375,16.21875 0.1266,4.9789 30.6228,-5.1164 31.6563,-3.15625 4.0118,7.61068 2e-4,18.58471 2.5624,21.65625 7.6598,2.0439 10.6169,-7.64347 18.5,-6.9375 4.3776,0.39202 17.905,6.25827 18.9376,8.75 0.9452,2.28129 -13.039,9.28718 -14.3126,12.15625 3.2468,7.32457 25.511,-4.80075 26.875,-4.84375 1.3201,4.8871 -3.4076,5.2522 3.7188,8.3125 1.3107,1.9368 4.1706,-0.30975 6.25,1.15625 l 0,-21 c -1.6013,-1.55376 -0.4972,-19.99822 -1.75,-21.875 -10.7287,-1.975 -25.18,-3.94318 -29.5312,-8.40625 -4.1056,-0.74039 -6.0619,-3.34246 -6.9688,-5.21875 -4.2412,-17.82198 -9.9686,-30.60855 -13.375,-38.8125 1.5904,-6.54719 3.8421,-10.98948 2.4375,-20.875 -0.3761,-3.24731 1.2208,-6.9989 -6.5,-18.125 -0.7283,-5.06836 -7.6768,-20.76148 -10.7813,-32.15625 -2.1835,-8.01427 -5.054,-21.40233 -6.7812,-26 0.9588,-9.3082 -1.8194,-16.30955 -5.2188,-25.5625 -3.8281,-11.49689 -4.3671,-14.32165 -7.1562,-21.0625 -5.9473,-10.0511 -8.1961,-18.00922 -8.9062,-30.03125 -5.2738,-7.51544 -7.7834,-15.47967 -11.2188,-23.65625 0.9575,-8.13542 -0.4669,-15.04701 -4.7812,-21.0625 -3.2321,-5.7841 -10.3455,-16.87855 -13.625,-22.65625 -6.6939,-13.38144 -6.5965,-11.12321 -8.5626,-13.96875 1.4269,1.32583 -9.4077,-12.08895 -11.5937,-14.96875 -8.3307,-2.68442 -17.6345,-11.75824 -25.875,-10.21875 -5.3365,2.9024 -9.4597,8.33228 -12.8437,15.15625 -16.4814,19.00892 -17.9307,24.22857 -20.8126,40.375 -2.3586,9.06482 -2.4753,17.11979 -4.1562,26.5625 -5.5223,8.3526 -9.1474,17.46145 -13.2812,24.96875 0.4706,10.65582 1.4976,21.8384 -0.7188,32.75 -3.9634,10.5482 -10.9719,24.27355 -14.1562,35 -1.3616,10.71542 -1.5029,20.17408 -2.5626,31.625 1.2673,12.735 -12.8866,22.87135 -12.8437,35.46875 -3.4545,7.4917 -3.4928,20.5906 -6.8437,28.125 -1.3442,12.50441 -1.4477,25.4087 -5.3438,38.3125 -2.789,9.3282 -4.5215,13.50357 -7.5,22.78125 -4.3006,10.25806 -15.163,15.48049 -17.125,26.6875 -3.0076,7.72497 -8.6997,11.07865 -13.5625,17.84375 -3.2151,5.005 -3.3967,2.667 -4.0937,8.75 -0.2202,0.45997 -6.6124,2.96791 -6.8125,3.40625 -1.9974,0.50604 -4.0607,0.86203 -5.9375,1.40625 -4.712,1.28277 -9.7671,2.41075 -13.7813,4.53125 -5.038,1.88473 -10.3942,1.47275 -15.5625,2.5 -6.442,1.30129 -13.0619,0.50521 -19.5625,1.375 -4.6487,0.58112 -9.4469,0.32105 -14,1.1875 -7.1152,1.57994 -12.317,0.11165 -17.25,2.4375 -5.7687,1.16257 -11.6106,1.92267 -17.2187,3.78125 -5.5317,1.53982 -11.017,3.32876 -16.8125,3.875 -10.5553,2.14116 -21.205,3.74815 -31.8125,5.56255 -13.4031,3.6336 -27.4321,3.0253 -41.1875,3.5 -11.3289,0.01 -22.7031,-0.8311 -33.7812,-3.2188 -5.1606,-0.7097 -7.6594,-6.19739 -13.2812,-6.46875 -4.9022,-1.44452 -11.4847,-1.99008 -13.4376,-7.625 -0.6648,-6.08302 -5.5587,-10.43245 -8.625,-15.4375 -4.6375,-6.76494 -9.7148,-14.0332 -9.8437,-22.5625 -1.8711,-11.20698 -10.4923,-19.49199 -14.5937,-29.75 -2.8406,-9.2777 -1.4022,-19.20304 -4.0626,-28.53125 -2.1811,-12.44428 -3.7413,-25.24844 -9.4062,-36.71875 -3.1959,-7.53448 -6.518,-15.00841 -9.8125,-22.5 0.041,-12.59736 -8.2712,-23.765 -7.0625,-36.5 0.1949,-9.84231 0.226,-20.08057 -4.0312,-29.1875 -3.0372,-10.72634 -2.7827,-22.17061 -6.5626,-32.71875 -2.1137,-10.91167 -1.7797,-22.78447 -8.125,-32.40625 -3.942,-7.50716 -8.4133,-15.10514 -9.4062,-23.6875 -5.2193,-8.52349 -3.6952,-19.70924 -10.2188,-27.625 -3.7509,-6.97472 -0.3554,-16.07293 -5.8437,-22.375 -2.7983,-5.08695 -2.02,-11.98136 -6.875,-15.90625 -0.7901,-8.87183 -3.1941,-23.62446 -10.7187,-24.875 -2.5245,-5.66021 -14.7568,-9.25314 -22.3438,-9.6875 -0.3135,-0.018 -0.6017,-0.025 -0.9062,0 z m 563,46.375 c -0.01,0.16391 0.09,0.23354 0.3124,0.15625 -0.1123,-0.0464 -0.2119,-0.10583 -0.3124,-0.15625 z m -28.8126,24.78125 c -0.013,0.01 -0.018,0.0217 -0.031,0.0312 0.099,-0.006 0.096,-0.014 0.031,-0.0312 z m 8.1876,14 c -0.014,0.044 -0.024,0.0824 -0.063,0.125 0.4765,-0.005 0.3689,-0.0616 0.063,-0.125 z m -528.0626,-0.0625 c -0.2904,0.063 -0.3937,0.12027 0.063,0.125 -0.033,-0.0375 -0.048,-0.0865 -0.063,-0.125 z m 19.5313,-25.9375 c -0.1224,0.1119 -0.011,0.15663 0.4687,0.0312 -0.1784,-0.0192 -0.3016,-0.0154 -0.4687,-0.0312 z M 832.96875,832.875 c -0.60312,0.15151 -0.0181,0.35918 0,0 z M 767.9375,806.15625 c -0.0173,0.044 -0.0466,0.0824 -0.0937,0.125 0.57662,-0.005 0.46678,-0.0616 0.0937,-0.125 z M 352.875,716.46875 c -0.26722,0.0634 -0.35089,0.1203 0.0625,0.125 -0.0339,-0.0426 -0.0501,-0.081 -0.0625,-0.125 z M -62.15625,624.4375 c -0.0063,0.16391 0.0898,0.23354 0.3125,0.15625 -0.112423,-0.0464 -0.211969,-0.10583 -0.3125,-0.15625 z m -28.8125,24.78125 c -0.013,0.01 -0.01825,0.0217 -0.03125,0.0312 0.099,-0.006 0.09625,-0.014 0.03125,-0.0312 z m 8.1875,14 c -0.014,0.044 -0.0235,0.0824 -0.0625,0.125 0.4765,-0.005 0.3689,-0.0616 0.0625,-0.125 z m 824.25,155 c 0.27876,-0.0102 0.87209,-1.5e-4 1.53125,0 -0.48237,0.0146 -0.8469,0.0515 -1.1875,0.0625 -0.58671,-0.022 -0.62251,-0.0523 -0.34375,-0.0625 z m 605.71875,2.71875 c 0.038,-0.0158 0.3573,0.087 0.7187,0.1875 -0.1141,-0.01 -0.241,-10e-4 -0.4062,0 -0.2578,-0.11494 -0.3425,-0.17507 -0.3125,-0.1875 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#e1e1e8;fill-opacity:0.05776176;fill-rule:nonzero;stroke:none;stroke-width:30;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccsccscscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccsccsscsscsscccccccccccccccsccscccccccccccccccccccccccssccccccccccccccsccccccccccccccccscccccccccccscccccccccccccccccsccccccccccccccccccccccccccccccccccccccccscccccccccccccccccccsssscsccccccsssscsscccscscccssssscccccsscssccsssscsccssccccsssscsssccsccsscccccccccccccccccccsccccscccccccccccscccssccccccscccssccccccsccccccscccccccccscscccccccccccscccccccccccccsccccssscccccccccscccscccccssccccsccscssccccccccccccccccccccscscccccccccccsccccsccccccccsccsccccssscssccccccsccccccccccscscccccccccccccccccccccccccccccccccsccccccccccccccccccccccccccccccccccccssccccccccccccccccccccccccccccccccccccscccccccccccccccccccccccccccccccccccccccccccccscscccsccccccsccccccccccsccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccccccccccccccccccccsssssscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccccccsccsccsccccccscccccccccssccsccccsccccccccccccccccccccccccscccccccccccccccccccccccccccccccccccccccccccccscscccccccccccccccccccssccccccccsccccccsccsscccccccccccscccccccssccccccccccccccsccccccccccccccccscccccccccccscccccccccccccccccscccccccccccccccccccccccccccccccccscccccccccccccccccscccccccccccccccccscccccccsccsccccccccccccscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccscccc" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 2282.5625,963.15625 c -1.5825,0.56867 -5.2894,2.10021 -1.6875,0.78125 0.4878,-0.38598 1.2996,-0.22728 1.6875,-0.78125 z"
+ id="path4318"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#20222b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4015-4);enable-background:accumulate"
+ d="m 2242.0625,973.75 c -0.3603,1.81312 7.4099,0.20501 1.6563,0.15625 -0.5541,-0.0614 -1.0998,-0.12102 -1.6563,-0.15625 z"
+ id="path4316"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4459"
+ d="m -42.09375,620.1875 c -0.551656,0.15383 -1.792158,0.54117 -3.40625,1.0625 -0.326552,0.10532 -0.391284,0.13379 -0.75,0.25 -1.484234,0.48063 -3.127111,1.00862 -4.9375,1.59375 -1.290834,0.4172 -2.555068,0.84072 -3.84375,1.25 -1.701584,0.54021 -3.464424,1.07813 -4.875,1.5 -0.08784,0.0263 -0.195209,0.0682 -0.28125,0.0937 -0.615668,0.18266 -1.150779,0.32867 -1.65625,0.46875 -0.175004,0.0485 -0.402989,0.11363 -0.5625,0.15625 -0.750414,0.2004 -1.323757,0.33321 -1.65625,0.375 -2.6149,0.0476 -3.80645,1.05145 -0.65625,2.96875 0.617974,0.3553 1.412847,0.50721 2.3125,0.53125 0.457249,0.0122 0.934985,-0.0107 1.4375,-0.0625 0.375108,-0.0387 0.764936,-0.0889 1.15625,-0.15625 0.122646,-0.0211 0.251259,-0.039 0.375,-0.0625 0.165114,-0.0313 0.333414,-0.0898 0.5,-0.125 1.677768,-0.35638 3.398301,-0.89953 4.90625,-1.40625 0.0092,-0.003 0.0221,0.003 0.03125,0 0.270409,-0.091 0.433647,-0.13161 0.6875,-0.21875 0.900317,-0.30751 1.704564,-0.58853 2.3125,-0.78125 3.24,0.1376 10.32115,-5.5581 8.90625,-7.4375 z m 2047.99995,0 c -2.535,0.7069 -19.4026,6.42745 -21.9687,6.75 -2.6149,0.0476 -3.8064,1.05145 -0.6563,2.96875 3.1107,1.7885 10.6842,-1.31925 13.7188,-2.28125 3.24,0.1376 10.3211,-5.5581 8.9062,-7.4375 z m -600.5,0.71875 c -1.6259,1.87937 -3.5673,3.98132 0.1563,3.84375 3.4872,0.96198 7.3302,2.851 10.9063,1.0625 3.6202,-1.91736 0.8795,-4.45239 -2.125,-4.5 -2.9493,-0.32266 -6.0235,0.30071 -8.9376,-0.40625 z M -101.1875,629.875 c -0.5521,-0.006 -1.01365,0.006 -1.34375,0.0312 -0.3779,0.0289 -0.60355,0.1079 -0.59375,0.1875 0.4245,3.4606 30.57965,3.7743 19.28125,4.8125 -2.1365,0.1963 -14.22935,2.34578 -5.71875,3.8125 -8.0632,2.25483 -0.6339,7.89893 3.1875,10 0.7983,0.19495 -14.82525,-1.31688 -14.59375,2.0625 0.2375,3.45653 18.78305,5.217 20.96875,4.96875 5.0935,-0.57852 1.1287,-7.23812 10.6875,-6.125 2.54173,-0.0742 4.776264,-0.50857 6.90625,-1.125 0.558503,-0.16163 1.105709,-0.3499 1.65625,-0.53125 0.0407,-0.0135 0.08432,-0.0177 0.125,-0.0312 0.0092,-0.003 0.02206,0.003 0.03125,0 1.805853,-0.60281 3.608038,-1.29746 5.53125,-1.9375 0.205738,-0.0685 0.415951,-0.15155 0.625,-0.21875 0.727887,-0.23261 1.472775,-0.44709 2.25,-0.65625 6.1008,-1.6417 10.7489,-5.7523 11.3125,-8.125 -1.2254,0.1799 -3.103198,0.49778 -5.3125,0.875 -1.415561,0.24288 -2.865041,0.50605 -4.46875,0.78125 -0.960869,0.16407 -1.832288,0.30407 -2.8125,0.46875 -2.539781,0.42669 -5.095661,0.82793 -7.3125,1.15625 -0.520836,0.0767 -1.145553,0.18428 -1.625,0.25 -1.477049,0.20247 -2.811221,0.34619 -3.71875,0.40625 -2.0016,0.0192 -5.17075,0.2071 -7.40625,0.5625 -1.3411,-0.28033 -2.34235,0.3783 -2.40625,-1 0.5887,-2.7097 4.2776,-2.5524 4.625,-2.6875 1.8689,0.005 1.09235,-2.9717 0.78125,-2.9375 -5.5799,-3.18903 6.2899,-5.03196 0.5,-5 -0.8273,0.005 -2.0375,0.0427 -3.6875,0.125 -0.5705,0.0284 -9.90665,0.76145 -14.09375,0.65625 -1.0684,-0.0269 -9.5101,-0.73986 -13.375,-0.78125 z m 2048,0 c -0.5521,-0.006 -1.0137,0.006 -1.3437,0.0312 -0.3779,0.0289 -0.6036,0.1079 -0.5938,0.1875 0.4245,3.4606 30.5797,3.7743 19.2812,4.8125 -2.1365,0.1963 -14.2293,2.34578 -5.7187,3.8125 -8.0632,2.25483 -0.6339,7.89893 3.1875,10 0.7983,0.19495 -14.8252,-1.31688 -14.5938,2.0625 0.2375,3.45653 18.7831,5.217 20.9688,4.96875 5.0935,-0.57852 1.1287,-7.23812 10.6875,-6.125 6.515,-0.1901 10.9072,-2.8267 17.125,-4.5 6.1008,-1.6417 10.7489,-5.7523 11.3125,-8.125 -4.9016,0.7196 -20.2881,3.6091 -25.25,3.9375 -2.0016,0.0192 -5.1707,0.2071 -7.4062,0.5625 -1.3412,-0.28033 -2.3424,0.3783 -2.4063,-1 0.5887,-2.7097 4.2776,-2.5524 4.625,-2.6875 1.8689,0.005 1.0923,-2.9717 0.7813,-2.9375 -5.5799,-3.18903 6.2898,-5.03196 0.5,-5 -0.8273,0.005 -2.0376,0.0427 -3.6876,0.125 -0.5705,0.0284 -9.9066,0.76145 -14.0937,0.65625 -1.0684,-0.0269 -9.5101,-0.73986 -13.375,-0.78125 z m -553.8437,0.8125 c 0.6476,2.37271 2.5198,4.20193 9.5312,5.84375 7.1458,1.67328 11.8248,1.30983 19.3125,1.5 16.1928,-2.58373 1.7474,-3.57653 -4.0625,-3.625 -5.7025,-0.32845 -19.149,-2.9991 -24.7812,-3.71875 z m 62.9687,1 c -4.8118,0.10522 -14.8138,2.46596 -15.4687,2.4375 -15.1694,-0.65806 3.9538,1.98043 -3.375,5.625 -0.3584,-0.0335 -0.563,-0.0264 -0.6563,-0.0312 0.3989,0.13515 4.5421,1.04029 5.2187,3.75 -0.4266,3.4696 3.3052,3.75795 5.7188,4.875 3.1408,-0.17555 6.3825,0.27412 9.4375,-0.375 2.169,-0.98878 5.3277,-0.51438 5,-3.5625 -0.9389,-2.73992 -1.0231,-5.4436 -2.9375,-7.78125 -0.6771,1.15441 -1.3711,1.8689 -2.75,1.625 -0.7176,0.0272 -0.1695,-0.17867 -2.625,-0.375 -12.9843,-1.03815 4.4799,-1.91433 4.9688,-5.375 0.089,-0.63676 -0.9274,-0.84757 -2.5313,-0.8125 z M 1418.0312,646.5 c -3.2237,-0.0965 -5.4384,4.49454 -8.7187,4.59375 -1.9682,0.0596 -3.9208,0.29252 -5.8125,0.9375 -2.2544,0.40678 -6.0713,3.37422 -8.4688,2.96875 2.0169,3.76765 4.8711,2.5792 8.6876,4.9375 3.1449,1.2299 7.6892,1.98764 11.6562,1.03125 3.279,-1.54687 7.1379,-5.26232 8,-7.46875 2.6435,-5.37694 -2.6789,-5.72444 -5.3438,-7 z M -66.375,653.03125 c -2.318,1.2756 -6.95725,1.6231 -4.65625,7 0.75,2.2065 4.11555,5.92175 6.96875,7.46875 0.780462,0.21624 1.283393,0.15169 1.65625,-0.0625 0.04101,-0.0236 0.08742,-0.035 0.125,-0.0625 0.0377,-0.0274 0.05926,-0.0626 0.09375,-0.0937 0.465956,-0.4203 0.673216,-1.16625 0.9375,-1.9375 0.01046,-0.0298 0.02053,-0.0639 0.03125,-0.0937 0.0045,-0.0128 0.02669,-0.0184 0.03125,-0.0312 0.09748,-0.27448 0.205567,-0.55056 0.34375,-0.8125 0.06569,-0.12452 0.107289,-0.25789 0.1875,-0.375 0.0083,-0.012 0.02275,-0.0193 0.03125,-0.0312 0.105785,-0.15015 0.237823,-0.2746 0.375,-0.40625 0.06834,-0.0652 0.141353,-0.12797 0.21875,-0.1875 0.05174,-0.0402 0.100058,-0.0877 0.15625,-0.125 0.123566,-0.0815 0.25933,-0.15273 0.40625,-0.21875 3.3207,-2.3583 14.7455,-2.7949 16.5,-6.5625 -2.0851,0.4054 -8.788,2.4693 -10.75,2.0625 -1.6458,-0.6449 -3.3507,-0.8775 -5.0625,-0.9375 -0.168061,-0.006 -0.337954,-0.0274 -0.5,-0.0625 -0.0098,-0.002 -0.0215,0.002 -0.03125,0 -0.15211,-0.0346 -0.290045,-0.0992 -0.4375,-0.15625 -0.1575,-0.0612 -0.315827,-0.13558 -0.46875,-0.21875 -0.02699,-0.0147 -0.06689,-0.016 -0.09375,-0.0312 -0.12862,-0.073 -0.249079,-0.16425 -0.375,-0.25 -0.0301,-0.0204 -0.06379,-0.0414 -0.09375,-0.0625 -0.09485,-0.067 -0.187657,-0.14592 -0.28125,-0.21875 -0.214493,-0.16647 -0.415478,-0.34282 -0.625,-0.53125 -0.237384,-0.21389 -0.484468,-0.4308 -0.71875,-0.65625 -1.256083,-1.20875 -2.491212,-2.45682 -3.96875,-2.40625 z m 2048,0 c -2.318,1.2756 -6.9573,1.6231 -4.6562,7 0.75,2.2065 4.1155,5.92175 6.9687,7.46875 3.4518,0.9564 1.8568,-3.2076 4.5937,-4.4375 3.3207,-2.3583 14.7455,-2.7949 16.5,-6.5625 -2.0851,0.4054 -8.788,2.4693 -10.75,2.0625 -1.6458,-0.6449 -3.3506,-0.8775 -5.0624,-0.9375 -2.8546,-0.0992 -4.7888,-4.68975 -7.5938,-4.59375 z m -2008.46875,4.6875 c -0.403842,0.26602 -0.933242,0.57814 -1.53125,0.90625 -0.04687,0.0257 -0.07701,0.0364 -0.125,0.0625 -0.194811,0.106 -0.380854,0.20104 -0.59375,0.3125 -0.52699,0.27655 -1.056065,0.53729 -1.6875,0.84375 -0.09324,0.0454 -0.185824,0.079 -0.28125,0.125 -0.77919,0.37477 -1.589265,0.77976 -2.5,1.1875 -0.0093,0.004 -0.02192,-0.004 -0.03125,0 -0.894973,0.4013 -1.777968,0.79536 -2.78125,1.21875 -0.173879,0.0734 -0.32321,0.14487 -0.5,0.21875 -0.989633,0.41386 -2.054331,0.8261 -3.125,1.25 -0.183002,0.0724 -0.3462,0.14621 -0.53125,0.21875 -0.184816,0.0725 -0.344469,0.14616 -0.53125,0.21875 -1.107036,0.43018 -2.241215,0.85345 -3.40625,1.28125 -0.57883,0.21267 -1.128971,0.41466 -1.71875,0.625 -0.226194,0.0807 -0.45993,0.13852 -0.6875,0.21875 -1.350624,0.47608 -2.710364,0.92322 -4.09375,1.375 -0.202622,0.0662 -0.390758,0.15327 -0.59375,0.21875 -0.426633,0.13773 -0.853568,0.27186 -1.28125,0.40625 -1.107937,0.34814 -2.207044,0.67912 -3.3125,1 -0.292902,0.085 -0.582873,0.16727 -0.875,0.25 -0.02194,0.006 -0.04056,0.025 -0.0625,0.0312 -0.885791,0.25037 -1.782496,0.49135 -2.65625,0.71875 -0.08286,0.0216 -0.167287,0.0412 -0.25,0.0625 -0.809753,0.20887 -1.613375,0.408 -2.40625,0.59375 -7.798352,1.82723 -14.65895,2.4713 -17.8125,0.53125 -5.5942,-0.8092 -22.89605,-5.37305 -24.15625,-3.03125 -0.4492,0.8348 9.7617,5.50485 16.6875,6.96875 9.612734,2.03172 16.158951,0.56807 25.28125,-0.5625 0.663969,-0.0823 1.306156,-0.17283 2,-0.25 10.0336,-1.1159 42.7838,-12.05544 33.5625,-17 z m 2047.99995,0 c -6.9679,4.58994 -44.5587,19.29875 -53.375,13.875 -5.5942,-0.8092 -22.896,-5.37305 -24.1562,-3.03125 -0.4492,0.8348 9.7617,5.50485 16.6875,6.96875 10.3124,2.1796 17.0546,0.3249 27.2813,-0.8125 10.0335,-1.1159 42.7837,-12.05544 33.5624,-17 z m -1684.43745,0.46875 -2,6.34375 c 6.21777,3.66504 17.35973,2.0832 23.875,0.59375 -7.88413,-2.62811 -17.14609,-3.17902 -21.875,-6.9375 z m 1050.06245,2.75 c 1.5417,3.64456 12.0944,8.7278 23.625,9.84375 11.7531,1.13733 20.2736,0.3984 32.125,-1.78125 7.9603,-1.46384 19.7034,-6.13395 19.1876,-6.96875 -1.4484,-2.3419 -21.3521,2.22204 -27.7813,3.03125 -9.5073,3.79509 -38.2858,-1.78503 -47.1563,-4.125 z m 80.875,6.5625 c -2.298,3.39847 -6.1423,4.90786 -9.7812,6.34375 -3.3632,0.838 -6.7707,1.50614 -10.2812,1.75 -3.5803,0.0742 -2.443,2.27332 -0.4376,3.1875 1.6643,0.79158 5.3035,-0.29802 8.4376,-0.21875 3.4922,0.19923 6.9387,-0.11755 9.9687,-1.3125 2.048,-1.11522 3.4267,-2.54318 4.625,-4.4375 1.1193,-2.96924 0.4268,-4.62449 -2.5313,-5.3125 z m -39.3437,4.53125 -2.4375,4.375 c -4.043,0.22964 -18.9152,-0.71473 -20,1.96875 -0.2978,0.73671 18.7332,3.30515 18.4062,4.15625 -0.9452,2.46528 -2.0163,5.34567 -3.25,8.1875 -3.8123,0.14007 -15.2894,-0.9009 -18.5,-1.78125 -3.0344,-0.90197 -5.7601,-0.72553 -8.4062,-1.28125 -1.0457,-0.18398 -12.1876,-3.52938 -12.9375,-2.71875 -1.7332,1.8735 4.2411,8.89793 9.875,7.9375 3.5303,0.7915 7.0486,1.08268 10.7187,1.25 3.4611,-0.003 11.55,0.45929 17.3438,0.6875 -1.111,2.14822 -0.3951,6.43168 -1.75,8.0625 -1.9609,2.36038 -26.2939,0.0424 -28.875,0.21875 0.7505,0.68083 2.7822,4.3334 7.7188,5.59375 9.9165,2.53235 25.6754,3.27275 25.0937,5.90625 -1.8503,8.37625 1.5602,16.3871 -3.2187,26.53125 -0.2366,2.9139 -29.8116,-2.85553 -31.5938,-2.8125 -10.2242,0.24686 4.1004,7.58897 10.5312,9.3125 4.4596,1.1949 18.8935,3.26175 18.5938,3.875 -1.2418,2.54127 -3.1814,6.59719 -4.625,12.28125 -0.6153,1.74163 -1.47,4.75493 -2.1562,6.46875 -2.3107,-0.62232 -17.1712,-3.36589 -30,-6.375 -7.4783,-1.75383 -14.1115,-4.80462 -17.5626,-4.40625 -4.5132,2.15426 8.5327,9.75563 15.2813,11.25 5.5518,1.22934 13.652,2.34612 14.0313,4.875 -9.702,0.4392 -10.2881,-1.78858 -17.9376,-1.34375 -3.5085,0.33535 -6.8079,0.93124 -10.3124,1.125 -4.9357,0.73981 2.7513,2.0404 3.5624,2.5625 3.2402,0.57165 6.4443,1.3625 9.7813,1.65625 3.4156,0.0732 6.707,0.70483 10.125,1.09375 3.6577,0.23382 7.1148,0.42575 10.75,0.53125 3.0093,-0.0674 6.0442,-0.46037 8.875,-1.40625 0.044,3.27531 -0.5371,5.55029 -1,7.96875 -0.5636,2.94457 14.2477,5.09742 13.3437,7.65625 -3.4909,0.75304 -45.9123,-3.34891 -47.0624,-3.4375 -3.1368,-0.66354 -17.0286,-5.19558 -21.1876,-5.96875 -2.5534,5.60491 29.7464,11.37255 30,14.34375 0.2542,2.9712 -18.0262,-2.7193 -24.8124,-2.75 -3.3317,1.16022 10.653,5.51702 7.3124,6.25 -2.4306,0.0738 -18.634,-3.88316 -20.3124,-1.90625 -2.1799,2.56628 1.2708,4.90436 4.125,7.21875 2.352,2.37074 5.4484,4.5461 8.6562,5.40625 2.9332,0.66332 6.6097,1.08218 9.9375,1.09375 4.0082,0.0174 16.2921,1.26421 21.7187,1.125 5.4277,-0.13921 -10.0899,-10.83699 10.6563,-4.59375 -0.8635,7.22526 -0.7495,11.07432 -2.9687,18.0625 -0.2446,0.77 -40.7659,-6.43213 -44.3126,-7.0625 -1.1307,-0.20107 1.1025,6.80131 7.9063,9.3125 12.2538,4.52264 30.968,6.5551 32.0313,10.21875 1.1775,4.06248 -2.6666,6.00615 -5.2813,9.4375 -1.5727,1.78517 5.7404,5.47627 11.8125,7.53125 -5.2517,0.43434 -11.5243,1.58028 -13.3125,1.4375 -3.7432,0.19676 -25.1161,-3.76136 -29.2187,-5.0625 -6.5808,-2.0864 -22.6169,-9.64417 -27.8438,-10.78125 -3.403,0.25619 24.3763,14.87248 11.9375,12.1875 -3.249,-0.70131 -14.2389,-3.26727 -17.4687,-2.4375 -0.6292,3.11229 14.5602,4.43148 14.5937,7.6875 -15.3189,-1.926 14.1071,9.23483 17.0625,9.5625 3.2754,-0.32471 22.309,7.71726 25.3438,6.25 -5.9973,4.80034 -28.3977,1.67725 -8.0938,6 -2.8846,2.40566 -2.2015,2.44204 -4.4062,3.46875 -6.5716,3.05959 -49.3198,-14.75711 -51.6876,-17.34375 -2.3179,0.48174 12.1842,15.17145 20.8438,19.15625 13.5319,6.2269 39.9398,10.83447 39.3438,11.875 1.5806,5.29433 -17.0831,4.18989 -18.4688,9.1875 -0.7542,1.89577 -10.8111,-0.99622 -19.3125,-5.0625 -9.0499,-4.32866 -19.9514,-13.03598 -19.9375,-8.8125 0.055,16.81838 38.234,25.33238 35.25,31.625 -6.1269,11.50613 -7.8872,7.21037 -16.4062,17.03125 l -20.9376,0 c -1.9007,0.40776 -5.2685,0.88776 -5.8124,2.1875 -1.5236,2.54363 -1.8377,6.29066 -1.6563,9.5 0.1403,3.22036 1.2547,8.63141 1.4375,10.4375 0.613,1.72829 1.4973,3.33184 2.5625,4.8125 -3.1221,2.74482 -6.4449,5.27645 -9.9687,7.53125 -11.0779,7.62548 -35.9774,-9.78293 -48.5,-5 -6.8353,2.9461 22.914,29.57765 -7.1563,15.6875 -30.0703,-13.89018 -8.5487,6.7538 -16.2813,8.25 -3.7308,0.52959 -17.8438,-11.2318 -23.4062,-10.125 -4.5511,0.90556 -8.4138,8.16075 -10.8125,8.78125 -3.3336,0.1702 -16.1188,7.1617 -20.7187,1.96875 -4.0562,-4.57818 10.039,-18.89908 3.9374,-17.90625 -11.0521,1.79842 -9.8656,9.52439 -28.3124,2.8125 -3.9604,-1.44096 3.4864,-6.18049 1.9687,-9.1875 -1.0303,-2.04151 -12.2121,8.7346 -16.1563,5.125 -1.4532,-1.33 7.9604,-3.91137 8.0938,-15.25 -8.8038,3.25713 -12.5395,7.14169 -22.1875,1.125 -1.7898,-1.9409 -1.0716,-2.87858 -3.4687,-5.15625 -4.4859,-5.14582 -4.2271,-10.03151 1.4374,-11.125 6.9259,-1.4639 13.793,-8.13395 13.3438,-8.96875 -5.5389,-0.13591 -13.096,2.3096 -18.2188,3.8125 -2.1538,-1.48329 -3.2423,-4.41246 -3.2812,-6.5 -0.022,-1.17433 17.5336,-1.01862 17.5,-7.34375 1.5825,-5.71675 -16.7273,0.35433 -14.5312,-3.96875 9.2462,0.58466 -4.6098,-5.46265 14,-8.3125 6.4491,-7.59119 -12.2687,-8.67183 -14.2813,-8.9375 -0.8249,-0.0411 -1.553,-0.0609 -2.1563,-0.0625 -9.0458,-0.0238 5.4157,4.23944 -0.5624,7.65625 -0.3116,-0.034 -7.332,1.105 -0.063,1.34375 0.4635,0.11574 6.9658,2.92448 1.75,3.75 -12.2918,1.94554 -15.5672,1.4748 -12.1874,2.6875 5.7074,2.04784 8.0299,4.9215 4.375,8.40625 -1.8831,-1.59674 -4.5976,-0.20495 -7.4376,-0.1875 -4.6496,-0.66137 -9.5862,1.98684 -12.5312,1.59375 1.7545,3.7676 4.4609,0.98545 7.7812,3.34375 1.9539,0.87789 8.4656,2.08903 12.1876,1.5625 l 0,7.40625 c -8.3723,1.15178 -19.7077,-2.41052 -26.1876,-4.375 1.3415,3.6446 7.7474,5.35285 17.7813,6.46875 4.2303,0.47051 6.4742,0.8275 8.4063,0.9375 5.1437,2.88526 2.6458,5.18271 0,7.46875 -6.0112,-0.45464 -28.8722,-4.96554 -29.75,-2.46875 -4.0779,7.72408 20.4719,10.0864 20.1874,10.9375 -4.3786,6.07094 -4.9631,8.08859 -6.2187,13.4375 -1.7062,2.3604 -18.2849,0.042 -20.5313,0.21875 0.6531,0.6808 2.424,4.33345 6.7188,5.59375 8.6291,2.5324 6.9436,0.27285 6.4375,2.90625 -1.3932,7.24797 -11.0981,0.71155 -13.2187,9.03125 -1.8511,0.98588 -6.1979,3.06725 -8.9063,3.43745 -7.9592,-0.7123 -16.4837,-0.4931 -17.375,-0.4687 -6.2226,0.1726 -1.9877,3.8293 3.0313,6.5937 -2.8104,0.3551 -5.6132,0.5903 -8.4063,0.7188 -15.2012,3.7739 8.7999,29.4486 -29.5625,2.7188 -7.23747,25.3557 -23.61005,11.6276 -29.03125,-10.2813 -10.7837,-3.50352 -23.29926,15.8386 -33.21875,10.2813 -2.44804,-1.8651 13.69608,-12.21145 10.28125,-13.43755 -4.6762,-2.141 -37.90485,13.92215 -42.03125,10.87495 1.83315,-0.6642 8.91225,-5.2787 19.09375,-13.4687 10.1815,-8.19006 -26.30735,1.97406 -28.6875,2.21875 -13.87483,3.17345 -15.10489,0.89588 -6.25,-5.6875 3.83952,-2.20866 10.88983,-4.8803 9.53125,-4.96875 -1.66488,0.3132 -8.36563,1.96109 -11.4375,3 -1.22878,-1.33131 0.85304,-4.99288 -0.28125,-6.40625 -1.98265,-1.89464 -7.13277,-1.56858 -9.09375,-3.53125 2.60477,0.88499 30.50206,-16.67939 -4.75,-3.3125 -2.08939,0.79226 -4.67198,-2.37767 -7.625,-9.15625 17.16906,-0.51206 30.25386,-7.37585 39.1875,-11.3125 8.93363,-3.93665 13.60776,-10.72781 6.90625,-11.375 -7.84555,-0.70577 -69.13593,9.2537 -71.65625,6.6875 -1.94153,-1.9769 15.40515,-5.14475 12.59375,-5.21875 -3.86248,-0.733 12.32059,-5.0898 8.46875,-6.25 -5.1816,0.0203 -16.13083,2.4796 -22.90625,3.3125 -0.74688,-0.82907 -1.48368,-1.66025 -2.21875,-2.5 9.32012,-3.18158 37.55608,-13.72711 35.15625,-18.28125 -4.80913,0.7733 -28.46626,4.74275 -32.09375,5.40625 -0.38601,0.0257 -5.1881,0.42149 -11.34375,0.90625 -3.41047,-3.76158 -3.43331,-4.05875 -6,-7.96875 0.87607,-0.0452 1.73238,-0.0757 2.625,-0.125 8.65164,0.93661 33.86655,-6.43943 26.46875,-8.0625 -11.39496,1.4841 -24.9246,3.1934 -32,2.96875 0.43748,-2.529 -1.76402,-5.4583 4.65625,-6.6875 7.80428,-1.4945 38.15716,-9.56455 32.9375,-11.71875 -3.99026,-0.3983 -16.60268,-0.0975 -25.25,1.65625 -6.65155,1.34906 -13.64256,2.6124 -19.71875,3.6875 -3.60522,-6.03998 -7.3509,-11.14387 -11.0625,-17.125 3.61989,-0.56319 12.99784,-0.52654 14.90625,-0.96875 7.43793,-1.7235 21.82357,-7.1281 10,-7.375 -1.26818,-0.0265 -18.34835,-0.40406 -28.5625,0.59375 -0.67055,-7.00455 -6.2345,-5.59979 -7.1875,-11.8125 0.40411,0.15024 0.93396,0.57007 1.46875,1.03125 -2.30592,-2.49009 -4.44856,-5.11758 -6.46875,-7.84375 -0.10354,-0.70892 0.30705,-6.22483 0.125,-6.9375 -0.6727,-2.6334 9.53168,-1.2176 21,-3.75 -1.35354,-3.19197 -13.43361,-0.0661 -17,-3.15625 -1.56685,-1.6309 0.28479,-3.7268 -1,-5.875 10.45417,-0.85023 21.96067,-2.26068 31.4375,-4.125 6.51521,0.9604 13.41057,-6.064 11.40625,-7.9375 -0.86721,-0.8106 -13.72822,2.53495 -14.9375,2.71875 -3.06003,0.5559 -6.2091,0.37925 -9.71875,1.28125 -3.71237,0.8804 -16.99655,1.92135 -21.40625,1.78125 -1.42623,-2.8418 -2.65648,-5.7221 -3.75,-8.1875 -0.37746,-0.8511 15.76567,-0.43202 21.28125,-4.15625 -3.55253,-0.73008 -17.76109,0.54517 -22.78125,-0.71875 l -3.1875,-5.625 c -1.19367,5.4598 -8.33445,11.97935 -6.5,17.34375 0.1804,0.5273 -24.14582,-2.3322 -25.09375,-2.125 -3.63443,0.7941 -23.62535,-4.24425 -23.90625,-3.28125 -1.27254,6.0908 18.29646,9.2626 21.78125,10 7.58063,1.6038 22.82232,1.21685 28.28125,1.03125 4.45353,-0.1515 0.11909,8.17 -1.8125,9.5 -5.24164,3.6096 -42.95221,-7.4212 -45.5625,-6.25 -0.42429,3.3531 8.31499,6.3472 13.3125,8.25 10.51311,4.0031 31.4274,4.0429 33.71875,6.1875 1.72225,1.61196 2.30385,2.72862 2.5,3.9375 -0.79166,2.17347 -1.42993,4.41104 -1.84375,6.71875 -0.0661,0.21089 -0.151,0.41459 -0.21875,0.625 -2.95205,0.61354 -7.98194,0.52215 -11.4375,0.8125 4.09405,1.73065 7.75805,2.21601 9.875,3.53125 -1.29015,3.35328 -2.79524,6.63691 -4.53125,9.78125 -6.10777,-0.51721 -13.09162,-0.85916 -14.75,-1.34375 -3.60945,-1.3858 -8.82683,-1.88355 -12.5,-2.71875 -3.60066,-1.2711 -7.29813,-2.23885 -11.25,-2.53125 -4.45688,-0.2858 -8.41335,-2.73605 -12.84375,-2.90625 -3.18793,-0.6205 -14.20388,-7.157 -14.6875,-4.875 -0.78279,3.6938 7.96323,8.7688 10.75,11.625 2.97237,1.499 8.12605,3.37435 10.1875,3.71875 3.59869,1.8812 7.61574,2.9324 11.71875,3.625 4.21634,0.8437 8.55671,0.83375 12.9375,0.84375 2.23083,-0.01 9.66792,1.28883 16.21875,2.03125 -0.94873,1.46553 -2.55148,2.27626 -2.9375,3.8125 -4.6667,-0.0169 -9.67918,-0.1118 -13.40625,1.03125 -1.74458,0.53507 5.49193,1.91322 12.09375,3.375 -0.83371,2.51747 -1.79923,4.9806 -2.875,7.40625 -5.32089,-0.60697 -11.07256,-1.65153 -16.59375,-3.59375 -20.50709,-7.214 -39.79141,-15.6049 -39.21875,-14 1.23484,8.2192 35.12624,20.55565 42.625,22.59375 2.91611,0.79258 6.26656,1.25043 10,1.6875 -0.41636,0.80745 -3.3854,7.01177 -3.8125,7.8125 -10.3552,-2.10296 -40.10375,-9.00325 -40.34375,-8.0625 -3.35844,7.10247 29.75594,11.57635 35.96875,13.09375 -2.72944,8.22095 -2.44376,6.38069 -3.34375,7.65625 -9.69049,-1.50749 -40.78714,-15.33011 -44.0625,-17.5 -0.69478,-0.0418 -4.25155,1.6074 -1.84375,4.6875 1.79247,2.293 7.94395,5.94915 11.0625,7.59375 5.32027,2.8057 14.48543,6.3046 12.71875,8.1875 -1.17586,1.2532 -5.86412,0.48185 -7.375,0.34375 -3.97766,-0.3637 -12.22613,-3.8589 -14.65625,-2.1875 -1.33174,0.916 1.3099,2.89025 6.3125,4.90625 7.70287,3.1042 18.58202,2.2908 18.125,6.3125 -0.71282,3.2955 -30.26596,-1.71585 -28.0625,-0.0937 2.88206,2.1212 6.11451,5.2459 9.59375,6.1875 3.47623,0.94359 7.00526,1.43165 10.625,1.96875 3.30204,0.39395 6.6102,0.66851 9.96875,0.75 -1.90541,1.38083 -3.86385,2.68345 -5.84375,3.96875 -1.83868,-0.2096 -5.57621,0.1175 -4.8125,1.125 1.35856,2.11732 12.60714,4.28339 10.875,5.65625 -4.52574,0.96437 -14.22784,-0.35495 -18.46875,-2.1875 -9.52391,-4.11539 -42.0502,-13.80149 -41.3125,-12.34375 -0.38646,3.00264 20.5661,23.5082 27.40625,27.4375 -5.83823,5.16822 4.06918,-0.25887 -2.84375,3.375 -0.90416,-0.46053 -40.42867,-23.94359 -36.1875,-13.0625 1.86511,4.7851 8.73487,14.92648 11.4375,20.25 3.5711,7.0342 -0.94224,13.43077 -5.875,8.625 -37.3005,-36.34027 -4.93481,11.95505 -45.3125,4.46875 -31.92503,-5.91912 12.66685,-18.58896 -28.5,-23.6875 -7.18798,0.20024 -19.93579,-4.40292 -23.90625,-1.125 -27.95875,23.08207 -16.34041,19.96426 -2.875,26 -8.91111,24.8621 -24.6468,0.3874 -36.9375,0.5312 -7.99311,-3.67965 22.37585,-25.29438 -36.1875,3.7813 -4.72563,0.5665 10.7508,-30.0545 -8.46875,-20.46875 -16.53092,8.24481 -55.6528,27.33595 -44.875,15.96875 19.45465,-13.29481 27.84539,-28.84388 23.75,-30 -8.0411,-2.26999 -51.27237,20.32393 -62.75,9.96875 0.93624,-0.33742 9.92171,-1.34904 11.0625,-1.78125 8.13806,-2.2138 -27.2833,-6.0664 -1.1875,-8.625 14.43022,-1.355 39.70171,-23.27115 34.96875,-26.65625 -1.28431,-1.1199 -24.65076,16.47065 -26.625,15.90625 -2.22257,-1.2045 -14.49726,2.9265 -16.59375,1.6875 -19.36369,0.7856 5.32738,-8.278 12.8125,-11.9375 1.73095,-0.8463 -17.59577,-2.6435 -18.53125,-3.375 -0.6412,-0.5012 5.39799,-4.0592 4.3125,-4.5625 -3.32076,-0.2863 -7.10915,-0.084 -10.625,-0.125 -4.44201,-1.0327 -9.00718,-0.57075 -13.53125,-0.65625 -0.70837,-0.357 3.00362,-2.61595 7.3125,-5.71875 -2.45751,-7.0058 -8.9326,1.0893 -11.5,-5.875 5.06146,-3.387 15.31846,-2.95785 13.65625,-6.90625 -0.99438,-2.3618 -13.50175,-2.1996 -13.3125,-2.9375 12.08203,-3.26076 21.38468,-5.91282 31.34375,-14.1875 3.6535,-3.7989 8.17935,-8.27055 10.6875,-13.34375 -9.30264,6.70542 -20.39996,11.92255 -30.5625,15.46875 -4.7214,1.1918 -16.95399,3.00585 -25.71875,4.46875 -0.7783,-1.2946 -1.53816,-2.62735 -2.21875,-3.96875 4.81274,-2.01435 10.28366,-3.69011 6.96875,-6.5625 -0.22627,-1.86302 -7.28325,-1.68208 -10.875,-2.5625 -0.16896,-2.7051 8.21798,-4.17773 12.28125,-5.875 8.72114,-3.8016 3.02094,4.37825 8.65625,1.96875 1.17415,-0.5019 34.59142,-17.28025 33.75,-25.96875 1.27396,-3.3457 -33.12561,16.8579 -34.21875,15.125 -1.50071,-4.356 14.88713,-11.2348 16.5,-14.0625 1.14927,-2.015 -3.11203,-1.3382 -6.84375,1 -1.12969,0.7078 -29.74223,11.4587 -30.125,10.1875 -1.5323,-5.6316 6.72817,-3.0761 6.34375,-8.9375 -16.31363,2.1429 1.03848,-6.708 4.125,-7.625 2.1045,1.2614 5.12901,-0.70465 7.34375,-0.0937 2.93582,0.8786 6.30431,0.91245 9.375,0.34375 3.83675,0.1811 7.58965,-0.12845 11.3125,-0.71875 2.72359,-0.5371 5.35314,-1.02516 7.96875,-1.96875 2.61787,-0.9416 5.05021,-4.0663 7.21875,-6.1875 1.65795,-1.6218 -20.5574,3.38955 -21.09375,0.0937 -0.34388,-4.0217 7.82915,-3.2083 13.625,-6.3125 3.76409,-2.016 5.75204,-3.99025 4.75,-4.90625 -1.82849,-1.6714 -8.03835,1.8238 -11.03125,2.1875 -1.13682,0.1381 -4.67775,0.90945 -5.5625,-0.34375 -1.3293,-1.8829 5.59063,-5.3818 9.59375,-8.1875 2.34648,-1.6446 6.9638,-5.30075 8.3125,-7.59375 1.8117,-3.0801 -0.88348,-4.7293 -1.40625,-4.6875 -2.68357,2.3628 -30.18632,18.54295 -34.6875,17.59375 -1.88992,0.6831 -11.25845,-0.4269 -15.25,0.125 -1.37324,-5.338 17.92527,-4.6318 15.84375,-7 -0.9909,-1.1276 -12.62126,0.34565 -13.0625,-2.15625 -0.94835,-2.8577 3.80703,-1.9188 10.21875,-4 4.67468,-1.5174 12.63749,-8.7594 12.53125,-9.3125 -0.27592,-1.4374 -14.00579,6.32165 -20.9375,6.03125 -2.52155,-0.1056 -0.86128,-13.3921 -0.9375,-13.8125 7.08268,-1.5502 19.76122,-1.8334 24.375,-3.5 5.64227,-2.0381 18.88338,-3.0308 19.8125,-11.25 0.43089,-1.6049 -12.19378,2.52646 -28.71875,6.65625 -7.8859,1.97078 -11.36028,0.52146 -17.0625,0.71875 -0.38831,-2.3459 -0.81501,-8.12285 0,-10.46875 16.28976,0.91505 59.43451,-15.80453 24.8125,-7.25 -8.12436,1.93526 -17.11062,1.99347 -24.75,1.8125 0.14,-0.9553 -1.40765,-2.0663 0.5625,-5.5 1.25577,-2.1886 0.73095,-2.66375 4.5,-4.78125 -3.95535,-0.4417 -6.51939,0.20875 -6.25,-2.28125 0.54035,-5.0003 -1.03066,-1.6272 1.78125,-5.125 1.72407,-2.1446 24.6834,-3.3094 32.59375,-7.3125 3.76027,-1.9028 10.3505,-4.8969 10.03125,-8.25 0.33782,0.65113 -30.29904,11.54354 -39.09375,4.09375 -1.45338,-1.33 -1.00725,-11.36409 1.125,-14.21875 7.39759,0.62817 32.29207,-1.26623 32,-7.8125 -0.21135,-0.963 -16.29661,3.63785 -19.03125,2.84375 -0.71325,-0.2072 -13.99055,0.006 -13.625,-0.40625 0.77189,-1.64569 -0.0448,-3.54839 0.3125,-9.3125 5.09435,0.0972 26.50445,-8.77892 23.0625,-9.84375 -4.39127,-1.35852 -17.45924,5.73462 -23.71875,4.3125 -0.44912,-3.7906 -0.89372,-4.56903 -0.75,-9.5625 0.0376,-1.30633 10.15559,-2.48338 10.1875,-3.65625 0.0724,-2.65991 -9.78819,-0.77839 -9.90625,-2 -0.58322,-9.81839 -2.00767,-21.27889 -4.21875,-16.28125 -1.7119,3.5967 -3.16058,11.49649 -3.875,15.375 -4.16333,0.98678 -17.26241,-0.83064 -18.53125,-1 1.75453,3.7676 4.242,2.5792 7.5625,4.9375 2.50899,1.12741 6.02257,1.84147 9.25,1.21875 -1.92402,9.38976 -3.61675,19.81313 -5.25,19.6875 -3.51793,0.2298 -12.89983,-0.8084 -13.84375,1.875 -0.25912,0.7368 12.81526,3.2739 12.53125,4.125 -0.82279,2.4654 0.79191,5.81445 -0.28125,8.65625 -6.50676,-3.61964 -34.59429,-2.26575 -23.75,-0.71875 3.01161,0 18.33364,3.99055 23.375,4.21875 -0.96671,2.1482 -0.75856,3.96285 -1.9375,5.59375 -1.70624,2.3604 -30.75411,-1.0205 -33,-0.84375 0.65303,0.6808 2.42396,4.33345 6.71875,5.59375 8.62908,2.5324 25.0999,3.27285 24.59375,5.90625 -1.61,8.3762 1.56538,18.7934 -2.59375,28.9375 -0.25476,1.78393 -34.65542,-6.18434 -18.75,1.4375 3.88008,1.1949 17.54203,2.5743 17.28125,3.1875 -1.08053,2.5413 -6.43138,9.9411 -7.6875,15.625 -0.53539,1.7418 -1.27705,4.75495 -1.875,6.46875 -2.01009,-0.6223 -14.93042,-3.3659 -26.09375,-6.375 -6.50648,-1.7538 -12.27887,-4.80455 -15.28125,-4.40625 -3.92742,2.1542 7.44034,9.7555 13.3125,11.25 4.83079,1.2292 11.85833,2.346 12.1875,4.875 -8.44139,0.4392 -8.93778,-1.78855 -15.59375,-1.34375 -3.05328,0.3353 -5.91903,0.9312 -8.96875,1.125 -4.29426,0.7398 2.38764,2.0404 3.09375,2.5625 2.8187,0.5716 5.59638,1.36255 8.5,1.65625 2.97201,0.073 5.8384,0.70485 8.8125,1.09375 3.18267,0.2338 6.18065,0.42575 9.34375,0.53125 2.61848,-0.067 5.28684,-0.46035 7.75,-1.40625 0.0383,3.2753 -0.47222,5.55035 -0.875,7.96875 -0.49041,2.9446 12.37991,5.09735 11.59375,7.65625 -3.03754,0.753 -39.93642,-3.3489 -40.9375,-3.4375 -2.72942,-0.6635 -14.81898,-5.19545 -18.4375,-5.96875 -2.2224,5.6051 25.87291,11.37255 26.09375,14.34375 0.22075,2.9712 -15.68844,-2.7193 -21.59375,-2.75 -2.89823,1.1602 9.28123,5.517 6.375,6.25 -2.11537,0.074 -16.22664,-3.88315 -17.6875,-1.90625 -1.89636,2.5662 1.11084,4.90436 3.59375,7.21875 2.04689,2.3707 4.74005,4.54615 7.53125,5.40625 2.55226,0.6633 5.76063,1.08215 8.65625,1.09375 3.48765,0.017 14.18432,1.2643 18.90625,1.125 4.72202,-0.1392 -8.80188,-10.83714 9.25,-4.59375 -0.75136,7.2252 -1.19366,14.6368 -3.125,21.625 -0.21283,0.77 -36.88301,-5.8697 -39.96875,-6.5 -0.98429,-0.2011 2.92356,2.6764 8.84375,5.1875 10.66239,4.5227 26.95066,6.55505 27.875,10.21875 1.02475,4.0625 -2.31862,6.0062 -4.59375,9.4375 -0.91709,1.19638 1.65547,3.22025 5.03125,5.0625 -0.25268,0.77117 -0.54111,1.53768 -0.875,2.28125 -0.12412,0.35005 -0.27681,0.68381 -0.40625,1.03125 -2.30275,0.35037 -4.23808,0.66941 -5.0625,0.59375 -3.25707,0.1968 -21.83559,-3.7614 -25.40625,-5.0625 -5.7258,-2.0864 -19.70192,-9.64415 -24.25,-10.78125 -2.96105,0.2562 21.22962,14.8725 10.40625,12.1875 -2.82705,-0.7013 -12.40754,-3.2673 -15.21875,-2.4375 -0.54705,3.1123 12.6896,4.4315 12.71875,7.6875 -13.32943,-1.926 12.27217,9.2348 14.84375,9.5625 2.85002,-0.3247 19.39145,7.7173 22.03125,6.25 -5.21791,4.8003 -24.69828,1.6772 -7.03125,6 -2.50998,2.4057 -1.9252,2.44215 -3.84375,3.46875 -5.71814,3.0597 -42.90846,-14.75715 -44.96875,-17.34375 -2.01687,0.4817 10.59003,15.17145 18.125,19.15625 5.83742,3.0871 14.44594,5.75876 21.5625,7.8125 -0.54623,0.53064 -1.07392,1.07083 -1.625,1.59375 -3.87365,3.51408 -8.04482,6.69465 -12.4375,9.53125 -2.01706,-0.85803 -4.11856,-1.83459 -6.125,-2.9375 -7.87459,-4.32884 -32.94959,-21.161 -32.9375,-16.9375 0.0213,7.49165 15.72452,26.98495 22.8125,31.71875 -6.48453,4.37182 -28.48581,-4.55081 -35.84375,-2.0625 -5.7733,13.55259 29.35641,55.11545 -21.78125,12.4375 -9.39955,-0.45743 -31.14997,-7.28398 -40.5625,-7.28125 -29.68274,12.75789 6.83717,66.3241 -44.09375,6.21875 -8.104077,-9.56443 -21.429564,-0.27938 -24.5,-0.59375 -0.621838,-4.60879 -1.29339,-9.27272 -4.25,-10.875 1.7365,1.75175 -18.73815,13.23497 -20.53125,13.46875 -2.6324,-0.71061 -11.20575,-5.23446 -13.78125,-6.1875 0.3312,-2.40661 15.0267,-9.55863 15.125,-12.15625 0.158,-3.2093 -20.61,8.39062 -30.4375,5.6875 -7.1183,-1.95791 11.43145,-13.39659 9.90625,-14.15625 -5.973,-2.97495 -10.14185,5.34091 -16.59375,1.375 -10.8281,-6.65603 20.687,-31.10409 18.4375,-34.1875 -2.180708,-2.98922 -39.0799763,9.54967 -47.46875,7.1875 -0.034339,-0.01 -0.060334,-0.0211 -0.09375,-0.0312 -0.1522373,-0.0463 -0.305696,-0.0993 -0.4375,-0.15625 -0.130074,-0.0556 -0.265422,-0.12145 -0.375,-0.1875 -0.03345,-0.0209 -0.06233,-0.0405 -0.09375,-0.0625 -0.06651,-0.0442 -0.129882,-0.0762 -0.1875,-0.125 -0.03259,-0.0288 -0.06416,-0.0634 -0.09375,-0.0937 -0.0491,-0.0485 -0.08414,-0.10334 -0.125,-0.15625 -0.06269,-0.0823 -0.113334,-0.15753 -0.15625,-0.25 -0.08113,-0.19664 -0.128962,-0.40178 -0.15625,-0.59375 -0.02729,-0.19197 -0.02401,-0.37426 0,-0.5625 0.01864,-0.14616 0.04554,-0.29309 0.09375,-0.4375 0.02472,-0.074 0.0615,-0.14509 0.09375,-0.21875 0.148091,-0.3306 0.366237,-0.6737 0.65625,-1 0.108444,-0.12176 0.248084,-0.25331 0.375,-0.375 0.06152,-0.0589 0.1218623,-0.12863 0.1875,-0.1875 0.096598,-0.0866 0.2070802,-0.16327 0.3125,-0.25 5.6774342,-4.67069 23.933845,-9.63833 33.6875,-22.6875 0.012,-4.2235 -11.09485,0.79616 -18.96875,5.125 -4.56712589,2.51035 -10.6027487,4.48632 -14.71875,5.1875 -0.057467,0.01 -0.099532,0.022 -0.15625,0.0312 -0.572715,0.0938 -1.108293,0.14672 -1.59375,0.1875 -0.213753,0.018 -0.430935,0.0554 -0.625,0.0625 -0.304871,0.0114 -0.561524,-0.0147 -0.8125,-0.0312 -0.01169,-7.2e-4 -0.01968,7.8e-4 -0.03125,0 -0.199122,-0.0142 -0.370463,-0.0295 -0.53125,-0.0625 -0.129356,-0.0258 -0.240606,-0.0869 -0.34375,-0.125 -0.01884,-0.007 -0.04462,0.008 -0.0625,0 -0.02461,-0.01 -0.03961,-0.0204 -0.0625,-0.0312 -0.06305,-0.0313 -0.138561,-0.0561 -0.1875,-0.0937 -0.0512,-0.0384 -0.08942,-0.0797 -0.125,-0.125 -0.04085,-0.0504 -0.07323,-0.097 -0.09375,-0.15625 -0.5,-2.07376 -0.593,-1.50946 -3.9375,-2.375 -0.6531,-2.57436 -1.24325,-5.15827 -1.78125,-7.75 1.889551,-0.53308 4.070013,-1.1505 6.34375,-1.8125 0.07074,-0.0205 0.147766,-0.0418 0.21875,-0.0625 1.087931,-0.31746 2.183632,-0.62539 3.3125,-0.96875 0.1563469,-0.0475 0.3118947,-0.1082 0.46875,-0.15625 5.8213502,-1.7833 11.9559965,-3.90782 16.5625,-6.34375 7.5349,-3.9848 29.11595,-12.22712 25.03125,-20.0625 -3.205878,1.64664 -26.1125644,10.24873 -41.59375,14.25 -0.707603,0.18289 -1.38864,0.33751 -2.0625,0.5 -0.122575,0.0296 -0.253623,0.0649 -0.375,0.0937 -0.283537,0.0674 -0.598396,0.15542 -0.875,0.21875 -0.471965,0.10803 -0.955927,0.21683 -1.40625,0.3125 -0.338319,0.0715 -0.675116,0.12358 -1,0.1875 -0.367477,0.0727 -0.744425,0.15608 -1.09375,0.21875 -0.580904,0.10422 -1.130148,0.20671 -1.65625,0.28125 -0.07884,0.0112 -0.172461,0.0208 -0.25,0.0312 -0.07682,0.0103 -0.143235,0.0217 -0.21875,0.0312 -0.507026,0.0649 -0.992424,0.0928 -1.4375,0.125 -0.42211,0.0305 -0.794861,0.0636 -1.15625,0.0625 -0.156,-7e-4 -0.324713,-0.0244 -0.46875,-0.0312 -0.07759,-0.004 -0.144755,0.006 -0.21875,0 -0.178742,-0.0127 -0.311014,-0.0391 -0.46875,-0.0625 -0.139887,-0.0206 -0.283569,-0.0332 -0.40625,-0.0625 -0.239197,-0.0572 -0.453968,-0.12723 -0.625,-0.21875 -1.2758,-2.60565 -2.0091,-3.8619 0.875,-7.65625 0.181836,-0.23921 0.440085,-0.523 0.75,-0.84375 0.309915,-0.32075 0.674103,-0.68097 1.09375,-1.0625 0.304972,-0.27727 0.676688,-0.5751 1.03125,-0.875 0.395677,-0.33467 0.801843,-0.67889 1.25,-1.03125 0.654185,-0.51423 1.353881,-1.03983 2.09375,-1.5625 0.739869,-0.52267 1.517328,-1.03452 2.3125,-1.53125 0.06377,-0.0398 0.123479,-0.0855 0.1875,-0.125 0.04454,-0.0275 0.08034,-0.0664 0.125,-0.0937 0.515092,-0.31565 1.036412,-0.58363 1.5625,-0.875 0.190029,-0.10525 0.371754,-0.21124 0.5625,-0.3125 0.525394,-0.27958 1.037105,-0.538 1.5625,-0.78125 0.1038901,-0.048 0.2087923,-0.10982 0.3125,-0.15625 1.0062462,-0.45047 2.0113959,-0.83238 2.96875,-1.09375 7.7220706,-2.10821 5.4108629,-3.92766 -2.96875,-3.90625 -0.821518,0.002 -1.690246,0.0237 -2.625,0.0625 -0.185783,0.008 -0.341168,0.022 -0.53125,0.0312 -1.086243,0.0521 -2.247821,0.14562 -3.46875,0.25 -0.04094,0.004 -0.08392,-0.004 -0.125,0 -0.09869,0.009 -0.212977,0.0222 -0.3125,0.0312 -0.690878,0.062 -1.395115,0.13926 -2.125,0.21875 -0.776568,0.0849 -1.556054,0.17569 -2.375,0.28125 -1.17519,0.15148 -2.367895,0.30379 -3.625,0.5 -0.3464,-1.00911 -3.6837,-3.8723 0.6875,-7 0.175067,-0.12526 0.406296,-0.269 0.65625,-0.40625 0.04331,-0.0237 0.110866,-0.0385 0.15625,-0.0625 0.111635,-0.0588 0.251009,-0.12666 0.375,-0.1875 0.142369,-0.0701 0.279493,-0.14611 0.4375,-0.21875 0.621258,-0.28532 1.346013,-0.58191 2.1875,-0.90625 0.452433,-0.17439 0.991434,-0.37742 1.5,-0.5625 2.536573,-0.92182 5.723811,-1.98033 9.1875,-3.125 15.7099374,-5.19178 37.875413,-12.56535 36.71875,-20.5 -0.907369,-2.71667 -20.2199762,1.31319 -36.71875,4.34375 -4.587129,0.84258 -8.962074,1.60429 -12.65625,2.125 -1.141862,0.16095 -2.189611,0.29764 -3.1875,0.40625 -0.0832,0.009 -0.167918,0.0228 -0.25,0.0312 -0.05681,0.006 -0.09997,-0.006 -0.15625,0 -1.522767,0.15708 -2.86054,0.25544 -3.9375,0.25 -0.135241,-6.8e-4 -0.247723,0.004 -0.375,0 -0.271274,-0.007 -0.484474,-0.0104 -0.71875,-0.0312 -0.283723,-0.0242 -0.554492,-0.08 -0.78125,-0.125 -0.169697,-0.0337 -0.301402,-0.0478 -0.4375,-0.0937 -0.03404,-0.0113 -0.06182,-0.0192 -0.09375,-0.0312 -0.0446,-0.0169 -0.0846,-0.044 -0.125,-0.0625 -0.160538,-0.0731 -0.2823,-0.15212 -0.375,-0.25 -0.04361,-0.0446 -0.0964,-0.0749 -0.125,-0.125 -0.0052,-0.009 0.0047,-0.0223 0,-0.0312 -0.03017,-0.0579 -0.05238,-0.12224 -0.0625,-0.1875 5.7856,-1.67435 13.32375,-3.40617 19.21875,-5.90625 0.373354,-0.15837 0.722035,-0.33974 1.0625,-0.53125 0.04156,-0.0232 0.0839,-0.0389 0.125,-0.0625 0.07883,-0.0457 0.141665,-0.10902 0.21875,-0.15625 0.295436,-0.17944 0.572757,-0.363 0.84375,-0.5625 0.339861,-0.2502 0.666666,-0.50688 0.96875,-0.78125 0.300704,-0.27311 0.5797429,-0.55481 0.84375,-0.84375 2.6991666,-2.95412 3.5187696,-6.5194 2.8125,-6.375 -0.3857569,0.32299 -1.3951001,0.86513 -2.8125,1.46875 -0.1953575,0.0832 -0.3822712,0.16415 -0.59375,0.25 -0.236853,0.0966 -0.493764,0.18217 -0.75,0.28125 -0.220051,0.0849 -0.422843,0.16391 -0.65625,0.25 -0.04733,0.0175 -0.07713,0.045 -0.125,0.0625 -0.462411,0.16919 -0.928511,0.32983 -1.4375,0.5 -0.08173,0.0274 -0.167137,0.0351 -0.25,0.0625 -0.483475,0.15933 -0.9812,0.31288 -1.5,0.46875 -0.603768,0.18139 -1.23027,0.35984 -1.875,0.53125 -0.474066,0.12603 -0.976011,0.25704 -1.46875,0.375 -0.177386,0.0425 -0.351703,0.0838 -0.53125,0.125 -0.521996,0.11978 -1.024397,0.23625 -1.5625,0.34375 -0.168562,0.0338 -0.33008,0.0613 -0.5,0.0937 -0.383084,0.0729 -0.767078,0.15347 -1.15625,0.21875 -0.330809,0.0557 -0.665607,0.10664 -1,0.15625 -0.229175,0.0338 -0.45692,0.063 -0.6875,0.0937 -0.09334,0.0125 -0.187712,0.0193 -0.28125,0.0312 -0.475171,0.0605 -0.958308,0.1103 -1.4375,0.15625 -0.270518,0.0259 -0.54121,0.0416 -0.8125,0.0625 -0.389991,0.0302 -0.765644,0.0747 -1.15625,0.0937 -0.488901,0.0239 -0.980818,0.0263 -1.46875,0.0312 -0.250721,0.002 -0.499936,0.003 -0.75,0 -0.735017,-0.008 -1.463349,-0.0358 -2.1875,-0.0937 -0.724151,-0.0579 -1.450369,-0.13656 -2.15625,-0.25 -0.2394,-3.93671 -0.27495,-7.90023 -0.15625,-11.84375 1.350369,-0.0756 2.869016,-0.20459 4.46875,-0.34375 0.188825,-0.0164 0.370798,-0.0139 0.5625,-0.0312 0.08124,-0.007 0.168264,-0.0238 0.25,-0.0312 0.383158,-0.0353 0.793961,-0.0858 1.1875,-0.125 0.587381,-0.058 1.173515,-0.0895 1.78125,-0.15625 0.844234,-0.0936 1.717777,-0.20101 2.59375,-0.3125 0.175143,-0.0221 0.355051,-0.0397 0.53125,-0.0625 0.206313,-0.027 0.417344,-0.0657 0.625,-0.0937 0.86146,-0.11517 1.714214,-0.24167 2.59375,-0.375 1.084148,-0.16435 2.18334,-0.33772 3.28125,-0.53125 0.01004,-0.002 0.02121,0.002 0.03125,0 0.02007,-0.004 0.04243,0.004 0.0625,0 1.085204,-0.19207 2.166452,-0.43395 3.25,-0.65625 1.102738,-0.22624 2.195489,-0.45944 3.28125,-0.71875 7.9663582,-1.90261 15.2773382,-4.70049 18.875,-8.78125 2.4829,-2.31439 6.4592,-5.46505 4.5625,-8.03125 -1.008826,-1.36543 -14.40321055,2.66735 -23.4375,5.3125 -0.011021,0.003 -0.02024,-0.003 -0.03125,0 -2.009994,0.58845 -3.860897,1.11606 -5.28125,1.5 -0.687551,0.18585 -1.255969,0.33228 -1.71875,0.4375 -0.01785,0.004 -0.04503,0.0273 -0.0625,0.0312 -0.0088,0.002 -0.02256,-0.002 -0.03125,0 -0.447247,0.0992 -0.779096,0.16179 -0.9375,0.15625 -2.9069,-0.733 9.2726,-5.0898 6.375,-6.25 -5.9058,0.0307 -24.4082,4.25245 -24.1875,1.28125 0.0062,-0.0828 0.04161,-0.16518 0.09375,-0.25 0.03861,-0.0624 0.09411,-0.12399 0.15625,-0.1875 0.03876,-0.0398 0.07734,-0.0848 0.125,-0.125 0.02475,-0.0205 0.06674,-0.0418 0.09375,-0.0625 0.03831,-0.0292 0.08227,-0.0644 0.125,-0.0937 0.08737,-0.0604 0.175864,-0.1261 0.28125,-0.1875 0.238491,-0.13918 0.519542,-0.26221 0.84375,-0.40625 0.179607,-0.0798 0.390272,-0.16871 0.59375,-0.25 0.256785,-0.10312 0.489279,-0.20695 0.78125,-0.3125 0.541428,-0.19523 1.136081,-0.39025 1.78125,-0.59375 0.285146,-0.0901 0.666572,-0.18948 0.96875,-0.28125 0.367609,-0.11107 0.766906,-0.2303 1.15625,-0.34375 1.055169,-0.30903 2.080023,-0.6108 3.25,-0.9375 1.618015,-0.45032 3.32138,-0.92211 5,-1.40625 0.927748,-0.26834 1.847267,-0.56513 2.75,-0.84375 0.911045,-0.28054 1.802353,-0.55262 2.65625,-0.84375 0.04238,-0.0145 0.0828,-0.0168 0.125,-0.0312 0.797327,-0.27341 1.562544,-0.561 2.28125,-0.84375 0.66411,-0.26127 1.268297,-0.51199 1.84375,-0.78125 0.09419,-0.0441 0.189758,-0.0807 0.28125,-0.125 0.241807,-0.11654 0.465433,-0.22576 0.6875,-0.34375 2.1363228,-1.13509 3.3156712,-2.35567 2.8125,-3.625 -0.6664916,0.14243 -1.6827357,0.43147 -2.8125,0.78125 -0.751459,0.23265 -1.594396,0.52322 -2.46875,0.8125 -1.393344,0.46044 -2.789479,0.92411 -4.28125,1.4375 -0.70532,0.24273 -1.410317,0.48303 -2.09375,0.71875 -1.12154,0.38653 -2.292528,0.80239 -3.25,1.125 -0.260731,0.0878 -0.601658,0.20098 -0.84375,0.28125 -0.429056,0.14193 -0.892822,0.29357 -1.25,0.40625 -0.588015,0.18531 -1.099782,0.32416 -1.4375,0.40625 -0.4009,0.0355 -6.96005,0.74601 -14.40625,1.5 -1.009625,-2.56718 -0.44286,-2.09809 -0.21875,-2.40625 0.02241,-0.0308 0.01734,-0.0748 0.03125,-0.125 0.06952,-0.25107 0.02112,-0.78515 -0.40625,-2.09375 0.207746,0.0369 0.47624,0.0515 0.78125,0.0625 0.02466,8.6e-4 0.03724,-7e-4 0.0625,0 0.339297,0.0104 0.744028,0.0184 1.1875,0 0.734775,-0.0318 1.65074,-0.11652 2.625,-0.21875 0.188318,-0.0198 0.428954,-0.0402 0.625,-0.0625 0.281874,-0.0322 0.640739,-0.088 0.9375,-0.125 0.977899,-0.1218 1.97995,-0.26807 3.09375,-0.4375 0.02963,-0.005 0.06404,0.005 0.09375,0 0.958796,-0.14643 2.000492,-0.32352 3.03125,-0.5 0.05046,-0.009 0.105648,-0.0225 0.15625,-0.0312 0.979467,-0.16857 1.947723,-0.33972 2.96875,-0.53125 0.890749,-0.16736 1.780215,-0.31775 2.6875,-0.5 0.311822,-0.0626 0.624846,-0.1233 0.9375,-0.1875 0.834552,-0.1711 1.667133,-0.35038 2.5,-0.53125 0.886073,-0.19277 1.753452,-0.39209 2.625,-0.59375 0.688601,-0.15893 1.3278,-0.30558 2,-0.46875 0.370317,-0.09 0.698604,-0.19024 1.0625,-0.28125 1.062679,-0.26532 2.073061,-0.54158 3.0625,-0.8125 0.06238,-0.0171 0.1254678,-0.0142 0.1875,-0.0312 1.0037941,-0.27659 2.0400358,-0.5666 2.9375,-0.84375 10.322,-3.18762 15.10725,-8.01899 13.28125,-8.375 -1.4763654,-0.0938 -8.7722912,1.08195 -16.21875,2.25 -0.2453021,0.0385 -0.441997,0.0553 -0.6875,0.0937 -1.753689,0.2746 -3.508068,0.55752 -5.1875,0.8125 -0.16143,0.0247 -0.339983,0.0381 -0.5,0.0625 -1.706142,0.25762 -3.35481,0.51752 -4.8125,0.71875 -0.283685,0.0397 -0.510555,0.057 -0.78125,0.0937 -1.938678,0.25919 -3.633748,0.47266 -4.65625,0.53125 -0.03481,0.002 -0.09151,-0.002 -0.125,0 -0.0085,4.4e-4 -0.02284,-4.3e-4 -0.03125,0 -0.36808,0.0177 -0.653878,0.0208 -0.84375,0 -6.656,-0.4448 -7.65235,0.002 -16.09375,-0.4375 0.3291,-2.529 -3.98715,-9.3333 0.84375,-10.5625 0.834727,-0.21244 2.486816,-0.56851 4.71875,-1.0625 1.243913,-0.27531 2.701189,-0.61234 4.25,-0.96875 1.263492,-0.28916 2.4602,-0.56515 3.875,-0.90625 3.111112,-0.75007 6.4906,-1.61127 9.9375,-2.59375 2.34755,-0.66913 4.677629,-1.38936 6.96875,-2.15625 0.219888,-0.0736 0.437749,-0.14429 0.65625,-0.21875 0.692575,-0.23616 1.387007,-0.47418 2.0625,-0.71875 0.1387639,-0.0502 0.268331,-0.10568 0.40625,-0.15625 9.77658834,-3.58479 17.3890081,-8.0362 15.34415,-13.0315 -3.3639288,0.87758 -9.0468792,2.24762 -15.34375,3.75 -6.18862,1.47655 -12.997823,3.07622 -19.375,4.53125 -2.900737,0.65924 -5.85628,1.3139 -8.40625,1.875 -0.464636,0.10224 -1.083005,0.2459 -1.53125,0.34375 -1.274774,0.2787 -2.792282,0.60756 -3.90625,0.84375 -0.733502,0.15467 -1.632648,0.33606 -2.28125,0.46875 -1.761597,0.36038 -3.191538,0.64747 -4.1875,0.8125 -0.9585,-4.3839 -0.1973,0.10492 -0.5625,-4.40625 -0.1357,-2.06188 -0.59175,-4.06236 -1.15625,-6.03125 1.1427,-0.25946 3.9236,-1.65884 4.625,-1.875 5.5969,-1.7235 16.3338,-7.90935 7.4375,-8.15625 -0.7828,-0.0217 -7.724,1.42408 -14.4375,2.5 -5.4925,-8.62788 -4.4878,-16.58271 -5,-25 4.6351,-2.55791 3.8471,-1.11884 12.4375,-3.5625 4.2943,-1.2603 27.1971,-7.17562 26.875,-13.21875 -0.962955,0.2063 -2.215109,0.44245 -3.6875,0.6875 -1.472391,0.24505 -3.156024,0.48626 -5,0.75 -1.62095,0.23184 -3.410745,0.48702 -5.21875,0.71875 -0.248763,0.0319 -0.467454,0.062 -0.71875,0.0937 -0.291985,0.037 -0.579895,0.057 -0.875,0.0937 -1.812559,0.22508 -3.654198,0.44816 -5.53125,0.65625 -4.325281,0.47951 -8.704835,0.91146 -12.59375,1.1875 -0.01969,10e-4 -0.04283,-10e-4 -0.0625,0 -2.927707,0.207 -5.552092,0.33155 -7.6875,0.34375 -0.66662,0.004 -1.284089,-0.0118 -1.84375,-0.0312 -0.04402,-0.002 -0.08169,0.002 -0.125,0 -1.855465,-0.0711 -3.125703,-0.26813 -3.40625,-0.65625 -1.1789,-1.6309 0.37255,-2.2268 -0.59375,-4.375 1.355725,-0.28591 2.647547,-0.40422 4,-0.625 0.289916,-0.0473 0.577981,-0.0962 0.875,-0.15625 0.06273,-0.0126 0.124387,-0.0179 0.1875,-0.0312 0.05001,-0.0106 0.105981,-0.0201 0.15625,-0.0312 0.240862,-0.053 0.502484,-0.12178 0.75,-0.1875 0.17658,-0.0471 0.350691,-0.10138 0.53125,-0.15625 0.120633,-0.0365 0.252417,-0.0847 0.375,-0.125 0.636835,-0.21155 1.329641,-0.4713 2.03125,-0.8125 0.266855,-0.12931 0.534279,-0.28512 0.8125,-0.4375 0.07184,-0.0393 0.146107,-0.084 0.21875,-0.125 0.28402,-0.16091 0.577987,-0.34378 0.875,-0.53125 0.0774,-0.0489 0.171666,-0.10546 0.25,-0.15625 0.462155,-0.30032 0.940574,-0.6281 1.4375,-1 0.326006,-0.24384 0.6888,-0.53466 1.03125,-0.8125 0.254878,-0.2074 0.547978,-0.42886 0.8125,-0.65625 0.109273,-0.094 0.232773,-0.21492 0.34375,-0.3125 0.536941,-0.47236 1.077214,-0.97127 1.65625,-1.53125 -0.461188,0.23465 -0.908944,0.4361 -1.375,0.625 -0.466056,0.1889 -0.962692,0.35245 -1.4375,0.5 -0.474808,0.14755 -0.950056,0.29564 -1.4375,0.40625 -0.236971,0.0545 -0.478118,0.10969 -0.71875,0.15625 -0.251649,0.0478 -0.493836,0.0853 -0.75,0.125 -0.503965,0.0781 -1.03813,0.13753 -1.5625,0.1875 -0.493713,0.0471 -0.984855,0.0991 -1.5,0.125 -0.03199,0.002 -0.06167,-0.002 -0.09375,0 -0.06111,0.003 -0.126058,-0.003 -0.1875,0 -1.041926,0.0451 -2.1311,0.0462 -3.28125,0.0312 -1.935636,-0.0252 -4.022694,-0.0942 -6.375,-0.1875 -1.0734,-2.8418 -0.3646,-1.81585 -1.1875,-4.28125 -0.07967,-0.23883 3.139743,-0.67452 7.5625,-1.3125 0.226094,-0.0326 0.485935,-0.0599 0.71875,-0.0937 2.313327,-0.33605 4.78805,-0.7237 7.5,-1.1875 0.47565,-0.0814 0.958291,-0.16444 1.4375,-0.25 1.717166,-0.30659 3.438572,-0.63684 5.125,-1 0.199703,-0.0428 0.395407,-0.0813 0.59375,-0.125 0.652696,-0.14416 1.272938,-0.28427 1.90625,-0.4375 0.513788,-0.12369 1.003042,-0.24519 1.5,-0.375 1.091544,-0.28512 2.143757,-0.59059 3.125,-0.90625 0.690601,-0.22287 1.349888,-0.44903 1.96875,-0.6875 0.275842,-0.10609 0.521641,-0.20322 0.78125,-0.3125 0.349698,-0.14689 0.68217,-0.28482 1,-0.4375 0.06472,-0.031 0.124172,-0.0625 0.1875,-0.0937 0.211956,-0.1047 0.397994,-0.20507 0.59375,-0.3125 0.155594,-0.085 0.292579,-0.16326 0.4375,-0.25 0.08926,-0.0534 0.164936,-0.10217 0.25,-0.15625 0.219451,-0.13911 0.43458,-0.29392 0.625,-0.4375 0.191074,-0.14468 0.371579,-0.28828 0.53125,-0.4375 0.0708,-0.0657 0.123055,-0.12085 0.1875,-0.1875 0.08444,-0.0867 0.145399,-0.1618 0.21875,-0.25 0.102198,-0.12315 0.201464,-0.24882 0.28125,-0.375 0.01973,-0.0312 0.04418,-0.0623 0.0625,-0.0937 0.04974,-0.085 0.08579,-0.16361 0.125,-0.25 0.03339,-0.0723 0.06795,-0.14553 0.09375,-0.21875 0.01006,-0.0294 -0.0088,-0.0642 0,-0.0937 0.04238,-0.13587 0.0783,-0.26707 0.09375,-0.40625 0.0176,-0.15846 0.01882,-0.30596 0,-0.46875 -0.0012,-0.0105 0.0014,-0.0207 0,-0.0312 -0.0067,-0.0501 -0.02098,-0.1057 -0.03125,-0.15625 -0.02473,-0.12046 -0.04841,-0.25218 -0.09375,-0.375 -0.0278,-0.079 -0.101802,-0.15268 -0.1875,-0.21875 -0.09299,-0.0717 -0.217968,-0.13034 -0.375,-0.1875 -0.158861,-0.0578 -0.342514,-0.11248 -0.5625,-0.15625 -0.212738,-0.042 -0.45301,-0.0641 -0.71875,-0.0937 -0.538158,-0.0622 -1.140359,-0.11 -1.875,-0.125 -0.723709,-0.0148 -1.528597,-0.0236 -2.40625,0 -0.873974,0.0235 -1.817364,0.0692 -2.8125,0.125 -0.753682,0.0422 -1.536498,0.0988 -2.34375,0.15625 -0.267439,0.0188 -0.508884,0.0422 -0.78125,0.0625 -2.194699,0.16462 -4.507776,0.36347 -6.875,0.59375 -1.470241,0.14302 -2.951477,0.28599 -4.40625,0.4375 -0.853919,0.0883 -1.731695,0.19344 -2.5625,0.28125 -1.114232,0.11843 -2.266502,0.23209 -3.3125,0.34375 -5.21718,0.55691 -9.473913,1.0086 -10.5625,0.9375 l -2.34375,-6.90625 c -0.8981,5.4598 -2.9423,21.41685 -1.5625,26.78125 0.1359,0.5273 -19.00525,-1.98845 -19.71875,-1.78125 -2.7346,0.7941 -22.5756,-3.95068 -23.9375,-2.59375 -4.3804,4.36385 7.62785,8.35764 17.09375,11.9375 8.2923,3.13605 22.24505,6.82415 23.96875,8.96875 2.812,3.4978 1.36585,1.9372 1.90625,6.9375 0.2694,2.49 -6.45005,2.0583 -10.40625,2.5 3.7694,2.1175 7.056,2.3739 8.3125,4.5625 1.9701,3.4337 1.39125,5.45095 1.53125,6.40625 -4.6036,-0.9893 -13.08465,-0.72305 -14.84375,-1.40625 -11.9317,-1.99847 -37.44795,-10.26007 -37.78125,-9.25 -0.589,3.6938 0.7152,4.17505 2.8125,7.03125 8.3171,5.22652 18.71,6.04896 29.4375,9.4375 2.694,-0.0161 13.9698,4.7646 18.75,4.4375 -1.2177,5.758 -13.11735,1.74085 -19.65625,4.40625 -2.2935,0.9348 16.0569,4.45435 16.375,6.46875 0.3368,2.1427 5e-5,2.9697 -0.28125,5.125 -5.7022,-0.1973 -13.98595,-0.82035 -21.65625,-4.40625 -15.4293,-7.214 -25.71215,-13.38615 -25.28125,-11.78125 0.9291,8.2192 22.20075,18.3369 27.84375,20.375 4.6132,1.6666 10.69855,1.8873 17.78125,3.4375 -0.076,0.4204 1.7715,2.42565 -0.75,2.53125 -6.9317,0.2904 -26.63115,-7.46865 -26.90625,-6.03125 -0.1069,0.5531 7.85655,7.7951 12.53125,9.3125 6.4117,2.0812 11.04125,2.98605 10.09375,5.84375 -0.3125,1.77 -9.1446,0.49171 -12.5,0.0937 0.8998,-1.44553 -25.57635,-6.26261 -36.15625,-14.28125 -0.5228,-0.0418 -1.59195,5.38865 0.21875,8.46875 1.3491,2.293 5.99715,5.94915 8.34375,7.59375 4.003,2.8057 10.8918,6.3046 9.5625,8.1875 -0.8848,1.2532 -4.4257,0.48185 -5.5625,0.34375 -2.9929,-0.3637 -9.20365,-3.8589 -11.03125,-2.1875 -1.0029,0.916 0.9855,2.89025 4.75,4.90625 5.7951,3.1042 13.9681,2.2908 13.625,6.3125 -0.5367,3.2955 -20.3402,-2.62386 -24.3125,-0.3125 -7.8361,5.59302 14.6675,19.28865 26.5625,18.1875 5.1964,-0.6092 17.5086,6.38957 21.75,8.875 -4.6087,3.2023 -2.9096,7.10735 -4.875,11.34375 -8.2222,4.43693 -45.2545,-19.91987 -43.1875,-16.875 -3.2161,10.27167 36.32255,30.77111 41.46875,28.625 1.141,2.8862 1.27695,-1.17299 -0.40625,4.40625 -6.5752,-1.05716 -13.117,-2.11529 -16.25,-2.90625 -4.5074,-1.4986 -8.52675,-4.15815 -13.09375,-5.34375 -2.3557,-1.2648 -5.12815,-2.08785 -7.71875,-3.71875 -2.8232,-0.8727 -6.9275,-5.28245 -9.75,-6.40625 2.5082,5.0732 8.6589,8.2636 12.3125,12.0625 3.877,3.2414 10.98095,8.6848 15.40625,10.125 2.5661,1.7417 10.75405,5.7397 11.09375,7.0625 0.1889,0.7379 -9.09935,-1.14305 -10.09375,1.21875 -14.0652,-2.09745 -28.1223,-6.73238 -42.1875,-10.09375 -11.0879,9.65217 52.36455,28.23675 51.65625,28.59375 -4.5245,0.0855 -8.8703,-1.06396 -13.3125,-0.0312 -11.1646,-2.50865 -12.33545,-4.4113 -15.65625,-4.125 -1.0855,0.5033 20.79765,14.28005 20.15625,14.78125 -0.9354,0.7315 -23.26215,-6.30153 -21.53125,-2.8125 3.4636,5.95753 24.14585,13.62935 4.78125,12.84375 -2.096,1.239 -6.30875,-3.0795 -8.53125,-1.875 -1.9743,0.5644 -15.24735,-7.15115 -16.53125,-6.03125 -0.7058,3.3851 34.29695,20.66372 37.28125,22.5625 23.0664,14.67633 -46.5323,-14.0011 -48.0625,-5.53125 -0.2517,13.69981 31.61515,18.02002 47.21875,26.3125 -0.8242,1.75599 -1.03385,0.14147 -1.96875,1.84375 -9.0943,0.12053 -16.76455,1.11772 -17.46875,2.96875 -0.7394,1.94478 3.42125,4.3448 10.46875,8.03125 -1.4021,1.91171 -2.8576,3.75887 -4.375,5.5625 -5.6093,2.4302 -24.2258,5.96534 -26.625,4.90625 1.2543,5.38431 20.90785,8.55875 18.09375,13.09375 -3.8315,4.49177 -47.64975,-0.45829 -49.90625,4.9375 -5.0429,5.80905 30.2314,21.06745 25.25,26.93755 -7.4389,7.9719 -50.1747,-5.7161 -60.125,-1.1876 -4.5932,1.8769 22.2301,18.7673 26.3125,23 8.5249,8.2403 2.4866,12.4481 -11.4375,11.2813 -6.8367,-0.6352 -9.9142,-5.0619 -26.875,-2.5313 -1.8513,0.5399 -20.8812,-19.705 -23.3125,-19.4374 -7.8732,0.8654 18.0932,29.0138 6.3125,29.5312 -2.9942,-0.6435 -14.65615,-16.2665 -18.53125,-16.2812 -2.4013,-0.01 -1.40615,7.5671 -3.15625,8.4687 -1.96836,1.014 -6.34409,-2.3695 -9.625,-5.2813 l 0,43.4376 c 857.89583,0 1715.7917,0 2573.6875,0 -0.585,-118.69785 -0.2472,-3.396 0.031,-122.0938 -8.1603,4.73901 -17.4307,6.98311 -26.5312,9 -8.6284,3.61181 -17.122,7.82272 -26.4375,9.375 -2.3053,0.43325 -10.2344,2.24566 -4.0625,0.59375 1.8758,-0.49744 4.38,-1.4022 0.9688,-0.46875 -8.8835,2.45734 -18.1777,2.95803 -27.3126,3.9375 -28.5778,2.4454 -37.928,11.20434 -66.1562,6.15625 -6.9766,-1.28911 -3.0009,-18.36341 -9.25,-21.75 1.7365,1.75175 -18.7382,13.23497 -20.5312,13.46875 -2.6324,-0.71061 -11.2058,-5.23446 -13.7813,-6.1875 0.3312,-2.40661 15.0267,-9.55863 15.125,-12.15625 0.158,-3.2093 -20.61,8.39062 -30.4375,5.6875 -7.1183,-1.95791 11.4316,-13.39659 9.9062,-14.15625 -5.9728,-2.97495 -10.1418,5.34091 -16.5937,1.375 -10.8281,-6.65603 20.687,-31.10409 18.4375,-34.1875 -2.3843,-3.2683 -46.2849,12.04289 -49.0312,6.125 -2.5962,-6.2926 23.0225,-9.95377 35.25,-26.3125 0.012,-4.2235 -11.0949,0.79616 -18.9688,5.125 -7.3977,4.0662 -18.6868,6.73955 -19.3438,4.84375 -0.5,-2.07376 -0.593,-1.50946 -3.9374,-2.375 -0.6531,-2.57436 -1.2433,-5.15827 -1.7813,-7.75 7.6109,-2.14716 19.3372,-5.34125 26.9063,-9.34375 7.5349,-3.9848 29.1159,-12.22712 25.0312,-20.0625 -4.5885,2.3568 -49.5944,18.9972 -55.3125,15.9375 -1.2758,-2.60565 -2.0091,-3.8619 0.875,-7.65625 1.7188,-2.26115 9.5821,-8.64275 15.8125,-10.34375 11.3055,-3.08652 1.1376,-5.54261 -18.1562,-2.53125 -0.3464,-1.00911 -3.6838,-3.8723 0.6874,-7 5.8169,-4.16187 52.8855,-14.53528 51.2188,-25.96875 -1.5801,-4.73083 -59.2391,11.12355 -60,6.21875 5.7856,-1.67435 13.3237,-3.40617 19.2188,-5.90625 5.9197,-2.5111 7.8585,-9.5136 6.875,-9.3125 -1.7558,1.47004 -15.8622,7.12758 -27.1563,5.3125 -0.2394,-3.93671 -0.2749,-7.90023 -0.1563,-11.84375 12.1173,-0.67829 35.85,-3.68318 43.375,-12.21875 2.4829,-2.31439 6.4591,-5.46505 4.5626,-8.03125 -1.4606,-1.9769 -29.385,7.5115 -31.5,7.4375 -2.9069,-0.733 9.2726,-5.0898 6.375,-6.25 -5.9058,0.0307 -24.4083,4.25245 -24.1876,1.28125 0.2212,-2.9712 30.9095,-7.2699 28.6876,-12.875 -3.6187,0.7733 -15.7077,5.30525 -18.4376,5.96875 -0.4009,0.0355 -6.96,0.74601 -14.4062,1.5 -1.6154,-4.10749 0.7739,-0.43748 -0.5938,-4.625 3.6287,0.64507 22.8735,-2.79281 33.5626,-6.09375 10.322,-3.18762 15.1072,-8.01899 13.2812,-8.375 -3.05,-0.1938 -30.7906,4.8978 -33.8438,4.5625 -6.6559,-0.4448 -7.6523,0.002 -16.0937,-0.4375 0.3291,-2.529 -3.9871,-9.3333 0.8437,-10.5625 5.8723,-1.4945 52.9587,-10.23359 48.2188,-21.8125 -11.3361,2.95737 -47.0638,11.30477 -55.0312,12.625 -0.9585,-4.3839 -0.1974,0.10492 -0.5626,-4.40625 -0.1357,-2.06188 -0.5917,-4.06236 -1.1562,-6.03125 1.1427,-0.25946 3.9236,-1.65884 4.625,-1.875 5.5969,-1.7235 16.3338,-7.90935 7.4375,-8.15625 -0.7828,-0.0217 -7.724,1.42408 -14.4375,2.5 -5.4925,-8.62788 -4.4878,-16.58271 -5,-25 4.6351,-2.55791 3.8471,-1.11884 12.4375,-3.5625 4.2943,-1.2603 27.1971,-7.17562 26.875,-13.21875 -9.2196,1.97521 -45.0438,6.20415 -46.75,3.84375 -1.1789,-1.6309 0.3725,-2.2268 -0.5937,-4.375 4.556,-0.96082 8.3595,0.0339 16.3437,-7.6875 -5.1556,2.62315 -10.4468,2.29693 -18.7187,1.96875 -1.0734,-2.8418 -0.3647,-1.81585 -1.1876,-4.28125 -0.2838,-0.8511 39.6832,-3.85807 36.7813,-11.71875 -0.9439,-2.6834 -36.2629,2.38605 -39.7813,2.15625 l -2.3437,-6.90625 c -0.8981,5.4598 -2.9423,21.41685 -1.5625,26.78125 0.1359,0.5273 -19.0052,-1.98845 -19.7188,-1.78125 -2.7346,0.7941 -22.5755,-3.95068 -23.9374,-2.59375 -4.3805,4.36385 7.6278,8.35764 17.0937,11.9375 8.2923,3.13605 22.245,6.82415 23.9687,8.96875 2.812,3.4978 1.3659,1.9372 1.9063,6.9375 0.2694,2.49 -6.45,2.0583 -10.4063,2.5 3.7694,2.1175 7.0561,2.3739 8.3126,4.5625 1.9701,3.4337 1.3912,5.45095 1.5312,6.40625 -4.6036,-0.9893 -13.0847,-0.72305 -14.8438,-1.40625 -11.9317,-1.99847 -37.4479,-10.26007 -37.7812,-9.25 -0.589,3.6938 0.7152,4.17505 2.8125,7.03125 8.3171,5.22652 18.71,6.04896 29.4375,9.4375 2.694,-0.0161 13.9698,4.7646 18.75,4.4375 -1.2177,5.758 -13.1173,1.74085 -19.6562,4.40625 -2.2935,0.9348 16.0569,4.45435 16.375,6.46875 0.3368,2.1427 0,2.9697 -0.2813,5.125 -5.7022,-0.1973 -13.986,-0.82035 -21.6563,-4.40625 -15.4293,-7.214 -25.7121,-13.38615 -25.2812,-11.78125 0.9291,8.2192 22.2007,18.3369 27.8438,20.375 4.6132,1.6666 10.6985,1.8873 17.7812,3.4375 -0.076,0.4204 1.7715,2.42565 -0.75,2.53125 -6.9317,0.2904 -26.6312,-7.46865 -26.9062,-6.03125 -0.1069,0.5531 7.8565,7.7951 12.5312,9.3125 6.4117,2.0812 11.0412,2.98605 10.0938,5.84375 -0.3126,1.77 -9.1447,0.49171 -12.5,0.0937 0.8997,-1.44553 -25.5764,-6.26261 -36.1563,-14.28125 -0.5228,-0.0418 -1.5919,5.38865 0.2187,8.46875 1.3491,2.293 5.9972,5.94915 8.3438,7.59375 4.003,2.8057 10.8918,6.3046 9.5625,8.1875 -0.8848,1.2532 -4.4257,0.48185 -5.5625,0.34375 -2.9929,-0.3637 -9.2037,-3.8589 -11.0312,-2.1875 -1.0029,0.916 0.9855,2.89025 4.75,4.90625 5.7951,3.1042 13.9681,2.2908 13.625,6.3125 -0.5368,3.2955 -20.3403,-2.62386 -24.3126,-0.3125 -7.836,5.59302 14.6676,19.28865 26.5626,18.1875 5.1964,-0.6092 17.5086,6.38957 21.75,8.875 -4.6087,3.2023 -2.9096,7.10735 -4.875,11.34375 -8.2222,4.43693 -45.2546,-19.91987 -43.1876,-16.875 -3.2161,10.27167 36.3226,30.77111 41.4688,28.625 1.141,2.8862 1.2769,-1.17299 -0.4062,4.40625 -6.5752,-1.05716 -13.117,-2.11529 -16.25,-2.90625 -4.5074,-1.4986 -8.5268,-4.15815 -13.0938,-5.34375 -2.3557,-1.2648 -5.1282,-2.08785 -7.7188,-3.71875 -2.8232,-0.8727 -6.9275,-5.28245 -9.75,-6.40625 2.5082,5.0732 8.659,8.2636 12.3126,12.0625 3.8769,3.2414 10.9809,8.6848 15.4062,10.125 2.5661,1.7417 10.7541,5.7397 11.0938,7.0625 0.1889,0.7379 -9.0994,-1.14305 -10.0938,1.21875 -14.0652,-2.09745 -28.1223,-6.73238 -42.1875,-10.09375 -11.0879,9.65217 52.3646,28.23675 51.6563,28.59375 -4.5245,0.0855 -8.8704,-1.06396 -13.3126,-0.0312 -11.1646,-2.50865 -12.3354,-4.4113 -15.6562,-4.125 -1.0855,0.5033 20.7977,14.28005 20.1562,14.78125 -0.9354,0.7315 -23.2621,-6.30153 -21.5312,-2.8125 3.4636,5.95753 24.1459,13.62935 4.7812,12.84375 -2.096,1.239 -6.3087,-3.0795 -8.5312,-1.875 -1.9743,0.5644 -15.2474,-7.15115 -16.5312,-6.03125 -0.7058,3.3851 34.2969,20.66372 37.2812,22.5625 23.0664,14.67633 -46.5323,-14.0011 -48.0625,-5.53125 -0.2517,13.69981 31.6152,18.02002 47.2187,26.3125 -0.8242,1.75599 -1.0338,0.14147 -1.9687,1.84375 -9.0943,0.12053 -16.7646,1.11772 -17.4687,2.96875 -0.7394,1.94478 3.4212,4.3448 10.4687,8.03125 -1.4021,1.91171 -2.8576,3.75887 -4.375,5.5625 -5.6093,2.4302 -24.2258,5.96534 -26.625,4.90625 1.2543,5.38431 20.9079,8.55875 18.0937,13.09375 -3.8315,4.49177 -47.6497,-0.45829 -49.9062,4.9375 -5.0429,5.80905 30.2314,21.06745 25.25,26.93755 -7.4389,7.9719 -50.1747,-5.7161 -60.125,-1.1876 -4.5932,1.8769 22.2301,18.7671 26.3125,23 8.5249,8.2401 2.4866,12.4481 -11.4375,11.2813 -6.8367,-0.6352 -9.9142,-5.0621 -26.875,-2.5313 -1.8513,0.5399 -20.8812,-19.7048 -23.3125,-19.4374 -7.8732,0.8656 18.0932,29.0138 6.3125,29.5312 -2.9942,-0.6435 -14.6562,-16.2663 -18.5312,-16.2812 -2.4013,-0.01 -1.4062,7.5671 -3.1563,8.4687 -3.3137,1.7071 -13.4837,-9.0589 -13.6875,-9.0313 -7.4602,1.1134 -1.6903,10.7019 -9.0312,12.5313 -4.0707,0.948 -6.1459,-11.8868 -10.1876,-10.8125 -4.7346,1.2585 -11.4409,16.4015 -16.3124,17.0625 -20.2772,9.9196 13.7598,-22.5801 -4.4376,-26.9375 -4.1639,-0.9972 -16.5123,5.8466 -25.5312,6.625 -6.7521,0.8577 -7.781,-9.2742 -12.9688,-8.3125 -6.2215,1.1535 -17.7948,18.1746 -20.6562,14.6563 -17.0023,-20.908 -22.9561,15.0366 -35.9375,14.8437 -5.4693,-0.2779 2.8843,-14.0738 -3.8437,-13.5937 -5.3344,0.3804 -25.8086,15.1711 -30.0938,14.375 -7.1498,-1.3289 -9.6451,-7.0926 -16.4375,-9.75 -5.224,-2.0441 13.8972,-18.407 8.5313,-20.0938 3.9193,-12.4676 -29.2152,0.6833 -43.3438,4.5 8.0797,-8.323 16.6145,-12.5349 -16.3125,-13.9375 -1.512,-2.0531 22.4581,-4.1848 32.1875,-16.3437 -15.4172,-1.121 -29.1012,3.8313 -38.9062,2.5937 -1.622,-2.6245 15.7581,-12.08848 14.1874,-14.34375 -1.1286,-1.62084 -21.846,1.73105 -23.75,1.28125 -7.8404,-1.85268 -16.0158,-2.63627 -2.9687,-7.6875 -2.7954,-6.44437 -7.1981,-12.31329 0.094,-18.65625 -11.3096,3.04159 -10.0568,-6.01888 -11,-7.65625 -1.6941,-3.80369 28.0245,-12.54918 26.625,-15.75 -1.0768,-2.46509 -26.6484,-0.57899 -34.25,-1.84375 -7.6005,-1.26476 21.9738,-8.27966 1.9063,-10.3125 -13.74,-1.39184 -17.764,-7.35332 -3.2187,-9.125 21.1964,-2.58194 -5.3831,10.05834 22.0937,1 9.3526,-2.21373 -22.1158,-6.7539 7.875,-9.3125 3.7555,-1.35503 24.0606,-22.36488 23.25,-25.75 -1.4761,-1.12 -15.6363,12.12688 -17.9063,11.5625 -2.5543,-1.20454 -12.4343,6.36406 -14.8437,5.125 -22.2538,0.78558 -3.1024,-9.18426 5.5,-12.84375 1.9892,-0.84628 -10.9874,-1.73733 -12.0625,-2.46875 -0.737,-0.50132 6.2152,-4.05919 4.9688,-4.5625 -3.8172,-0.28627 -8.1782,-0.084 -12.2188,-0.125 -5.1051,-1.03261 -10.3633,-0.57078 -15.5625,-0.65625 -0.8142,-0.35702 3.4543,-2.616 8.4063,-5.71875 -2.8243,-7.00577 -10.2682,1.08944 -13.2188,-5.875 5.8169,-3.387 17.6291,-2.95784 15.7188,-6.90625 -1.1433,-2.36173 -11.843,-0.48075 -11.625,-1.21875 0.3893,-1.3228 12.8633,-2.44586 15.8124,-4.1875 5.0854,-1.44023 13.2629,-6.88371 17.7188,-10.125 4.1988,-3.79884 8.2105,-9.86423 11.0938,-14.9375 -3.2437,1.12379 -7.9735,5.53358 -11.2188,6.40625 -2.9765,1.63094 -6.1677,2.45411 -8.875,3.71875 -5.2487,1.1856 -9.8524,3.84514 -15.0312,5.34375 -7.5473,1.65761 -32.0461,4.53592 -38.8438,5.96875 -2.1535,-5.62516 21.2876,-7.07797 14.7188,-12.03125 -0.5308,-3.79779 -33.7414,0.89923 0.8437,-12.21875 10.0228,-3.80159 4.2736,8.12811 10.75,5.71875 1.3494,-0.50203 39.7473,-17.24901 38.7813,-25.9375 1.4636,-3.34574 -38.0875,16.85797 -39.3438,15.125 -1.7247,-4.35601 17.1146,-11.23488 18.9688,-14.0625 1.3204,-2.01506 -3.5551,-1.33819 -7.8438,1 -1.2983,0.70786 -34.1851,11.4587 -34.625,10.1875 -1.761,-5.63167 7.724,-3.07611 7.2812,-8.9375 -18.748,2.14293 1.1716,-6.70804 4.7188,-7.625 2.4186,1.26142 5.9235,-0.70528 8.4688,-0.0937 3.3735,0.87854 7.221,0.9125 10.75,0.34375 4.4094,0.1811 8.721,-0.1286 13,-0.71875 3.1295,-0.53724 6.182,-1.02507 9.1874,-1.96875 3.0091,-0.94159 5.7891,-4.06624 8.2813,-6.1875 1.9054,-1.62179 -23.6336,3.38983 -24.25,0.0937 -0.3952,-4.0216 8.9944,-3.20842 15.6563,-6.3125 4.325,-2.01596 6.6203,-3.99031 5.4687,-4.90625 -2.1014,-1.67142 -9.2479,1.82386 -12.6875,2.1875 -1.3065,0.13812 -5.3582,0.9094 -6.375,-0.34375 -1.5277,-1.8828 6.3994,-5.38185 11,-8.1875 2.6967,-1.64455 8.0125,-5.30074 9.5625,-7.59375 2.0821,-3.08008 -0.9932,-4.72939 -1.5937,-4.6875 -3.0845,2.36276 -34.702,18.54302 -39.875,17.59375 -2.1724,0.68323 -12.944,-0.42681 -17.5313,0.125 -1.5782,-5.33797 20.6119,-4.63177 18.2187,-7 -1.1384,-1.12758 -14.5241,0.34574 -15.0312,-2.15625 -1.0899,-2.85764 4.3813,-1.91881 11.75,-4 5.3724,-1.51741 14.5285,-8.75944 14.4062,-9.3125 -0.317,-1.43738 -22.9399,6.32167 -30.9062,6.03125 -2.8979,-0.10564 -0.7874,-2.11079 -0.875,-2.53125 8.1398,-1.55023 15.1351,-1.77097 20.4375,-3.4375 6.4844,-2.03808 36.1822,-18.49942 37.25,-26.71875 0.4952,-1.60482 -16.5794,10.91102 -34.3125,18.125 -8.8148,3.58592 -18.3217,4.20899 -24.875,4.40625 -0.318,-2.15522 -0.7306,-2.98228 -0.3438,-5.125 0.3652,-2.0144 21.4794,-5.534 18.8438,-6.46875 -7.5153,-2.66538 -21.1938,1.35181 -22.5938,-4.40625 5.4937,0.3271 19.3727,-2.48497 22.4688,-2.46875 3.7882,-0.009 7.5415,0.005 11.1875,-0.84375 3.548,-0.69252 7.0434,-1.74377 10.1563,-3.625 1.7826,-0.34434 6.2427,-2.21978 8.8124,-3.71875 2.4105,-2.85618 9.9582,-7.93106 9.2813,-11.625 -0.4182,-2.28204 -9.9308,4.25458 -12.6875,4.875 -3.8311,0.17015 -7.271,2.62053 -11.125,2.90625 -3.4173,0.29244 -6.6042,1.26007 -9.7188,2.53125 -3.1757,0.83516 -7.6917,1.33297 -10.8124,2.71875 -2.0223,0.68328 -13.2098,1.10441 -18.5,2.09375 0.1603,-0.95523 -1.451,-6.0663 0.8124,-9.5 1.444,-2.18857 5.2306,-2.4451 9.5626,-4.5625 -4.5462,-0.44169 -12.2784,-0.007 -11.9688,-2.5 0.621,-5.00037 -0.7941,-6.09588 2.4375,-9.59375 1.9814,-2.14455 20.0648,-2.18449 29.1563,-6.1875 4.321,-1.90289 11.8981,-4.89688 11.5312,-8.25 -2.2572,-1.17118 -34.8736,9.85968 -39.4062,6.25 -1.6703,-1.32998 -5.4131,-9.65144 -1.5626,-9.5 4.7212,0.18563 17.8823,0.57254 24.4376,-1.03125 3.0125,-0.73726 19.9441,-3.90915 18.8437,-10 -0.2429,-0.96303 -17.5125,4.07541 -20.6563,3.28125 -0.8197,-0.20714 -21.8747,2.65237 -21.7187,2.125 1.5863,-5.36432 -4.5928,-11.88396 -5.625,-17.34375 z m 455.5,299.46875 c -0.05,-0.21568 -0.074,-0.43323 -0.062,-0.65625 -0.2916,0.30072 -0.2449,0.51989 0.062,0.65625 z m -2048,0 c -0.05,-0.21568 -0.0745,-0.43323 -0.0625,-0.65625 -0.2916,0.30072 -0.2449,0.51989 0.0625,0.65625 z m 61.53125,-294.8125 c -2.5734,0.688 -3.1612,2.3433 -2.1875,5.3125 1.0428,1.8943 2.24955,3.3223 4.03125,4.4375 2.6368,1.1949 5.61675,1.5117 8.65625,1.3125 2.7264,-0.0793 5.89635,1.01045 7.34375,0.21875 1.7455,-0.9141 2.7401,-3.1135 -0.375,-3.1875 -3.0552,-0.2438 -6.0113,-0.9121 -8.9375,-1.75 -3.1667,-1.4358 -6.53185,-2.94525 -8.53125,-6.34375 z m 2048.00005,0 c -2.5734,0.688 -3.1613,2.3433 -2.1876,5.3125 1.0428,1.8943 2.2496,3.3223 4.0313,4.4375 2.6368,1.1949 5.6167,1.5117 8.6563,1.3125 2.7264,-0.0793 5.8963,1.01045 7.3437,0.21875 1.7455,-0.9141 2.7401,-3.1135 -0.375,-3.1875 -3.0552,-0.2438 -6.0113,-0.9121 -8.9375,-1.75 -3.1667,-1.4358 -6.5319,-2.94525 -8.5312,-6.34375 z m -1602.75005,5.125 c -1.41474,1.8794 -3.11501,3.98135 0.125,3.84375 3.03432,0.962 6.38885,2.851 9.5,1.0625 3.15039,-1.9173 0.77073,-4.4524 -1.84375,-4.5 -2.56627,-0.3226 -5.24613,0.30065 -7.78125,-0.40625 z m 40.46875,6.78125 c -4.18689,0.1052 -12.89803,2.4659 -13.46875,2.4375 -16.00813,1.68823 2.65243,3.98243 4.625,10.40625 -0.37163,3.4695 -9.47514,5.53925 -7.375,6.65625 2.7329,-0.1756 14.3105,-2.56955 16.96875,-3.21875 1.88731,-0.9888 4.62889,-0.5143 4.34375,-3.5625 -0.81696,-2.7399 -0.89672,-5.44365 -2.5625,-7.78125 -0.58916,1.1544 -1.17518,1.8689 -2.375,1.625 -0.62441,0.027 -0.14465,-0.1787 -2.28125,-0.375 -11.29802,-1.0382 3.88796,-1.9144 4.3125,-5.375 0.0783,-0.6368 -0.7919,-0.8476 -2.1875,-0.8125 z m 1020.5625,24.875 c -2.6641,0.4058 -5.2287,2.18908 -7.1562,2.9375 -0.9866,0.16426 -1.6024,2.42094 -3.25,2.9375 -1.606,0.67077 -4.0271,0.76851 -7.1876,1.40625 -3.1594,0.63773 -11.0184,-2.70457 -14.1562,-0.40625 -2.3796,1.74294 14.0615,7.65362 16.5938,7.96875 4.1639,0.34151 11.4931,2.45836 15.5,1.125 3.3232,-0.67533 3.4354,-8.57193 3.875,-11.28125 0.2047,-2.64207 -1.8761,-4.89745 -4.2188,-4.6875 z M -39.59375,718.1875 c -1.8777,0.0845 -3.44825,2.24178 -3.28125,4.71875 0.3822,2.7093 0.483,10.60585 3.375,11.28125 3.4861,1.3333 9.84465,-0.7835 13.46875,-1.125 2.2018,-0.3152 16.5082,-6.22595 14.4375,-7.96875 -2.047425,-1.72373 -6.415366,-0.282 -9.625,0.28125 -0.534938,0.0939 -1.013477,0.16163 -1.46875,0.1875 -0.455269,0.0259 -0.875138,0.0172 -1.21875,-0.0625 -2.75,-0.6377 -4.8529,-0.73545 -6.25,-1.40625 -1.4348,-0.5165 -1.98565,-2.7732 -2.84375,-2.9375 -1.6776,-0.7483 -3.89975,-2.5318 -6.21875,-2.9375 -0.1268,-0.0131 -0.2495,-0.0371 -0.375,-0.0312 z m 2047.99995,0 c -1.8777,0.0845 -3.4482,2.24178 -3.2812,4.71875 0.3822,2.7093 0.483,10.60585 3.375,11.28125 3.4861,1.3333 9.8447,-0.7835 13.4688,-1.125 2.2018,-0.3152 16.5081,-6.22595 14.4374,-7.96875 -2.7299,-2.2983 -9.5635,1.04395 -12.3124,0.40625 -2.75,-0.6377 -4.853,-0.73545 -6.25,-1.40625 -1.4348,-0.5165 -1.9857,-2.7732 -2.8438,-2.9375 -1.6776,-0.7483 -3.8997,-2.5318 -6.2188,-2.9375 -0.1268,-0.0131 -0.2494,-0.0371 -0.375,-0.0312 z m -631.5,30.9375 c -9.3608,2.50107 -9.8731,12.77794 -0.5624,10.53125 4.8839,-0.0819 11.854,3.55589 15.5,-2.125 2.7923,-2.13185 6.4831,-8.88286 0.031,-7.78125 -4.9249,-0.55972 -10.2659,0.54452 -14.9688,-0.625 z m -617.56245,13.84375 c -1.8548,-0.0351 -3.04158,0.1757 -2.9375,0.8125 0.56422,3.4606 20.76544,4.3368 5.75,5.375 -2.83961,0.1963 -2.2014,0.402 -3.03125,0.375 -1.5946,0.2439 -2.40448,-0.4706 -3.1875,-1.625 -2.21387,2.3376 -2.28923,5.04135 -3.375,7.78125 -0.37896,3.0482 3.27295,2.5737 5.78125,3.5625 3.53289,0.6492 7.27413,0.1994 10.90625,0.375 2.79116,-1.117 7.11891,-1.4055 6.625,-4.875 0.78244,-2.7097 5.56995,-3.6149 6.03125,-3.75 -0.10789,0.005 -0.36736,-0.003 -0.78125,0.0312 -8.47524,-3.6446 13.66712,-6.2831 -3.875,-5.625 -0.7585,0.0284 -12.34174,-2.3323 -17.90625,-2.4375 z M 806.1875,764.5 c -3.36926,0.7069 -6.93309,0.0837 -10.34375,0.40625 -3.47473,0.0476 -6.62447,2.5827 -2.4375,4.5 4.13482,1.7885 8.56105,-0.1005 12.59375,-1.0625 4.30608,0.1376 2.06774,-1.96435 0.1875,-3.84375 z m 7.46875,8.71875 c -6.5144,0.7196 -11.59296,2.4841 -18.1875,2.8125 -6.71874,0.0486 -23.41334,1.0414 -4.6875,3.625 8.659,-0.1901 14.08013,0.1733 22.34375,-1.5 8.10819,-1.6417 -0.21777,-2.5648 0.53125,-4.9375 z m -18.5,14.90625 c -3.08073,1.2756 -9.24452,1.6231 -6.1875,7 0.99696,2.2065 5.45807,5.92175 9.25,7.46875 4.58756,0.9564 9.86233,0.19865 13.5,-1.03125 4.41305,-2.3583 7.69942,-1.1699 10.03125,-4.9375 -2.77138,0.4054 -7.17419,-2.56195 -9.78125,-2.96875 -2.18762,-0.6449 -4.44266,-0.8775 -6.71875,-0.9375 -3.79344,-0.0992 -6.36577,-4.68975 -10.09375,-4.59375 z m -46,10.25 c -4.90962,-0.002 -9.22636,0.9062 -12.46875,3.3125 -0.59695,0.8348 12.42039,6.56735 21.625,8.03125 20.79551,3.55655 42.07605,-1.9567 38.28125,-2.21875 -12.59978,-0.87008 -32.70864,-9.1191 -47.4375,-9.125 z m -18.5,18.21875 -4.1875,3.34375 c 1.38575,1.8943 6.06913,2.29105 8.4375,3.40625 3.50398,1.1949 6.89844,2.10545 10.9375,1.90625 3.62402,-0.0793 19.79457,-0.0208 21.71875,-0.8125 2.31922,-0.9141 3.63979,-3.1135 -0.5,-3.1875 -4.0608,-0.2438 -20.20444,0.55665 -24.09375,-0.28125 -4.20813,-1.4358 -9.65479,-0.9765 -12.3125,-4.375 z m 111.75,35.84375 c -8.90019,0.20743 -38.71051,3.01124 -41.40625,2.65625 -2.72854,0.29446 5.82291,2.60916 5.9375,4.6875 0.5079,2.7093 0.62524,10.60585 4.46875,11.28125 4.63312,1.3333 13.12213,-0.7835 17.9375,-1.125 2.92727,-0.3152 21.93934,-6.22595 19.1875,-7.96875 -3.62865,-2.2983 -12.72068,1.04395 -16.375,0.40625 -3.65443,-0.6377 -6.45527,-0.73545 -8.3125,-1.40625 -1.90603,-0.5165 21.53471,-4.25166 20.96875,-8.4375 -0.2787,-0.0935 -1.13479,-0.12363 -2.40625,-0.0937 z m -86.5625,1.3125 c -5.43823,1.1695 -11.6172,0.0653 -17.3125,0.625 -7.46001,-1.1016 -3.19801,5.64935 0.0312,7.78125 4.21565,5.6809 12.28869,2.043 17.9375,2.125 10.76717,2.2467 10.16944,-8.03015 -0.65625,-10.53125 z m 340.21875,18.96875 c -1.8001,0.0399 -3.6575,0.55736 -5.4375,3.65625 3.6232,0.3414 10.0139,2.4583 13.5,1.125 2.892,-0.6754 -2.5566,-4.67941 -6.2812,-4.75 -0.5776,-0.0109 -1.1813,-0.0445 -1.7813,-0.0312 z m -7.9375,25.84375 c -2.8138,0.71349 -5.2259,3.4931 0.25,5.21875 3.0343,0.962 12.2321,6.2885 15.3438,4.5 -8.9145,-3.52591 6.6055,-6.96687 -7.8438,-9.3125 -2.5663,-0.3226 -5.2149,0.30065 -7.75,-0.40625 z m -10.8438,9.78125 c 0.5637,2.3727 2.2116,4.20205 8.3126,5.84375 6.2172,1.6733 10.2659,1.3099 16.7812,1.5 14.0898,-2.5836 1.5234,-3.5764 -3.5312,-3.625 -4.962,-0.3284 -16.6608,-2.99915 -21.5626,-3.71875 z m 64.5313,38.375 c -1.9997,3.3985 -4.8646,3.34545 -8.0313,4.78125 -2.9263,0.8379 -5.9132,1.5062 -8.9687,1.75 -3.1149,0.074 -2.12,2.2734 -0.375,3.1875 1.4478,0.7917 4.6173,-0.29805 7.3437,-0.21875 3.0393,0.1992 5.4888,-0.27385 8.125,-1.46875 1.7821,-1.1152 2.9576,-1.4182 4,-3.3125 z"
+ style="color:#000000;fill:#0f1015;fill-opacity:0.24909746;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccscccccccsscccccccccccccccccccccscccscscccscccccscsccccccccccccscccscccccccccccccscccscccccccccscsccccccccccccccccccccccccccccccccccccscccccccccccccccccccccccccscscccccccccsscccccscccccccccccccccccccccccccccccccccccsccccccsccccccccsccccccccccscccsccccccscccccccsccsccccccccccscsccssccccccccccccccccssccccccccccccccccccccccccccsccccccscscscccccccccccccsccscccccsccccscccccccccccccccsccccccccccscccccccccscsccccccsssccsccccccccscccsssscscccscscccccccccccccccccccccccccccccccccccscsccssscccccscccscsccccsccsccccccccscscccccccccccccsccscccccsccccccccccsccccccsccccccccccccccscscccccscscccccccccccccccsssccccccccccssscccccccscccccccccccccccccsccscccccscccscccccccssscscccccccssccscccsccccccccscssccccccscccccccccccsssccccccccccccccccccscsccsccccccccccscccssccccscccccccccccccccccccccccsccscscsccccccccccccccccccccscccccscscscccccccccccscsssccscscsccscccccccccsscccsccscsscsccccccccccccccccsscccscccscccssscccscccccccccccccccccsccccscccccsccsccscccscscccccccccccccccccccsccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccccccccccscscccccccccccscccccccccccccccccsccccccccccccccsccccccccccscccccccccccccccccccsccccccccccccccccccccccccccccccccccscccccccccccccccccsccscccccccccccccccccccccssccccccccccccccccccccccsccccccccccccscccsssccccccscscscsccscccccccccccccsccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccccsscccccccccccccccccccccccccccccccccccccccccccccccccccsccssccccccccccccccsccccccccscccscccccccccccccccccc" />
+ <path
+ sodipodi:nodetypes="cscscccsscccscccccccsccccsscsccccscccsccccsccccsscsscccscccccccccccccsccccccsccccsccssccczczccccsccccc"
+ inkscape:connector-curvature="0"
+ d="m 1530.829,877.28631 c -5.5744,4.98747 -22.284,19.05264 -29.7695,21.62662 -7.8921,2.71376 -26.7755,10.48929 -26.1738,11.66105 0.6016,1.17175 15.779,-1.28482 25.6748,-5.48604 9.8958,-4.20122 25.4998,-15.47288 31.731,-21.35891 z m -230.3138,8.25956 c 2.4567,1.67867 8.5796,5.36431 22.3282,11.26816 3.9832,1.71045 10.8305,6.54681 14.3946,7.98758 8.1916,3.3115 30.9475,8.45329 37.3995,9.96224 0.7654,0.17898 22.2732,2.2338 22.3738,1.45417 12.9373,-0.29219 -16.2395,-1.97289 -22.8456,-4.24916 -6.0031,-2.06841 -25.7665,-8.364 -31.6483,-10.50794 -3.1685,-1.15493 -19.1956,-11.50411 -23.6997,-13.4382 -13.4786,-5.78803 -12.6211,-5.68554 -14.9858,-7.30138 z m 9.5042,-19.07874 c 6.888,5.141 20.5088,12.26285 34.8625,15.63745 10.7842,1.87083 14.2566,4.34978 31.0475,5.28931 -7.6091,-2.68156 -20.1752,-7.45075 -34.1902,-10.73977 -5.281,-1.24156 -12.2621,-6.08404 -16.6126,-8.03719 -7.2689,-3.26338 -10.9789,-5.37348 -14.8615,-8.27132 z m 197.2242,-70.167 c -3.6553,8.08607 -11.6143,12.70556 -18.2749,17.46863 -8.4007,5.45621 -9.5802,5.98012 -16.0969,9.13111 -4.3524,2.10446 -15.6307,6.54983 -15.4092,7.36498 0.2215,0.81516 7.604,-1.16414 8.3873,-1.48045 8.4115,-2.24109 16.0362,-4.84964 24.6371,-10.43588 4.3005,-2.79312 9.0969,-7.40955 12.0442,-10.03602 2.9474,-2.62647 5.1435,-3.78924 5.8407,-6.10003 z m -174.4749,19.79359 c 6.888,5.14102 17.9089,9.82544 32.2626,13.20001 14.3537,3.37457 29.8778,5.79638 44.5938,4.86248 0.7855,-0.0489 8.9305,-0.48331 8.8814,-1.26883 -8.1197,-2.02927 -17.0653,-2.86837 -25.193,-3.72748 -9.435,-0.95494 -16.4254,-0.97324 -27.1885,-3.50365 -14.1047,-3.31603 -26.1,-8.63655 -32.3063,-13.26873 z m 181.2925,11.55827 c -20.1125,15.03955 -26.891,17.45933 -39.3113,20.74178 -0.8494,0.0988 -15.0624,3.72247 -14.8465,4.54994 0.2159,0.82746 11.1509,-0.61501 11.9404,-0.94371 12.127,-3.20495 22.0406,-2.81263 42.5265,-18.13128 z M 1358.149,722.59661 c 2.7537,3.26309 8.2375,4.99478 14.9384,8.04716 6.701,3.05238 12.9873,6.00248 20.3002,7.53121 5.7407,1.2001 17.4178,2.61035 17.4996,1.82488 0.082,-0.78547 -11.7299,-3.69918 -17.6748,-5.47486 -6.6167,-1.97636 -11.4348,-4.54871 -17.9,-7.4937 -6.4651,-2.94499 -13.2075,-7.36421 -15.3,-9.84372 z m 119.0293,-49.0528 c -8.7299,5.61802 -21.5942,9.72115 -27.5189,10.70307 -3.9898,0.66123 -13.8937,2.45827 -13.8528,3.24367 0.041,0.7854 12.9392,-0.32466 13.7246,-0.36555 10.6967,-0.63873 20.1407,-2.0368 29.4751,-8.04378 z m -22.1532,-65.58124 c -6.3425,4.06563 -18.0196,8.65903 -25.475,8.66238 -0.7925,-0.0112 -7.9806,0.38246 -8.9555,1.09377 -0.6403,0.46711 13.2004,0.57686 13.9929,0.56565 7.6526,0.0151 15.4845,-0.51196 22.6313,-5.59687 z m -75.1658,60.08426 c 12.111,8.01982 21.7453,10.42305 36.6719,9.74062 0.7854,-0.0327 11.9511,-0.005 11.9184,-0.79064 -0.033,-0.7854 -9.045,-1.91386 -12.5309,-1.84374 -12.1034,0.24343 -22.9996,-4.89342 -34.6562,-12.6124 z m 121.7594,91.0721 c -5.8288,6.49373 -14.3262,12.20952 -21.1875,15.65609 -7.9812,3.92676 -15.5557,7.52656 -20.6125,8.98125 -0.7609,0.21274 -14.5842,3.77974 -14.3714,4.54059 0.2127,0.76086 14.262,-0.76663 15.0215,-0.98436 5.4618,-1.56582 14.1636,-5.30276 22.25,-9.28125 7.2017,-3.77522 14.1891,-6.87818 20.1405,-12.6437 z M 1340,778.6875 c 2.7051,1.23919 13.8888,6.19279 28.4375,9.6875 13.903,3.33954 20.9834,4.3372 30.4753,4.90625 0.7847,0.047 19.8321,1.17284 19.7994,0.38744 -0.033,-0.7854 -13.841,-1.93581 -20.7369,-3.06245 -9.642,-1.57532 -13.9365,-2.87365 -27.5503,-6.14371 -14.2631,-3.42609 -25.9211,-9.49465 -28.525,-10.68746 z m 49.7188,-151.28125 c 7.2015,2.22439 12.4357,4.05557 18.6625,4.91251 6.2269,0.85693 18.4289,1.08356 18.4126,0.29704 -0.016,-0.78657 -12.1662,-2.35359 -15.4684,-3.05325 -3.9035,-0.82706 -6.3489,-1.80376 -10.6064,-3.02185 -3.1798,-0.85427 -6.6852,-2.30307 -9.7937,-3.20936 z m 55.5495,-41.26218 c -2.0722,-0.81702 -3.7474,0.76295 -4.7936,1.09374 -1.0462,0.33079 -4.2771,1.88281 -7.2781,1.94684 -0.7868,0.0142 -12.0108,2.40992 -11.9946,3.19664 0.016,0.78672 11.798,0.67478 12.5847,0.65598 2.6418,-0.67501 11.264,-0.7847 12.7156,-3.29374 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#3b3d4b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.11134505;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ id="path4903" />
+ <path
+ sodipodi:nodetypes="cssccccccsscccccccsccccccccccccsccccccscsccccccccccccscscsccccscccccccscscsscccccccsccccccccscsccccccccsccccsccccccsccsccccccccczsccccczcccccsccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4463"
+ d="m 1444.9375,589.53775 c -5.328,2.4941 -6.7419,2.87204 -10.6566,3.3757 -1.3632,0.17539 -8.2423,-0.68823 -12.5213,-0.13936 -1.3633,0.17486 11.306,2.43598 12.6483,2.14039 3.1765,0.16677 7.2105,0.2881 10.0232,-0.53294 1.1632,-0.36089 3.6636,-1.08044 4.6776,-2.18846 1.2333,-1.78838 -2.1159,-2.55292 -4.1712,-2.65533 z m 11.3312,24.23097 c -8.4262,3.07806 -13.3366,4.16359 -22.9738,4.63701 -1.309,0.0655 -13.8883,-0.99022 -13.8229,0.31881 0.065,1.309 13.9395,3.16659 15.2486,3.10214 9.7031,-0.47766 16.1678,-0.34172 25.2341,-3.65363 z m -68.6625,17.31254 c 2.6109,0.59696 5.6922,1.83143 7.8626,2.73124 2.1482,0.89065 4.6886,1.71138 8.0624,1.78125 0.035,7.2e-4 0.059,-5.6e-4 0.094,0 4.9714,0.24349 4.5042,-0.30825 9.6575,0.23199 1.3262,0.19174 10.8406,-0.42079 10.983,-1.75322 0.1425,-1.33243 -9.852,-1.37694 -11.1888,-1.4699 -8.7669,-0.15848 -15.1567,-2.92386 -23.645,-5.09635 z m 75.3783,-3.68702 c -1.3882,0.58569 -4.9448,1.66003 -7.178,2.27306 -3.8064,2.7434 -19.781,3.49658 -20.253,4.48276 0.033,1.30883 11.8266,1.51369 13.1356,1.48908 2.3143,-0.24621 6.0611,-0.60589 8.4362,-1.32669 1.0916,-0.93233 6.2929,-1.66995 7.7969,-2.29321 z m -81.2595,33.12452 c 11.1161,3.93155 24.233,11.07048 57.3062,6.88749 1.301,-0.1634 11.5576,-3.60839 11.3939,-4.90936 -0.1636,-1.30098 -10.4307,0.86828 -11.7316,1.03216 -32.2851,4.08333 -45.179,-4.70784 -56.9372,-8.86651 z m -0.8125,8.1999 -1.9062,2.78129 c 4.4251,2.81845 9.8006,5.02231 14.8063,6.40627 2.8497,0.99488 13.2979,3.29703 21.8445,3.15062 6.4849,-0.11108 11.944,-1.50881 11.7605,-2.78923 -0.253,-1.32427 -8.6778,-0.15208 -11.9462,-0.40257 -6.1047,-0.46786 -14.3131,-1.57075 -21.0777,-3.42136 -4.602,-1.6646 -8.8791,-4.06042 -13.4812,-5.72502 z m 96.6812,11.48133 c -5.8966,2.53659 -13.651,5.58774 -19.9312,6.11251 -0.9067,0.26773 -27.1204,1.52522 -27.5175,2.46568 9.1973,2.69176 21.3959,2.97874 27.73,2.50307 2.4059,-0.18722 4.8423,-0.72774 10.6562,-2.6875 l 0.063,-0.0312 0.094,-0.0312 c 3.6221,-1.49002 6.9749,-1.10539 10.5562,-3.46252 z M 1370.5312,695.125 c 0,0 8.6178,7.248 16.25,7.875 19.1165,1.57045 29.179,9.32445 65.7377,2.76873 1.2926,-0.22907 16.7766,-5.33467 16.5475,-6.6273 -0.229,-1.29263 -15.7852,2.49484 -17.0778,2.72393 -35.75,6.4107 -44.633,-2.20849 -64.8011,-3.86534 -5.8332,-0.4792 -13.5,-6.75 -13.5,-6.75 z m 124.2576,23.31878 c -6.1275,3.44725 -10.0837,6.18871 -16.2888,8.14997 -13.7489,3.15899 -11.6647,4.222 -22.0004,5.71885 -1.372,0.0823 -15.9221,4.72905 -15.7325,6.09043 0.1895,1.36138 15.0776,-0.85729 16.4199,-1.15293 13.5555,-1.74411 12.5587,-3.39997 22.5632,-5.81255 6.0027,-1.85652 10.8871,-4.98784 14.719,-7.1562 z m -135.32,4.24372 -3.0751,5.06871 c 2.3289,2.35031 6.0809,3.96647 10.2938,6.08754 4.2129,2.12107 9.4313,3.99106 15.1875,5.59375 11.5125,3.20538 15.4722,3.4657 24.0816,4.50627 1.3102,0.15836 14.6306,-0.54602 14.6224,-1.86572 -0.01,-1.31969 -17.0186,-2.45539 -18.318,-2.68623 -7.8339,-1.39171 -7.9834,-1.68781 -19.0419,-4.76682 -5.5293,-1.5395 -8.8719,-3.34464 -12.6564,-5.25 -3.7097,-1.51532 -7.831,-6.92862 -11.0936,-6.6875 z m 136.9748,10.10006 c -4.1734,4.03569 -8.258,7.88906 -13.0686,10.93119 l -0.062,0.0312 -0.031,0.0312 c -13.862,9.81617 -26.6222,17.81207 -44.9912,17.70523 -1.3195,-0.0249 -12.9001,-0.77547 -12.9083,0.54422 -0.01,1.3197 11.8826,2.35194 13.2023,2.34335 19.4727,0.11326 32.7621,-6.07526 47.4788,-16.4678 l 0,0.0312 c 5.0484,-3.19249 7.8104,-5.57579 12.0625,-9.6875 z m -117.6292,30.16385 c -1.309,0.0573 -15.5682,-4.9196 -15.5109,-3.6106 0.057,1.309 13.7682,7.03281 15.0403,7.34669 8.9671,2.21258 22.9592,5.83334 33.625,6.40625 19.6694,1.05653 30.1785,5.07279 49.4764,-2.31306 1.2688,-0.43717 12.4009,-5.58225 11.914,-6.83281 -0.4868,-1.25055 -11.1962,3.02205 -12.4266,3.55777 -18.0979,6.92663 -29.1629,1.63827 -48.7138,0.5881 -12.4397,-0.71008 -22.3682,-2.8527 -33.4044,-5.14234 z m 123.3236,3.05869 c -1.7644,1.11566 -7.3702,5.06205 -12.1068,7.98987 -4.7365,2.92782 -9.8549,5.04877 -11.0937,5.53128 l 0,0.0312 c -11.4196,4.45938 -15.6076,7.69327 -27.1943,8.2853 -1.3111,0.067 -15.5154,1.41956 -15.4172,2.72863 0.098,1.30907 15.0518,0.74472 16.3609,0.64642 16.9743,-1.28069 16.3802,-3.32163 27.9381,-6.97285 l 0.062,-0.0312 0.062,-0.0312 c 2.6151,-1.01854 7.694,-3.21669 12.4807,-6.17549 4.7868,-2.9588 8.9684,-5.52341 10.6755,-6.6029 z m -161.6692,13.02115 c -1.2162,-0.002 -2.3514,1.0088 -2.4891,2.21719 -0.1377,1.20838 0.7409,2.44902 1.9265,2.72031 11.2629,2.99113 22.362,9.04009 35.6563,10.65625 9.3562,1.13741 32.3611,5.25485 43.9222,0.61492 0.1554,-1.30094 -22.0017,-3.47214 -23.3027,-3.6274 -10.6264,-1.29398 -9.5391,-1.59942 -20.0506,-2.50458 -12.4145,-1.069 -24.4145,-6.9146 -34.9438,-9.98294 -0.2333,-0.0659 -0.4763,-0.0975 -0.7187,-0.0937 z m 166.7782,24.65337 c -5.8973,6.2956 -16.0623,15.09487 -21.2114,17.43296 -2.1791,1.29137 -14.1533,5.78941 -13.6039,7.02342 0.5494,1.234 13.8139,-2.54235 15.0189,-3.15272 7.257,-3.34645 16.4335,-5.01228 21.7936,-13.46867 z m -110.9144,29.09511 c -14.0018,-0.63473 -31.2238,-2.15234 -43.6993,-6.82153 -6.1041,-2.28458 -11.6774,-6.29008 -18.9352,-8.75297 -1.9997,1.11824 -4.1017,3.39054 -5.0023,5.40431 5.7997,2.54985 14.3548,6.63184 22.9168,8.59679 14.1263,3.59615 32.4173,4.78659 43.0438,4.78834 8.3677,-0.49373 32.4868,3.76439 41.4626,-5.77475 -23.3291,5.87988 -25.7845,3.19453 -39.7864,2.55981 z m 117.4735,1.5328 c -7.8434,5.33152 -15.7582,9.57933 -23.4293,12.31154 -21.4818,7.49346 -43.5008,7.05101 -66.9706,10.15718 -24.0522,3.4857 -43.0515,3.50815 -63.0445,-0.67077 -1.3008,-0.17182 -16.4289,-4.77476 -16.6007,-3.47394 15.6538,9.10912 30.4033,10.88813 45.3977,10.68591 11.232,-0.15147 22.6015,-1.41466 34.5914,-1.54125 l 0.1562,0 0.1563,-0.0312 c 23.0071,-3.04495 46.4481,-0.26545 69.2624,-8.38346 8.084,-2.97293 19.1183,-7.42836 24.6956,-11.66944 z m -206.3498,37.17494 c 8.7071,3.31429 16.2598,7.42194 25.6687,11.48128 16.5201,5.79359 34.8433,7.57646 51.0938,10.9687 16.3004,2.99575 30.3119,1.46822 46.2187,-0.0312 7.952,-0.7666 33.7056,-3.5494 32.3373,-8.06032 -0.4006,-0.94676 -23.5448,2.17514 -32.8373,3.09157 -15.1716,1.23482 -30.6543,2.95468 -44.6875,0.0937 -16.1013,-4.39046 -33.9647,-3.93981 -50.1562,-10.65625 -8.8167,-3.80382 -15.6862,-8.87592 -25.125,-12.46875 z m 224.5623,12.08133 c -5.3597,3.21819 -12.6443,8.30449 -16.0498,11.3687 -30.839,20.2752 -83.0957,22.11694 -115.688,21.2812 -22.0296,-3.83033 -59.1607,-7.55985 -73.974,-17.79369 -6.2959,-4.59464 -17.3021,-11.67545 -25.995,-14.06583 l -4.1562,7.03743 c 7.415,2.03899 19.3728,8.13288 25.8325,12.84709 21.6772,9.21565 55.8168,17.35168 78.2215,18.46877 39.1486,-8.86414 89.1166,4.44112 119.4492,-22.6773 3.5621,-3.20508 9.4762,-5.61277 14.2519,-8.4803 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#1f202b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.2026782;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ transform="matrix(0.77060963,0,0,1,251.17862,-31.199024)"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#1f202b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.92665625;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 1121.3432,911.48031 c -5.328,2.4941 -6.8165,1.66554 -10.7312,2.16924 -1.3632,0.1754 -10.7427,-0.82281 -15.0217,-0.27401 -1.3633,0.1749 13.3935,4.10207 14.7358,3.80647 3.1765,0.1668 7.8431,0.77558 10.6558,-0.0454 1.1632,-0.3609 5.9434,-2.05538 6.9574,-3.16348 1.2333,-1.7883 -4.5408,-2.3904 -6.5961,-2.4928 z m 11.2777,16.10455 c -8.4262,3.078 -6.9052,1.40119 -16.5424,1.87459 -1.309,0.065 -13.8883,-0.9902 -13.8229,0.3188 0.065,1.309 13.9395,3.1666 15.2486,3.1021 9.7031,-0.4776 9.631,1.03951 18.6973,-2.27239 z m -46.0952,19.63132 c 0.7692,0.5276 8.0546,0.38539 9.7515,0.55699 1.3262,0.1917 10.6297,-1.31452 10.7721,-2.64692 0.1425,-1.3325 -9.852,-1.377 -11.1888,-1.4699 -8.7669,-0.1585 -13.4698,-2.84265 -21.9581,-5.01515 -2.791,7.23539 5.8245,8.31427 12.6233,8.57498 z m 59.9253,10.17485 c -3.9604,4.21035 -22.6775,4.00315 -25.2809,6.48418 0.033,1.3088 12.2739,0.53704 13.5829,0.51244 4.5575,-0.59968 10.1033,-0.74756 13.8466,-2.20913 z m -78.2778,16.12321 c 11.1161,3.9316 20.5684,9.12873 53.6416,4.94573 1.301,-0.1634 11.5576,-3.6084 11.3939,-4.9094 -0.1636,-1.3009 -10.4307,0.8683 -11.7316,1.0322 -32.2851,4.0833 -39.4239,-1.0483 -51.1821,-5.207 z m -1.7358,8.20807 -1.9062,2.7813 c 4.4251,2.8185 6.3213,4.12858 11.327,5.51258 2.8497,0.9949 14.0359,3.21575 22.5825,3.06935 6.4849,-0.1111 11.944,-2.48377 11.7605,-3.76417 -0.253,-1.3243 -8.6778,0.0916 -11.9462,-0.15886 -6.1047,-0.4679 -14.3131,-1.81454 -21.0777,-3.66514 -4.602,-1.6646 -6.1378,-2.11046 -10.7399,-3.77506 z"
+ id="path5019"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssccccccssccccsccccccccccsccccccscsccc" />
+ <path
+ transform="matrix(0.76481263,0,0,1,850.41363,168.29908)"
+ id="path5027"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#3b3d4b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.55771089;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 371.54273,750.87953 c -8.7299,5.618 -21.96979,7.94023 -27.89449,8.92213 -3.9898,0.6612 -13.59323,3.26251 -13.55233,4.04791 0.041,0.7854 12.63873,-0.6693 13.42413,-0.7102 10.6967,-0.6387 20.51629,-0.71544 29.85069,-6.72244 z m -15.39264,-28.18087 c -6.3425,4.06563 -12.08534,5.95885 -19.54074,5.9622 -0.7925,-0.0112 -7.9806,0.38246 -8.9555,1.09377 -0.6403,0.46711 13.2004,0.57686 13.9929,0.56565 7.6526,0.0151 11.87887,0.63705 16.69704,-2.89669 z m -66.0015,59.22247 c 12.111,8.0199 18.51526,8.58468 33.44186,7.90228 0.7854,-0.033 11.9511,0 11.9184,-0.7907 -0.033,-0.7854 -9.045,-1.9138 -12.5309,-1.8437 -12.1034,0.2434 -19.76956,-3.05498 -31.42616,-10.77398 z m 6.62946,-42.47897 c 7.2015,2.22439 12.4357,4.05557 18.6625,4.91251 6.2269,0.85693 18.4289,1.08356 18.4126,0.29704 -0.016,-0.78657 -12.1662,-2.35359 -15.4684,-3.05325 -3.9035,-0.82706 -6.3489,-1.80376 -10.6064,-3.02185 -3.1798,-0.85427 -6.2345,-2.87758 -9.343,-3.78387 z m 52.89749,-31.34829 c -6.02747,4.84606 -15.82183,2.52344 -22.47049,5.91054 0.016,0.78672 13.53,1.29744 14.2909,1.14346 2.69267,-0.5449 9.17451,-0.36571 10.62611,-2.87475 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscccccccccccccsccczczcccccscc" />
+ <path
+ transform="matrix(-1.2977566,0,0,1,1770.2072,-265.42827)"
+ sodipodi:nodetypes="cssccccccsscccccccccccccccsccccccscscccccccccscscscccssczzccccscscssccccccccsccc"
+ inkscape:connector-curvature="0"
+ id="path5017"
+ d="m 782.85863,1051.947 c -5.328,2.4941 -6.7419,2.872 -10.6566,3.3757 -1.3632,0.1754 -16.4549,-3.1517 -13.0088,0.1856 4.21462,4.0816 11.39454,3.8148 12.73684,3.5192 3.1765,0.1668 7.12196,-1.0907 9.93466,-1.9117 1.1632,-0.3609 4.151,-1.5679 5.165,-2.676 1.2333,-1.7883 -2.1158,-2.3904 -4.1711,-2.4928 z m 12.69567,8.2291 c -8.4262,3.078 -17.05521,9.449 -26.69241,9.9224 -1.309,0.065 -14.33099,1.3079 -14.26559,2.6169 0.065,1.309 14.38219,0.8685 15.69129,0.804 9.7031,-0.4776 17.85003,-3.6738 26.91633,-6.9857 z m -77.87049,15.9337 c 3.90239,2.5634 26.31383,8.0017 32.76382,2.6466 -12.02321,0.4045 -21.45215,-3.5872 -31.1152,-6.2216 z m 84.23214,3.7816 c -1.3882,0.5857 -4.9448,1.66 -7.178,2.2731 -3.8064,2.7434 -19.781,3.4965 -20.253,4.4827 0.033,1.3088 11.8266,1.5137 13.1356,1.4891 2.3143,-0.2462 6.0611,-0.6059 8.4362,-1.3267 1.0916,-0.9323 6.2929,-1.6699 7.7969,-2.2932 z m -102.33164,33.699 c 11.1161,3.9316 26.535,11.5301 59.6082,7.3471 1.301,-0.1634 11.5576,-3.6084 11.3939,-4.9094 -0.1636,-1.3009 -10.4307,0.8683 -11.7316,1.0322 -32.2851,4.0833 -45.179,-4.7078 -56.9372,-8.8665 z m -4.53111,17.392 -1.9062,2.7813 c 4.4251,2.8185 9.8006,5.0223 14.8063,6.4063 2.8497,0.9949 13.2979,3.297 21.8445,3.1506 6.4849,-0.1111 11.944,-1.5088 11.7605,-2.7892 -0.253,-1.3243 -8.6778,-0.1521 -11.9462,-0.4026 -6.1047,-0.4679 -14.3131,-1.5708 -21.0777,-3.4214 -4.602,-1.6646 -8.8791,-4.0604 -13.4812,-5.725 z m 125.10202,-1.6174 c -5.8966,2.5366 -13.73954,6.8517 -20.01974,7.3765 -0.9067,0.2677 -32.25562,7.3851 -32.65272,8.3255 9.1973,2.6918 26.79674,-2.0768 33.13084,-2.5525 7.53668,-2.6238 13.89992,-2.2712 21.10378,-6.6717 z m -137.5197,25.9556 c 0,0 7.28972,6.4437 14.92192,7.0707 19.1165,1.5704 29.179,9.3244 65.7377,2.7687 1.2926,-0.2291 16.7766,-5.3347 16.5475,-6.6273 -0.229,-1.2926 -15.7852,2.4948 -17.0778,2.7239 -35.75,6.4107 -44.633,-2.2085 -64.8011,-3.8653 -5.8332,-0.4792 -13.5,-6.75 -13.5,-6.75 z m 147.72027,4.4749 c -6.1275,3.4473 -10.52114,7.615 -16.55442,10.3331 -11.21762,5.0538 -13.08131,6.0604 -22.17747,8.0169 -1.35497,0.2915 -15.65649,2.5459 -15.46689,3.9073 0.1895,1.3614 9.52689,1.8498 16.15429,1.0302 6.6274,-0.8195 16.00222,-4.3483 23.09443,-7.3063 7.09221,-2.958 15.57963,-7.9752 19.41153,-10.1436 z m -160.81905,12.9763 -4.13756,5.0687 c 2.3289,2.3503 7.14336,3.9664 11.35626,6.0875 4.2129,2.1211 9.4313,3.9911 15.1875,5.5938 11.5125,3.2053 15.4722,3.4657 24.0816,4.5062 1.3102,0.1584 14.6306,-0.546 14.6224,-1.8657 -0.01,-1.3197 -17.0186,-2.4554 -18.318,-2.6862 -7.8339,-1.3917 -7.9834,-1.6878 -19.0419,-4.7668 -5.5293,-1.5395 -8.8719,-3.3447 -12.6564,-5.25 -3.7097,-1.5154 -7.831,-6.9287 -11.0936,-6.6875 z m -22.71861,29.9164 c -1.2162,0 -2.3514,1.0088 -2.4891,2.2172 -0.1377,1.2084 0.7409,2.449 1.9265,2.7203 11.2629,2.9911 22.362,9.0401 35.6563,10.6563 20.58882,3.4844 87.54445,3.0744 58.24831,0.7792 -10.6264,-1.294 -47.16791,-5.3911 -57.67941,-6.2963 -12.4145,-1.069 -24.4145,-6.9146 -34.9438,-9.9829 2.95408,-8.7985 -0.4763,-0.098 -0.7187,-0.094 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#1f202b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.56699276;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ sodipodi:nodetypes="csscsscccscscccccccccccscccsccssccczcscccsccccc"
+ inkscape:connector-curvature="0"
+ d="m 240.91589,832.90899 c 2.7537,3.2631 10.09255,6.25871 16.79345,9.31111 6.701,3.0523 13.16397,5.08319 20.47687,6.61199 5.7407,1.2001 17.4178,2.6103 17.4996,1.8249 0.082,-0.7855 -11.7299,-3.6992 -17.6748,-5.4749 -6.6167,-1.9764 -11.4348,-4.5487 -17.9,-7.4937 -6.4651,-2.945 -13.2075,-7.3642 -15.3,-9.8437 z m 147.56178,-48.823 c -8.7299,5.618 -20.6225,10.98512 -26.5472,11.96702 -3.9898,0.6612 -17.16213,4.75622 -17.12123,5.54162 0.041,0.7854 15.33807,-2.0375 16.72802,-2.31882 10.58063,-2.14152 19.43401,-3.64542 28.76841,-9.65242 z m -24.44993,-68.68356 c -6.3425,4.06563 -17.31291,10.95706 -24.76831,10.96041 -0.7925,-0.0112 -9.30564,2.79538 -10.28054,3.50669 -0.6403,0.46711 13.02372,-1.03176 13.81622,-1.04297 7.6526,0.0151 16.27953,-3.61429 23.42633,-8.6992 z m -90.53624,52.96035 c 12.111,8.0199 21.7453,10.4231 36.6719,9.7407 0.7854,-0.033 11.9511,0 11.9184,-0.7907 -0.033,-0.7854 -9.045,-1.9138 -12.5309,-1.8437 -12.1034,0.2434 -22.9996,-4.8934 -34.6562,-12.6124 z m -53.99305,93.40551 c 2.7051,1.2392 13.8888,6.1928 28.4375,9.6875 13.903,3.3395 20.9834,4.3372 30.4753,4.9062 0.7847,0.047 19.8321,1.1729 19.7994,0.3875 -0.033,-0.7854 -13.841,-1.9358 -20.7369,-3.0625 -9.642,-1.5753 -13.9365,-2.8736 -27.5503,-6.1437 -14.2631,-3.4261 -25.9211,-9.4946 -28.525,-10.6874 z m 70.12439,-130.71392 c 7.2015,2.22439 9.43228,4.63007 15.65908,5.48701 6.2269,0.85693 14.63046,1.65807 14.61416,0.87155 -0.016,-0.78657 -12.85694,-3.87101 -16.08675,-5.00657 -6.28139,-2.20845 -6.02817,-3.36648 -12.97989,-5.4269 z m 69.35504,-27.8438 c -0.041,0.0767 -1.7975,1.90041 -2.8437,2.2312 -1.0462,0.33079 -4.2771,1.88281 -7.2781,1.94684 -0.7868,0.0142 -13.717,1.92244 -13.7008,2.70916 0.016,0.78672 13.5042,1.16226 14.2909,1.14346 2.6418,-0.67501 10.4515,-0.82532 11.9031,-3.33436 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#3b3d4b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.72806287;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ id="path5025"
+ transform="matrix(-1.3007314,0,0,1,1213.3496,75.375224)" />
+ <path
+ transform="matrix(0.88834126,0,0,1,33.188806,5.1998373)"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#1f202b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.51997423;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 405.60182,725.58761 c -8.4262,3.078 -11.65513,6.80633 -21.29233,7.27973 -1.309,0.065 -13.24159,1.65253 -13.17619,2.96153 0.065,1.309 13.29279,0.52387 14.60189,0.45937 9.7031,-0.4776 9.73042,-1.76572 18.79672,-5.07762 z m -95.85604,-5.09085 c 8.03643,1.9839 25.98384,6.35791 31.87378,2.41679 -12.59973,-1.70909 -19.32268,-3.80699 -29.91874,-6.5663 z m 97.65678,30.09157 c -0.86028,1.4064 -11.00198,8.68281 -18.56023,9.28207 -7.55826,0.59926 -20.55707,2.922 -21.02907,3.9082 0.033,1.3088 11.8266,1.5137 13.1356,1.4891 2.3143,-0.2462 6.83717,-0.72079 9.21227,-1.44159 1.3513,0.45191 15.53398,-5.15416 16.98029,-6.08495 z M 292.12569,771.9929 c 6.2582,3.58811 6.21629,8.53193 42.173,13.89648 1.301,-0.1634 14.01513,0.75785 13.85143,-0.54315 -0.1636,-1.3009 -12.88823,-3.49795 -14.18913,-3.33405 -27.04671,-3.50921 -31.50352,-11.33956 -40.51056,-16.22018 z m -11.28932,21.52845 -1.77686,4.27502 c 4.4251,2.8185 9.92995,4.67759 14.93565,6.06159 5.59943,2.0212 32.73353,8.28822 32.82894,3.57864 -10.84278,-0.45714 -22.43586,-4.41777 -32.24784,-7.04124 -4.602,-1.6646 -9.13779,-5.20941 -13.73989,-6.87401 z m 130.56922,-6.2135 c -5.8966,2.5366 -13.52166,6.50701 -19.80186,7.03181 -0.9067,0.2677 -27.37908,4.97224 -27.77618,5.91264 9.1973,2.6918 21.65458,-0.46824 27.98868,-0.94394 2.4059,-0.1872 4.71296,-1.64691 10.52686,-3.60671 l 0.063,-0.031 0.094,-0.031 c 3.6221,-1.49 6.9749,-1.1054 10.5562,-3.4625 z m -144.96017,39.05437 c 17.63839,12.57623 39.93504,15.87919 57.02438,15.35466 1.2926,-0.2291 16.25923,-0.39395 16.03013,-1.68655 -0.229,-1.2926 -15.26783,-2.44595 -16.56043,-2.21685 -27.17098,-2.77514 -36.85507,-3.37632 -55.92465,-16.59017 z M 415.8226,814.46455 c -6.1275,3.4473 -10.0837,6.1887 -16.2888,8.15 -13.7489,3.159 -11.6647,4.222 -22.0004,5.7189 -1.372,0.082 -15.9221,4.729 -15.7325,6.0904 0.1895,1.3614 15.0776,-0.8573 16.4199,-1.1529 13.5555,-1.7442 12.5587,-3.4 22.5632,-5.8126 6.0027,-1.8565 10.8871,-4.9878 14.719,-7.1562 z m -150.86816,21.30577 -3.0751,5.0687 c 2.3289,2.3503 6.0809,3.9664 10.2938,6.0875 4.2129,2.1211 9.4313,3.9911 15.1875,5.5938 11.5125,3.2053 15.4722,3.4657 24.0816,4.5062 1.3102,0.1584 14.6306,-0.546 14.6224,-1.8657 -0.01,-1.3197 -17.0186,-2.4554 -18.318,-2.6862 -7.8339,-1.3917 -7.9834,-1.6878 -19.0419,-4.7668 -5.5293,-1.5395 -8.8719,-3.3447 -12.6564,-5.25 -3.7097,-1.5154 -7.831,-6.9287 -11.0936,-6.6875 z m 149.18872,8.11401 c -13.67011,13.24057 -40.36244,25.82344 -56.099,25.97204 -1.3195,-0.025 -12.9001,-0.7754 -12.9083,0.5443 -0.01,1.3197 11.8826,2.3519 13.2023,2.3433 21.43602,-0.64717 23.92969,0.19474 35.59284,-7.56013 5.0484,-3.1925 17.71182,-9.70308 21.96392,-13.81478 z m -130.31372,35.88599 c 8.9671,2.2125 22.9592,6.63761 33.625,7.21051 19.6694,1.0565 30.30784,4.9579 49.60574,-2.428 1.2688,-0.4371 12.27156,-6.27161 11.78466,-7.52221 -0.4868,-1.2505 -11.1962,3.0221 -12.4266,3.5578 -18.0979,6.9266 -29.24618,3.767 -48.7138,1.85201 -11.61298,-1.14234 -18.07043,-1.44693 -33.875,-2.67011 z m 149.22001,12.97217 c -1.7644,1.1156 -7.3702,5.062 -12.1068,7.9898 -4.7365,2.9278 -9.8549,5.0488 -11.0937,5.5313 l 0,0.031 c -3.35503,12.85055 -33.72123,13.31334 -41.18872,16.18446 17.32835,5.44809 34.93383,-5.21686 44.94572,-8.50953 8.41432,-3.86834 13.7708,-10.8686 21.2107,-15.82783 z M 236.0791,890.84685 c 11.2629,2.9911 22.362,9.0401 35.6563,10.6563 9.3562,1.1374 32.3611,5.2548 43.9222,0.6149 0.1554,-1.301 -22.0017,-3.4722 -23.3027,-3.6274 -10.6264,-1.294 -9.5391,-1.5994 -20.0506,-2.5046 -12.4145,-1.069 -24.4145,-6.9146 -34.9438,-9.9829 -1.66217,0.16784 -1.11195,3.35657 -1.2814,4.8437 z m 204.9146,19.42077 c -5.8973,6.2956 -15.23916,12.98237 -20.38826,15.32047 -2.1791,1.2914 -14.1533,5.78936 -13.6039,7.02346 0.5494,1.234 13.8139,-2.5424 15.0189,-3.1528 7.257,-3.34636 16.4335,-5.01216 21.7936,-13.46856 z"
+ id="path5015"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssccccccczcccccccsccccccccccccccccccccscccccscccccccscscssccccccccccccsccsccccccccccsccscccccccc" />
+ <path
+ transform="matrix(0.90746726,0,0,1,23.956015,2.7576302)"
+ id="path5023"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#3b3d4b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.26612425;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 432.38834,888.02414 c -3.6553,8.0861 -11.6143,12.7056 -18.2749,17.4687 -8.4007,5.4562 -9.5802,5.9801 -16.0969,9.1311 -4.3524,2.1044 -15.6307,6.5498 -15.4092,7.365 0.2215,0.8151 9.12341,-0.58969 9.90671,-0.90599 8.4115,-2.2411 14.51679,-5.42411 23.11769,-11.01041 4.3005,-2.7931 9.0969,-7.4095 12.0442,-10.036 2.9474,-2.6265 5.1435,-3.7892 5.8407,-6.1 z m 8.96637,20.30225 c -12.23213,14.20844 -27.02859,20.14236 -41.76047,25.35422 20.22422,2.00983 34.87033,-13.7616 42.06957,-19.13752 z M 270.14633,840.14777 c 2.7537,3.2631 8.2375,4.9948 14.9384,8.0472 6.701,3.0523 12.9873,6.0024 20.3002,7.5312 5.7407,1.2001 17.4178,2.6103 17.4996,1.8249 0.082,-0.7855 -11.7299,-3.6992 -17.6748,-5.4749 -6.6167,-1.9764 -11.4348,-4.5487 -17.9,-7.4937 -6.4651,-2.945 -13.2075,-7.3642 -15.3,-9.8437 z m 143.34541,-56.55981 c -8.7299,5.618 -22.82593,12.83747 -28.75063,13.81937 -3.9898,0.6612 -13.8937,2.4582 -13.8528,3.2436 0.041,0.7854 12.9392,-0.3246 13.7246,-0.3655 10.6967,-0.6387 18.86553,-4.66559 28.19993,-10.67259 z m -8.41025,-60.61557 c -6.3425,4.06563 -16.88004,11.76136 -24.33544,11.76471 -0.7925,-0.0112 -8.48707,2.22088 -9.46197,2.93219 -0.6403,0.46711 15.09966,-1.26156 15.89216,-1.27277 7.6526,0.0151 12.95215,-3.61429 20.09895,-8.6992 z M 285.39914,797.0881 c 11.1263,6.81631 39.01505,15.75888 49.98309,11.13312 -19.39188,-2.99778 -33.57229,-6.42062 -47.9468,-15.83491 z m 128.9766,45.6861 c -5.8288,6.4938 -14.3262,12.2095 -21.1875,15.6561 -7.9812,3.9268 -15.5557,7.5266 -20.6125,8.9813 -0.7609,0.2127 -14.5842,3.7797 -14.3714,4.5406 0.2127,0.7608 14.262,-0.7667 15.0215,-0.9844 5.4618,-1.5658 14.1636,-5.3028 22.25,-9.2813 7.2017,-3.7752 14.1891,-6.8781 20.1405,-12.6437 z m -172.38119,45.53628 c 2.7051,1.2392 13.8888,6.1928 28.4375,9.6875 13.903,3.3395 20.9834,4.3372 30.4753,4.9062 0.7847,0.047 19.8321,1.1729 19.7994,0.3875 -0.033,-0.7854 -13.841,-1.9358 -20.7369,-3.0625 -9.642,-1.5753 -13.9365,-2.8736 -27.5503,-6.1437 -14.2631,-3.4261 -25.9211,-9.4946 -28.525,-10.6874 z m 72.67102,-169.41593 c 9.42691,2.87525 25.78772,7.23815 34.68891,4.14995 -12.30151,-1.8223 -21.51165,-5.94116 -31.87073,-9.04888 z m 87.12679,-20.63332 c -3.27455,2.63745 -7.75415,4.75742 -11.64385,4.90927 -0.7868,0.0142 -13.717,1.92244 -13.7008,2.70916 0.016,0.78672 13.5042,1.16226 14.2909,1.14346 2.6418,-0.67501 8.42562,-0.30826 9.87722,-2.8173 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsscsccccccccsscsscccsccccccccccccccccccsccccsccsscccccccccccc" />
+ <path
+ transform="matrix(-1.0827144,0,0,1,4118.9429,-108.46679)"
+ sodipodi:nodetypes="cczcccscccccccsccccczcccczcsccscsccczszcccscccccscscssccccccccccccsccscccccccczscccsczccscsccccccccccccccscccsscc"
+ inkscape:connector-curvature="0"
+ id="path5021"
+ d="m 2001.0546,715.51106 c -8.8725,5.61528 -17.2856,2.80495 -27.1499,3.91587 -1.3633,0.1749 7.1261,3.30211 12.3481,3.6841 5.222,0.38199 15.3567,0.44582 18.2815,-2.48993 z m -48.9901,7.1986 c 4.6023,7.2725 21.089,8.87213 21.1346,11.69934 0.052,3.21489 -19.7217,0.73854 -23.0767,-6.97005 z m -10.6562,19.18119 c 8.2386,4.13409 31.2211,13.34084 34.1081,7.9474 -11.7296,-1.06835 -23.3923,-7.34789 -32.2824,-11.5224 z m 75.3783,9.23135 c -1.3882,0.5857 -4.5636,2.04168 -6.6132,3.18076 -4.068,2.2608 -22.8928,2.35904 -23.3648,3.34524 4.5526,1.51794 18.4054,4.54283 24.3439,1.28592 1.2724,-0.3101 6.0678,-1.81965 7.5718,-3.18692 z m -87.5629,12.16265 c 2.8825,3.30292 21.2658,9.3989 18.2729,6.20297 -2.993,-3.19593 -12.4964,-6.86315 -15.8403,-11.24669 z m -2.1632,17.13712 -1.456,3.75627 c 8.7803,5.18681 12.6389,7.16303 20.1419,8.90692 7.5029,1.74388 23.5002,2.39109 23.3167,1.11069 -0.253,-1.3243 -19.4351,-3.55435 -22.6019,-4.46498 -11.4457,-3.2913 -9.6434,-4.08377 -19.4007,-9.3089 z m 105.1896,21.0671 c -5.8966,2.5366 -13.036,6.93854 -19.2483,8.06593 -9.4977,1.72363 -23.8459,1.3537 -27.8358,7.98086 8.4544,-1.67445 21.8304,-1.73561 28.0483,-3.12706 6.7941,-1.52038 15.004,-3.74974 21.2633,-7.70572 z m -115.0817,7.22672 c 26.6625,12.16512 21.6043,10.2227 30.8072,11.79271 9.2029,1.57001 23.4298,-0.0492 23.2007,-1.34184 -0.229,-1.2926 -14.5389,-0.65128 -23.5809,-3.21154 -9.0421,-2.56026 -16.9171,-5.95509 -30.2421,-12.95275 z m 117.2016,25.14913 c -12.4754,5.22722 -14.2117,8.35844 -24.5474,9.85534 -1.372,0.082 -15.9221,4.729 -15.7325,6.0904 0.1895,1.3614 15.0776,-0.8573 16.4199,-1.1529 13.5555,-1.7442 19.4567,-4.43411 25.8531,-9.02983 z m -134.9473,24.60236 c 2.3289,2.3503 6.0809,3.9664 10.2938,6.0875 4.2129,2.1211 7.5211,3.30169 13.2773,4.90439 11.5125,3.20535 17.3824,4.15516 25.9918,5.19566 1.3102,0.1584 14.6306,-0.546 14.6224,-1.8657 -0.01,-1.3197 -17.0186,-2.45545 -18.318,-2.68625 -7.8339,-1.3917 -7.9834,-1.6878 -19.0419,-4.7668 -5.5293,-1.5395 -8.8719,-3.3447 -12.6564,-5.25 -3.6978,-2.22917 -7.3957,-4.45834 -11.0936,-6.6875 z m 147.6908,11.12106 c -11.5063,18.49518 -49.0936,25.44123 -58.2202,27.40433 28.337,7.55551 59.0145,-14.80906 59.9027,-21.94263 z m -149.0674,10.03652 -2.1966,4.95481 c 15.3295,9.66271 34.1417,12.83235 55.7445,8.99219 -24.9636,-1.15113 -43.8489,-7.76845 -53.5479,-13.947 z m -6.9394,30.40146 c 11.2629,2.9911 23.3171,8.52305 36.6114,10.13925 9.3562,1.1374 32.3611,5.2548 43.9222,0.6149 0.1554,-1.301 -22.0017,-3.4722 -23.3027,-3.6274 -10.6264,-1.294 -9.5391,-1.5994 -20.0506,-2.5046 -12.4145,-1.069 -25.3696,-6.39755 -35.8989,-9.46585 z m 158.5326,-7.22844 c -5.8973,6.2956 -16.699,17.62263 -21.8481,19.96073 -2.1791,1.2914 -16.9125,5.7894 -16.3631,7.0235 0.5494,1.234 16.5731,-2.5424 17.7781,-3.1528 7.257,-3.3464 17.0702,-7.54003 22.4303,-15.99643 z m -116.5389,53.68397 c -14.2141,-2.12842 -21.036,-5.13984 -33.5115,-9.80894 -6.1041,-2.2846 -11.7835,-7.55401 -17.9801,-11.74043 -1.9997,1.1182 -0.918,5.91833 -1.8186,7.93213 4.9507,3.69881 10.0037,8.12551 18.5657,10.09051 14.1263,3.5961 22.1264,7.93601 33.1744,8.58005 8.368,0.4878 19.0091,0.20246 36.687,-1.29356 -23.223,-1.93338 -20.9029,-1.63135 -35.1169,-3.75976 z m 133.7574,3.83363 c -7.8434,5.3315 -18.0094,10.22928 -25.6805,12.96148 -17.4315,4.82586 -37.5491,8.86023 -55.7683,11.81303 -18.4909,2.99683 -40.2263,3.38586 -50.5437,3.27674 12.7823,4.57031 32.4863,6.53483 44.7942,5.10476 23.9317,-2.78067 46.4331,-7.29477 64.466,-13.45184 8.084,-2.9729 19.1183,-7.4284 24.6956,-11.6694 z m -190.9029,22.92434 c 8.7071,3.3143 16.2598,7.422 25.6687,11.4813 16.5201,5.79358 34.8433,7.57648 51.0938,10.96868 16.3004,2.9958 30.3119,1.4682 46.2187,-0.031 7.952,-0.7666 33.7056,-3.5494 32.3373,-8.06025 -0.4006,-0.9468 -23.5448,2.1751 -32.8373,3.09155 -15.1716,1.2348 -30.6543,2.9546 -44.6875,0.094 -16.1013,-4.39045 -33.9647,-3.93985 -50.1562,-10.65628 -8.8167,-3.8038 -15.6862,-8.8759 -25.125,-12.4687 z m 201.3716,33.21528 c -30.839,20.2752 -73.7119,37.0429 -106.2124,34.2665 -22.2427,-1.9001 -76.7771,-16.0626 -91.5904,-26.2964 -6.2959,-4.5947 -7.6449,-2.8281 -13.4724,-9.6996 0.1352,5.5593 -4.1067,5.9844 -7.1276,7.8418 5.5047,5.486 13.43,9.4057 19.5778,12.3725 17.8704,8.624 70.1134,22.431 92.5414,22.2754 34.2946,-0.238 77.6899,-4.9693 108.0225,-32.0877 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#1f202b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
+ <path
+ sodipodi:nodetypes="cscscccsscccssccccscscsccccsscscccccccccccsccccsscsscccscccccccccccccscccsccsscccccccccscc"
+ inkscape:connector-curvature="0"
+ d="m 427.99299,1003.8655 c -5.5744,4.9875 -21.4531,20.4338 -28.9386,23.0078 -7.8921,2.7138 -26.7755,10.4893 -26.1738,11.6611 0.6016,1.1717 15.779,-1.2848 25.6748,-5.4861 9.8958,-4.2012 25.4998,-15.4728 31.731,-21.3589 z m -210.85618,7.3002 c 2.4567,1.6786 6.61566,6.7455 20.36426,12.6493 3.9832,1.7105 13.70088,6.0593 17.26498,7.5001 8.1916,3.3115 30.9475,8.4533 37.3995,9.9622 0.7654,0.179 22.12213,4.2462 22.22273,3.4666 12.9373,-0.2922 -16.08843,-3.9853 -22.69453,-6.2615 -6.0031,-2.0685 -25.7665,-8.364 -31.6483,-10.508 -3.1685,-1.1549 -17.07404,-8.7966 -21.43361,-11.082 -10.54284,-5.5267 -16.2424,-9.9335 -18.6071,-11.5494 z m 14.25633,-38.86733 c 6.888,5.141 24.14083,13.18211 38.49453,16.55671 5.64143,0.97866 5.63769,1.92492 27.39811,5.91011 10.89455,1.99523 40.50844,2.63858 48.51568,0.98781 -4.46334,-1.37098 -35.31621,-1.50151 -47.05275,-4.66131 -12.21149,-3.28767 -25.15397,-6.07962 -32.00374,-7.68711 -5.281,-1.2415 -15.89413,-7.00321 -20.24463,-8.95641 -7.2689,-3.2633 -10.9789,-5.37343 -14.8615,-8.27133 z m 171.05219,-79.70384 c -3.6553,8.0861 -12.78937,13.28011 -19.44997,18.04321 -8.4007,5.4562 -9.5802,5.9801 -16.0969,9.1311 -4.3524,2.1044 -15.6307,6.5498 -15.4092,7.365 0.2215,0.8151 7.604,-1.1642 8.3873,-1.4805 8.4115,-2.2411 16.0362,-4.8496 24.6371,-10.4359 4.3005,-2.7931 10.37879,-6.14559 13.32609,-8.77209 2.9474,-2.6265 5.03668,-5.62762 5.73388,-7.93842 z m -169.2405,36.9139 c 6.888,5.141 17.45124,15.24359 31.80494,18.61809 8.68488,1.01258 37.86716,7.34857 43.95762,3.43121 -21.75148,-3.01555 -29.4351,-5.54203 -42.86392,-8.36857 -14.1047,-3.3161 -23.07855,-13.67394 -29.28485,-18.30614 z m 185.8006,20.74165 c -20.1125,15.0395 -26.891,17.4593 -39.3113,20.7418 -0.8494,0.099 -14.66252,3.71352 -14.8465,4.5499 -0.53946,2.45245 11.1509,-0.615 11.9404,-0.9437 12.127,-3.205 22.0406,-2.8126 42.5265,-18.1313 z M 255.70087,848.76537 c 2.7537,3.2631 7.78428,5.80727 14.48518,8.85967 6.701,3.0523 13.44052,5.18993 20.75342,6.71873 5.7407,1.2001 17.4178,2.6103 17.4996,1.8249 0.082,-0.7855 -11.7299,-3.6992 -17.6748,-5.4749 -6.6167,-1.9764 -11.88802,-3.73623 -18.35322,-6.68123 -6.4651,-2.945 -12.75428,-8.17667 -14.84678,-10.65617 z m 127.57526,-57.2108 c -8.7299,5.618 -19.35089,9.4914 -25.27559,10.4733 -3.9898,0.6612 -16.24383,5.21583 -16.20293,6.00123 0.041,0.7854 15.28933,-1.47361 16.07473,-1.51451 10.6967,-0.6387 18.87936,-3.82186 28.21376,-9.82886 z m -21.19178,-71.55609 c -6.3425,4.06563 -18.0196,8.65903 -25.475,8.66238 -0.7925,-0.0112 -5.03468,0.54495 -6.00958,1.25626 -0.6403,0.46711 10.25448,0.41437 11.04698,0.40316 7.6526,0.0151 15.4845,-0.51196 22.6313,-5.59687 z m -91.02843,78.93364 c 12.111,8.0199 30.50751,15.78543 45.43411,15.10303 0.7854,-0.033 11.9511,0 11.9184,-0.7907 -0.033,-0.7854 -9.045,-1.9138 -12.5309,-1.8437 -12.1034,0.2434 -31.76181,-10.25573 -43.41841,-17.97473 z m -27.62241,100.24103 c 2.7051,1.2392 15.5506,7.16777 30.0993,10.66247 13.903,3.3395 20.9834,4.3372 30.4753,4.9062 0.7847,0.047 19.8321,1.1729 19.7994,0.3875 -0.033,-0.7854 -13.841,-1.9358 -20.7369,-3.0625 -9.642,-1.5753 -13.9365,-2.8736 -27.5503,-6.1437 -14.2631,-3.4261 -26.97861,-10.14458 -29.58251,-11.33738 z m 51.68274,-165.33706 c 9.6774,2.87946 25.70651,13.81116 39.19012,10.57188 -12.95434,-1.73183 -26.54266,-11.25582 -37.98352,-14.64679 z m 56.39211,-27.17849 c -2.89096,2.91729 -7.13643,4.50234 -10.60251,4.63765 -0.7868,0.0142 -13.717,1.92244 -13.7008,2.70916 0.016,0.78672 13.51757,1.29995 14.2909,1.14346 2.6685,-0.54001 11.67998,-1.45728 13.13158,-3.96632 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#3b3d4b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ id="path5029"
+ transform="matrix(-1.0756076,0,0,1,2333.0381,-103.55491)" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccsccsccscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccccc"
+ inkscape:connector-curvature="0"
+ d="m -5.5375,694.96844 c 0.2904,7.17794 1.5528,14.16204 4.725,20.71876 5.8808,8.9488 8.1857,19.50867 12,29.375 5.033,7.65375 5.9471,17.20554 5.125,26.125 3.9977,8.13776 2.2371,16.07872 6.6212,24.08178 -2.2811,1.18705 -5.2052,1.77457 -8.3044,2.78183 M -13.0761,697.79145 c 2.9584,-0.67521 5.7702,-2.52891 7.8636,-4.28547 -4.7985,-7.25603 -7.8383,-14.33288 -10.5375,-22.56878 0.2569,-7.41579 0.3156,-15.90338 -5.1875,-21.625 -3.3376,-8.27013 -7.9282,-11.5464 -11.4063,-19.75009 -2.7962,-4.45057 -9.377,-11.05427 -10.6874,-16.31241 -4.23,-4.58383 -8.2197,-9.3971 -11.2813,-14.6875 -5.4695,-2.87459 -10.4049,-6.55065 -15.8125,-9.34375 -2.6378,-0.90748 -5.9483,-1.95385 -9,-1.90625 -2.3735,0.037 -4.5316,1.54457 -6.1784,3.44461 -5.1935,2.877 -4.6577,8.33116 -7.9778,12.55569 -5.8092,7.03226 -11.5533,14.18262 -16.5313,21.84375 m 2392.5313,278.8747 c -2.4221,2.51998 -5.0077,4.84507 -8.1563,6.46875 -4.7806,2.57439 -9.1923,5.9537 -14.5313,7.28125 -10.2055,3.82662 -21.278,2.64843 -31.9374,3.46875 -24.6748,0.98527 -49.3841,1.1116 -74.0626,0.25 -12.434,-0.39512 -24.7443,-2.22632 -37.0937,-3.59375 -4.172,-0.50387 -8.4978,-1.94264 -10.625,-5.21875 -3.3068,-0.36887 -7.0437,-1.96404 -6.6563,-5.375 -4.2795,-3.3162 -3.7845,-9.09074 -4.375,-13.875 -1.1197,-5.03773 -1.2984,-10.42338 -4.3437,-14.8125 -1.8282,-3.47167 -4.8128,-6.9383 -4.8125,-10.96875 1.7802,-6.65073 5.3733,-14.07835 1.7188,-20.75 -1.3754,-6.09336 -3.9959,-11.82886 -5.8438,-17.75 -0.1054,-5.65024 -2.4605,-10.5937 -5.5938,-15.15625 -2.9663,-5.14261 -6.3358,-11.5768 -5.96,-17.6745 M 1446.3795,589.3248 c -1.7258,0.46468 -2.8255,1.4551 -8.2288,1.99223 m -38.6626,37.68522 c -4.4835,-1.26504 -8.2973,-2.65587 -9.4126,-2.93087 m -40.0849,154.31121 c -4.1379,-1.57061 -8.0111,-2.78091 -9.2044,-3.3275 m 150.4756,-5.71211 c 4.4817,-2.61176 8.8686,-5.47431 10.4601,-7.04981 m -168.4902,51.18568 c -7.3632,11.12623 -14.9867,22.80246 -21.2629,34.5524 -2.9832,7.70241 -1.7242,16.60719 -6.125,23.84375 -6.4973,16.40792 -19.425,28.89981 -30.3438,42.34375 -4.5174,7.09624 -11.8464,11.51011 -18.6875,16.0625 -6.9476,3.24781 -14.1679,5.81428 -21.1563,8.96875 -7.1901,0.27391 -14.3543,1.14105 -21.4062,2.5 -6.7374,1.01921 -13.4323,2.25541 -20.25,2.625 -10.5582,1.39384 -21.1481,2.60812 -31.7812,3.25 -5.8833,0.52459 -11.7393,1.30543 -17.5938,2.0625 -0.7462,-2.22538 -2.1395,-4.41168 -2.7206,-6.85385 -1.3281,-5.58058 -5.4576,-13.62859 -6.8033,-18.72473 m 255.724,-254.69967 c -3.7527,-1.47339 -7.7013,-3.35856 -11.5438,-5.90304 3.5794,-6.64169 -0.095,-15.60272 1.9375,-22.53746 3.0825,-5.78395 5.4975,-11.94108 8.625,-17.71875 3.7321,-4.58872 5.2952,-10.10285 9.2812,-14.40625 4.8337,-3.31677 7.3602,-17.99812 10.1673,-22.8594 4.2485,-3.97389 9.3594,-6.9646 14.1875,-10.21875 l 1.3125,0 c 3.3276,0.0293 6.5789,1.0337 9.7813,1.84375 5.5459,0.74716 10.3081,4.46493 12.125,9.8125 5.0896,2.90251 8.9597,16.13539 9.7077,22.14693 -3.7387,2.39661 -7.6977,3.69213 -11.7802,4.36965 m 12.1864,-3.31343 c 4.855,3.92489 4.0767,10.8193 6.875,15.90625 5.4883,6.30207 2.0925,15.40028 5.8437,22.375 6.5229,7.91576 4.9182,17.63906 10.1375,26.16255 -3.7114,2.38843 -7.6939,4.17633 -11.8297,5.49762 m -87.8265,-16.32899 c -0.7094,9.88949 -7.3274,15.52845 -8.175,25.38758 -5.0319,9.56068 -13.0691,17.95214 -13.6984,29.11613 1.6348,1.9372 8.0851,4.66515 11.9104,6.83879 m 108.6443,-49.37367 c 0.9929,8.58236 6.5199,16.50533 10.4624,24.01249 6.345,9.62178 6.0112,21.49458 8.125,32.40625 3.7799,10.54814 3.5258,21.99241 6.5626,32.71875 4.2575,9.10693 4.2262,19.34519 4.0312,29.1875 -1.2087,12.735 7.3472,22.19644 7.3062,34.7938 -3.3999,2.5423 -6.5427,4.68549 -9.4768,6.50717 M 1358.4838,722.46465 c -6.057,11.33686 -8.1421,23.7674 -13.5463,35.3791 -3.2417,9.2532 -3.2788,19.48504 -8.0625,28.21875 -3.3928,9.46966 -2.7528,18.30132 -4.1029,28.15243 1.73,1.29125 3.8574,2.57625 6.3138,3.82988 m 167.7292,-17.18305 c -0.6415,2.12596 -3.6534,5.28906 -7.9859,8.74593 M 270.8438,824.84375 c -1.51314,8.54474 -1.8675,17.68652 -6.0625,25.4375 -5.70759,6.95938 -13.25227,13.05504 -15.625,22.125 -2.47925,4.70901 -3.35132,9.89398 -4.09375,15.09375 -0.81273,5.83079 -4.26071,10.72002 -8.53125,14.59375 -2.95503,3.23536 -6.02645,6.37324 -9.96875,8.40625 -4.78064,2.57439 -9.19219,5.9537 -14.53125,7.28125 -10.20554,3.82662 -21.27784,2.64843 -31.9375,3.46875 -24.67453,0.98527 -49.38416,1.1116 -74.06255,0.24985 -12.43405,-0.39527 -24.74435,-2.22647 -37.09375,-3.5939 -4.172,-0.50387 -8.4978,-1.94264 -10.625,-5.21875 -3.3068,-0.36887 -7.0437,-1.96404 -6.6563,-5.375 -4.2795,-3.3162 -3.7845,-9.09074 -4.375,-13.875 -1.1197,-5.03773 -1.2984,-10.42338 -4.3437,-14.8125 -1.8282,-3.47167 -4.8128,-6.9383 -4.8125,-10.96875 1.7802,-6.65073 5.3733,-14.07835 1.7188,-20.75 -1.3754,-6.09336 -3.9959,-11.82886 -5.8438,-17.75 -0.1054,-5.65024 -2.4605,-10.5937 -5.5938,-15.15625 -2.9663,-5.14261 -6.3358,-11.5768 -5.96,-17.6745 m 1102.0364,98.79693 c 2.5641,6.08177 6.0438,7.77897 8.1737,13.90912 2.439,7.01963 1.5992,9.63535 3.3067,16.10102 -2.893,1.29656 -5.3127,2.66424 -8.839,3.38479 m -9.4456,-31.46324 c 4.2022,-0.89462 3.9326,-0.72848 7.02,-2.58048 -2.2431,-5.32058 -3.7596,-14.38029 -6.0422,-19.69209 -1.3408,-3.12012 -3.9507,-9.85307 -6.1483,-16.54356 -2.1567,-6.56636 -3.8326,-13.13962 -12.2891,-11.20644 -5.288,1.39649 -7.6607,8.75637 -11.1446,16.94973 -2.8839,6.78249 -7.143,14.03384 -8.9492,19.86277 -1.3577,4.38184 -0.1169,9.86641 -0.2761,14.40476 -0.1575,4.48553 -1.7202,8.02416 -2.1614,12.47024 -0.9937,10.01451 1.2156,14.10313 -2.7017,25.6912 2.1659,1.18536 3.925,2.56543 6.9245,3.19507 m -5.8904,-2.50566 c -1.8039,5.33631 -4.3188,15.5297 -6.2387,22.18189 -3.9917,0.30393 -7.9619,0.60988 -11.9374,1.0625 -12.2621,1.78753 -24.6985,1.60664 -37,3.03125 -10.1304,0.45886 -20.2905,0.94686 -30.4375,0.625 -9.75753,-0.14214 -19.18976,-2.93728 -28.25,-6.34375 -6.24427,-2.09836 -11.4945,-6.33838 -17.5625,-8.84375 -4.49785,-3.02242 -6.41529,-8.8087 -11.4375,-11.1875 -5.02357,-5.8332 -11.51406,-10.02888 -17.375,-14.90625 -3.24416,-4.40704 -7.05621,-8.39562 -11.53125,-11.625 -4.98299,-3.61424 -9.33808,-7.953 -13.09375,-12.8125 -3.47846,-3.95176 -7.11437,-7.96754 -9,-12.96875 -5.70989,-5.54227 -10.60813,-12.7421 -13.07498,-20.2875 M 737.51206,795.19951 c -3.74519,5.10083 -3.36705,10.80476 -6.13701,16.26924 -1.94978,4.72274 -6.29164,7.87903 -8.125,12.71875 -2.55657,3.83097 -4.507,8.15932 -4.71875,12.84375 -0.27365,4.55586 0.51379,9.62233 -2.9375,13.28125 -4.0107,4.28922 -8.59494,6.97703 -9.76875,13.05629 3.80918,2.24873 7.61835,3.44527 11.42753,4.63609 m 119.41886,-61.22896 c 0.55493,6.06603 3.01563,10.18565 6.89111,14.91158 6.67719,6.23628 9.80853,15.04676 15.09375,22.3125 6.1813,5.70787 3.81936,14.22167 10.34378,19.64379 l -8.02074,2.65489 m -111.99542,-67.4477 c -4.55107,-0.83999 -8.22064,-3.22259 -12.21873,-5.03029 1.60563,-5.99999 6.32389,-9.35339 8.95361,-14.75819 -0.20311,-4.9264 -0.41178,-9.95518 3.71875,-13.6875 2.44261,-3.97782 5.1672,-7.86783 5.1875,-12.875 1.03619,-3.18564 1.29276,-5.53724 3.375,-7.5 1.07377,-3.43166 2.35265,-5.27927 5.40625,-6.40625 7.58615,-2.55129 15.76103,-0.19343 23.03125,2.375 6.03785,1.0753 6.74177,8.00231 11.9375,10.3125 5.43278,2.41675 8.0661,7.76912 9.84375,13.125 3.27554,9.9032 13.15911,14.73061 19.53125,22.28125 2.2119,6.45029 5.83078,12.63661 9.61081,18.30745 -3.23223,1.98824 -6.40131,1.74774 -9.49728,2.64598 m -121.46985,57.51531 c -3.59529,4.75872 -0.56178,11.73649 -5.64373,15.56251 -5.53506,2.65807 -4.50848,9.97577 -8.0625,14.0625 -5.71002,3.27521 -8.59878,9.63554 -13.84375,12.875 -5.30537,2.50086 -9.13687,6.53308 -12.53125,11.0625 -5.02895,3.57621 -11.59839,3.39652 -17.21875,5.6875 -6.86264,1.47552 -13.26577,4.85584 -20.375,5.15625 -10.52935,1.11885 -20.97138,2.92412 -31.4375,4.46875 -24.52214,2.45166 -49.19318,2.45978 -73.8125,2.75 -13.56824,0.0226 -27.17565,0.0498 -40.71875,0.5 -5.20758,0.60307 -10.43959,0.76828 -15.625,1.59375 -9.26921,0.49784 -19.17521,-0.53405 -27.15625,-5.625 -3.2594,-2.92831 -6.00116,-6.4339 -8.65625,-9.9375 -1.94873,-3.07529 -4.71126,-5.65563 -6.84375,-8.4375 -2.08637,-6.50997 -7.71976,-11.94177 -7.34375,-19.15625 -1.30714,-9.55231 -9.34737,-16.51896 -10.6875,-26.09375 -2.2474,-7.49963 -4.78341,-11.39758 -5.0125,-19.28136 M 282.4273,832.34469 c -3.23554,-0.29186 -9.53184,-5.23117 -12.158,-7.96055 3.96707,-8.70452 11.09837,-16.12165 11.91825,-25.97789 5.73023,-8.22628 8.2237,-18.06244 11.75,-27.3125 5.72269,-7.8098 3.16888,-18.54028 8.40625,-26.5625 5.60845,-6.84497 4.42755,-16.21933 7.3125,-24.125 5.05089,-9.58754 10.23377,-19.19424 16.6875,-27.9375 0.61941,-5.36297 3.32809,-10.15121 5.6875,-14.90625 3.49477,-5.88222 4.15921,-12.73641 5.21875,-19.34375 2.85191,-5.17124 4.46099,-10.78763 6.21875,-16.28125 3.01915,-5.41311 5.13543,-12.03224 11.03125,-15 4.04217,-2.17693 12.35631,-5.93211 14.09375,0.71875 1.4734,5.34072 8.41889,6.01464 10.34375,11.21875 3.25049,5.73605 -1.3662,12.61628 2.09375,18.21875 -1.05871,6.59628 3.11884,12.64994 2.65625,19.21875 -2.38711,9.48715 3.15183,15.35341 5.29039,24.23227 l -5.60988,2.59346 m 4.80558,-0.98484 c -1.80819,9.23729 1.94492,19.63413 4.73266,28.40911 -1.74658,9.14404 2.22419,18.08138 1.90625,27.21875 -2.21324,10.23824 3.87116,19.68207 4.03125,29.78125 -1.17233,6.51852 0.58253,13.03957 2.46875,19.25 4.75498,13.10066 -2.09402,28.59918 1.33115,41.82494 -2.14104,1.99169 -4.32532,3.36419 -7.04981,5.9616 m 1118.77491,-21.4053 c 3.2946,7.49159 6.6166,14.96552 9.8125,22.5 5.6649,11.47031 7.7934,24.11198 9.9749,36.55626 2.6599,9.32821 1.222,19.25355 4.0626,28.53125 4.1014,10.25801 12.7226,18.54302 14.5937,29.75 0.1289,8.5293 5.2061,15.79756 9.8437,22.5625 3.0662,5.00505 7.9599,9.35448 8.625,15.4375 1.9528,5.63492 8.5355,6.18048 13.4376,7.625 5.6228,0.27136 8.1206,5.75905 13.2812,6.46875 11.0781,2.3877 22.4521,3.2288 33.7812,3.2188 13.7553,-0.4747 27.785,0.1336 41.1876,-3.5 10.6074,-1.8144 21.2571,-3.42139 31.8124,-5.56255 5.7957,-0.54624 11.2809,-2.33518 16.8126,-3.875 5.6092,-1.85858 11.45,-2.61868 17.2187,-3.78125 6.4553,-2.85833 22.3362,-2.08533 31.25,-3.625 6.5005,-0.86979 13.1205,-0.0737 19.5625,-1.375 5.1683,-1.02725 10.5245,-0.61527 15.5625,-2.5 8.1343,-4.18366 18.7661,-3.9062 26.8125,-9.53125 -1.1976,-3.41258 3.4524,-4.6487 2.9688,-8.0625 4.4268,-1.78103 6.4253,-6.42061 9.3124,-9.875 4.5137,-4.25289 6.1126,-10.62577 9.25,-15.875 3.6076,-9.0735 12.6022,-15.03005 15,-24.6875 0.1956,-8.77233 5.5369,-16.19663 7.8126,-24.4375 3.5973,-9.5792 -0.6218,-20.00891 2.5937,-29.625 5.0592,-10.24978 3.1025,-22.35526 7.9063,-32.6875 3.3369,-10.24259 9.3914,-19.47356 11.9374,-30 1.7911,-12.03329 0.365,-24.66473 3.3625,-36.55624 4.4282,-10.74405 10.0594,-20.82164 13.0438,-32.13126 3.9772,-8.80214 1.8658,-18.55057 1.5625,-27.8125 -0.3167,-3.2473 0.6599,-4.74731 1.6285,-7.6561 m 124.084,2.28079 c 0.2904,7.17794 1.5528,14.16204 4.725,20.71876 5.8808,8.9488 8.1857,19.50867 12,29.375 5.033,7.65375 5.9471,17.20554 5.125,26.125 3.9977,8.13776 2.2371,16.07872 6.6212,24.08178 -2.2811,1.18705 -5.2052,1.77457 -8.3044,2.78183 m -27.7054,-100.25936 c 2.9584,-0.67521 5.7702,-2.52891 7.8636,-4.28547 -4.7985,-7.25603 -7.8383,-14.33288 -10.5375,-22.56878 0.2569,-7.41579 0.3156,-15.90338 -5.1875,-21.625 -3.3376,-8.27013 -7.9282,-11.5464 -11.4063,-19.75009 -2.7962,-4.45057 -9.377,-11.05427 -10.6874,-16.31241 -4.23,-4.58383 -8.2197,-9.3971 -11.2813,-14.6875 -5.4695,-2.87459 -10.4049,-6.55065 -15.8125,-9.34375 -2.6378,-0.90748 -5.9483,-1.95385 -9,-1.90625 -2.3735,0.037 -4.5316,1.54457 -6.1784,3.44461 -5.1935,2.877 -4.6577,8.33116 -7.9778,12.55569 -5.8092,7.03226 -11.5533,14.18262 -16.5313,21.84375 -2.7244,5.22442 -3.2077,11.24593 -3.5,17.03125 -6.464,9.13845 -0.4164,21.54031 -6.7813,30.75 -3.3115,5.90558 -7.8554,12.53311 -10.0152,19.01892 3.7074,2.29103 7.4877,4.29961 11.0862,5.59129"
+ style="color:#000000;fill:none;stroke:#444759;stroke-width:3.46451735;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3862" />
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#1f202b;fill-opacity:1;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 2001.0546,715.51106 c -8.8725,5.61528 -17.2856,2.80495 -27.1499,3.91587 -1.3633,0.1749 7.1261,3.30211 12.3481,3.6841 5.222,0.38199 15.3567,0.44582 18.2815,-2.48993 z m -48.9901,7.1986 c 4.6023,7.2725 21.089,8.87213 21.1346,11.69934 0.052,3.21489 -19.7217,0.73854 -23.0767,-6.97005 z m -10.6562,19.18119 c 8.2386,4.13409 31.2211,13.34084 34.1081,7.9474 -11.7296,-1.06835 -23.3923,-7.34789 -32.2824,-11.5224 z m 75.3783,9.23135 c -1.3882,0.5857 -4.5636,2.04168 -6.6132,3.18076 -4.068,2.2608 -22.8928,2.35904 -23.3648,3.34524 4.5526,1.51794 18.4054,4.54283 24.3439,1.28592 1.2724,-0.3101 6.0678,-1.81965 7.5718,-3.18692 z m -87.5629,12.16265 c 2.8825,3.30292 21.2658,9.3989 18.2729,6.20297 -2.993,-3.19593 -12.4964,-6.86315 -15.8403,-11.24669 z m -2.1632,17.13712 -1.456,3.75627 c 8.7803,5.18681 12.6389,7.16303 20.1419,8.90692 7.5029,1.74388 23.5002,2.39109 23.3167,1.11069 -0.253,-1.3243 -19.4351,-3.55435 -22.6019,-4.46498 -11.4457,-3.2913 -9.6434,-4.08377 -19.4007,-9.3089 z m 105.1896,21.0671 c -5.8966,2.5366 -13.036,6.93854 -19.2483,8.06593 -9.4977,1.72363 -23.8459,1.3537 -27.8358,7.98086 8.4544,-1.67445 21.8304,-1.73561 28.0483,-3.12706 6.7941,-1.52038 15.004,-3.74974 21.2633,-7.70572 z m -115.0817,7.22672 c 26.6625,12.16512 21.6043,10.2227 30.8072,11.79271 9.2029,1.57001 23.4298,-0.0492 23.2007,-1.34184 -0.229,-1.2926 -14.5389,-0.65128 -23.5809,-3.21154 -9.0421,-2.56026 -16.9171,-5.95509 -30.2421,-12.95275 z m 117.2016,25.14913 c -12.4754,5.22722 -14.2117,8.35844 -24.5474,9.85534 -1.372,0.082 -15.9221,4.729 -15.7325,6.0904 0.1895,1.3614 15.0776,-0.8573 16.4199,-1.1529 13.5555,-1.7442 19.4567,-4.43411 25.8531,-9.02983 z m -134.9473,24.60236 c 2.3289,2.3503 6.0809,3.9664 10.2938,6.0875 4.2129,2.1211 7.5211,3.30169 13.2773,4.90439 11.5125,3.20535 17.3824,4.15516 25.9918,5.19566 1.3102,0.1584 14.6306,-0.546 14.6224,-1.8657 -0.01,-1.3197 -17.0186,-2.45545 -18.318,-2.68625 -7.8339,-1.3917 -7.9834,-1.6878 -19.0419,-4.7668 -5.5293,-1.5395 -8.8719,-3.3447 -12.6564,-5.25 -3.6978,-2.22917 -7.3957,-4.45834 -11.0936,-6.6875 z m 147.6908,11.12106 c -11.5063,18.49518 -49.0936,25.44123 -58.2202,27.40433 28.337,7.55551 59.0145,-14.80906 59.9027,-21.94263 z m -149.0674,10.03652 -2.1966,4.95481 c 15.3295,9.66271 34.1417,12.83235 55.7445,8.99219 -24.9636,-1.15113 -43.8489,-7.76845 -53.5479,-13.947 z m -6.9394,30.40146 c 11.2629,2.9911 23.3171,8.52305 36.6114,10.13925 9.3562,1.1374 32.3611,5.2548 43.9222,0.6149 0.1554,-1.301 -22.0017,-3.4722 -23.3027,-3.6274 -10.6264,-1.294 -9.5391,-1.5994 -20.0506,-2.5046 -12.4145,-1.069 -25.3696,-6.39755 -35.8989,-9.46585 z m 158.5326,-7.22844 c -5.8973,6.2956 -16.699,17.62263 -21.8481,19.96073 -2.1791,1.2914 -16.9125,5.7894 -16.3631,7.0235 0.5494,1.234 16.5731,-2.5424 17.7781,-3.1528 7.257,-3.3464 17.0702,-7.54003 22.4303,-15.99643 z m -116.5389,53.68397 c -14.2141,-2.12842 -21.036,-5.13984 -33.5115,-9.80894 -6.1041,-2.2846 -11.7835,-7.55401 -17.9801,-11.74043 -1.9997,1.1182 -0.918,5.91833 -1.8186,7.93213 4.9507,3.69881 10.0037,8.12551 18.5657,10.09051 14.1263,3.5961 22.1264,7.93601 33.1744,8.58005 8.368,0.4878 19.0091,0.20246 36.687,-1.29356 -23.223,-1.93338 -20.9029,-1.63135 -35.1169,-3.75976 z m 133.7574,3.83363 c -7.8434,5.3315 -18.0094,10.22928 -25.6805,12.96148 -17.4315,4.82586 -37.5491,8.86023 -55.7683,11.81303 -18.4909,2.99683 -40.2263,3.38586 -50.5437,3.27674 12.7823,4.57031 32.4863,6.53483 44.7942,5.10476 23.9317,-2.78067 46.4331,-7.29477 64.466,-13.45184 8.084,-2.9729 19.1183,-7.4284 24.6956,-11.6694 z m -190.9029,22.92434 c 8.7071,3.3143 16.2598,7.422 25.6687,11.4813 16.5201,5.79358 34.8433,7.57648 51.0938,10.96868 16.3004,2.9958 30.3119,1.4682 46.2187,-0.031 7.952,-0.7666 33.7056,-3.5494 32.3373,-8.06025 -0.4006,-0.9468 -23.5448,2.1751 -32.8373,3.09155 -15.1716,1.2348 -30.6543,2.9546 -44.6875,0.094 -16.1013,-4.39045 -33.9647,-3.93985 -50.1562,-10.65628 -8.8167,-3.8038 -15.6862,-8.8759 -25.125,-12.4687 z m 201.3716,33.21528 c -30.839,20.2752 -73.7119,37.0429 -106.2124,34.2665 -22.2427,-1.9001 -76.7771,-16.0626 -91.5904,-26.2964 -6.2959,-4.5947 -7.6449,-2.8281 -13.4724,-9.6996 0.1352,5.5593 -4.1067,5.9844 -7.1276,7.8418 5.5047,5.486 13.43,9.4057 19.5778,12.3725 17.8704,8.624 70.1134,22.431 92.5414,22.2754 34.2946,-0.238 77.6899,-4.9693 108.0225,-32.0877 z"
+ id="path4226"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cczcccscccccccsccccczcccczcsccscsccczszcccscccccscscssccccccccccccsccscccccccczscccsczccscsccccccccccccccscccsscc"
+ transform="matrix(-1.0827144,0,0,1,2070.9429,-108.46679)" />
+ <path
+ transform="matrix(-1.0756076,0,0,1,285.0381,-103.55491)"
+ id="path4228"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#3b3d4b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 427.99299,1003.8655 c -5.5744,4.9875 -21.4531,20.4338 -28.9386,23.0078 -7.8921,2.7138 -26.7755,10.4893 -26.1738,11.6611 0.6016,1.1717 15.779,-1.2848 25.6748,-5.4861 9.8958,-4.2012 25.4998,-15.4728 31.731,-21.3589 z m -210.85618,7.3002 c 2.4567,1.6786 6.61566,6.7455 20.36426,12.6493 3.9832,1.7105 13.70088,6.0593 17.26498,7.5001 8.1916,3.3115 30.9475,8.4533 37.3995,9.9622 0.7654,0.179 22.12213,4.2462 22.22273,3.4666 12.9373,-0.2922 -16.08843,-3.9853 -22.69453,-6.2615 -6.0031,-2.0685 -25.7665,-8.364 -31.6483,-10.508 -3.1685,-1.1549 -17.07404,-8.7966 -21.43361,-11.082 -10.54284,-5.5267 -16.2424,-9.9335 -18.6071,-11.5494 z m 14.25633,-38.86733 c 6.888,5.141 24.14083,13.18211 38.49453,16.55671 5.64143,0.97866 5.63769,1.92492 27.39811,5.91011 10.89455,1.99523 40.50844,2.63858 48.51568,0.98781 -4.46334,-1.37098 -35.31621,-1.50151 -47.05275,-4.66131 -12.21149,-3.28767 -25.15397,-6.07962 -32.00374,-7.68711 -5.281,-1.2415 -15.89413,-7.00321 -20.24463,-8.95641 -7.2689,-3.2633 -10.9789,-5.37343 -14.8615,-8.27133 z m 171.05219,-79.70384 c -3.6553,8.0861 -12.78937,13.28011 -19.44997,18.04321 -8.4007,5.4562 -9.5802,5.9801 -16.0969,9.1311 -4.3524,2.1044 -15.6307,6.5498 -15.4092,7.365 0.2215,0.8151 7.604,-1.1642 8.3873,-1.4805 8.4115,-2.2411 16.0362,-4.8496 24.6371,-10.4359 4.3005,-2.7931 10.37879,-6.14559 13.32609,-8.77209 2.9474,-2.6265 5.03668,-5.62762 5.73388,-7.93842 z m -169.2405,36.9139 c 6.888,5.141 17.45124,15.24359 31.80494,18.61809 8.68488,1.01258 37.86716,7.34857 43.95762,3.43121 -21.75148,-3.01555 -29.4351,-5.54203 -42.86392,-8.36857 -14.1047,-3.3161 -23.07855,-13.67394 -29.28485,-18.30614 z m 185.8006,20.74165 c -20.1125,15.0395 -26.891,17.4593 -39.3113,20.7418 -0.8494,0.099 -14.66252,3.71352 -14.8465,4.5499 -0.53946,2.45245 11.1509,-0.615 11.9404,-0.9437 12.127,-3.205 22.0406,-2.8126 42.5265,-18.1313 z M 255.70087,848.76537 c 2.7537,3.2631 7.78428,5.80727 14.48518,8.85967 6.701,3.0523 13.44052,5.18993 20.75342,6.71873 5.7407,1.2001 17.4178,2.6103 17.4996,1.8249 0.082,-0.7855 -11.7299,-3.6992 -17.6748,-5.4749 -6.6167,-1.9764 -11.88802,-3.73623 -18.35322,-6.68123 -6.4651,-2.945 -12.75428,-8.17667 -14.84678,-10.65617 z m 127.57526,-57.2108 c -8.7299,5.618 -19.35089,9.4914 -25.27559,10.4733 -3.9898,0.6612 -16.24383,5.21583 -16.20293,6.00123 0.041,0.7854 15.28933,-1.47361 16.07473,-1.51451 10.6967,-0.6387 18.87936,-3.82186 28.21376,-9.82886 z m -21.19178,-71.55609 c -6.3425,4.06563 -18.0196,8.65903 -25.475,8.66238 -0.7925,-0.0112 -5.03468,0.54495 -6.00958,1.25626 -0.6403,0.46711 10.25448,0.41437 11.04698,0.40316 7.6526,0.0151 15.4845,-0.51196 22.6313,-5.59687 z m -91.02843,78.93364 c 12.111,8.0199 30.50751,15.78543 45.43411,15.10303 0.7854,-0.033 11.9511,0 11.9184,-0.7907 -0.033,-0.7854 -9.045,-1.9138 -12.5309,-1.8437 -12.1034,0.2434 -31.76181,-10.25573 -43.41841,-17.97473 z m -27.62241,100.24103 c 2.7051,1.2392 15.5506,7.16777 30.0993,10.66247 13.903,3.3395 20.9834,4.3372 30.4753,4.9062 0.7847,0.047 19.8321,1.1729 19.7994,0.3875 -0.033,-0.7854 -13.841,-1.9358 -20.7369,-3.0625 -9.642,-1.5753 -13.9365,-2.8736 -27.5503,-6.1437 -14.2631,-3.4261 -26.97861,-10.14458 -29.58251,-11.33738 z m 51.68274,-165.33706 c 9.6774,2.87946 25.70651,13.81116 39.19012,10.57188 -12.95434,-1.73183 -26.54266,-11.25582 -37.98352,-14.64679 z m 56.39211,-27.17849 c -2.89096,2.91729 -7.13643,4.50234 -10.60251,4.63765 -0.7868,0.0142 -13.717,1.92244 -13.7008,2.70916 0.016,0.78672 13.51757,1.29995 14.2909,1.14346 2.6685,-0.54001 11.67998,-1.45728 13.13158,-3.96632 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscscccsscccssccccscscsccccsscscccccccccccsccccsscsscccscccccccccccccscccsccsscccccccccscc" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Cave/icon.png has changed
Binary file share/hedgewars/Data/Themes/Cave/icon.xcf has changed
Binary file share/hedgewars/Data/Themes/Cave/icon@2x.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Cave/theme.cfg Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,16 @@
+sky = 17, 18, 24
+border = 129, 135, 173
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $60
+music = snow.ogg
+clouds = 0
+object = Stalagmite01, 3, 5, 258, 100, 2, 1, 19, 0, 67, 173
+object = Stalagmite02, 3, 1, 159, 62, 3, 1, 11, 0, 45, 119
+object = Stalactite, 3, 0, 0, 55, 2, 1, 12, 61, 32, 79
+object = Crystal01, 3, 21, 258, 113, 2, 1, 0, 0, 165, 245
+object = Crystal02, 3, 16, 129, 57, 3, 1, 0, 0, 84, 124
+spray = CrystalSpray01, 2
+spray = CrystalSpray02, 3
+spray = CrystalSpray03, 4
+flakes = 8, 2, 99999999, 0, 1700
Binary file share/hedgewars/Data/Themes/Christmas/amGirder.png has changed
Binary file share/hedgewars/Data/Themes/CrazyMission/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Golf/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Halloween/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Jungle/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Sheep/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Snow/amGirder.png has changed
Binary file share/hedgewars/Data/Themes/Stage/SkyR.png has changed
--- a/tools/CMakeLists.txt Fri Oct 28 17:41:39 2011 +0200
+++ b/tools/CMakeLists.txt Fri Oct 28 18:26:17 2011 +0200
@@ -32,9 +32,11 @@
string(REGEX REPLACE "(.*);-.*" "\\1" sdl_dir "${SDL_LIBRARY}")
#this tool is present in qt 4.5 but only if you compile from sources; from qt 4.6 is present also in the binary version
- find_program(macdeployqt_EXE NAMES macdeployqt macdeployqt-mac PATHS ${qt_base_dir}/bin NO_DEFAULT_PATH)
+ find_program(macdeployqt_EXE NAMES macdeployqt macdeployqt-mac PATHS ${qt_base_dir}/bin)
if(NOT macdeployqt_EXE)
- message(FATAL_ERROR "The utility macdeployqt is required to create the bundle!")
+ message(FATAL_ERROR "The utility macdeployqt is required to create the bundle (seached: ${qt_base_dir})")
+ else()
+ message(STATUS "macdeployqt found in ${macdeployqt_EXE}")
endif()
#dummy target, we're interested in the postscript file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/docgen.sh Fri Oct 28 18:26:17 2011 +0200
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+
+if [ -d QTfrontend ]; then
+ cd QTfrontend
+else
+ if [ -d ../QTfrontend ]; then
+ cd ../QTfrontend
+ else
+ echo 'abort: Directory "QTfrontend" not found!' >&2
+ exit 1
+ fi
+fi
+
+if [ -z "$1" ]; then
+ OUTPUT_DIRECTORY="../doc/QTfrontend"
+else
+ OUTPUT_DIRECTORY="$1"
+fi
+
+echo "Creating documentation for Qt-Frontend in $OUTPUT_DIRECTORY ..."
+
+if [ $(which hg) ]; then
+
+branch=$(hg identify -b)
+rev=$(hg identify -rdefault -i)
+
+branchurl="<a href=http://code.google.com/p/hedgewars/source/list?name=${branch}>${branch}</a>"
+revurl="<a href=http://code.google.com/p/hedgewars/source/detail?r=${rev}>${rev}</a>"
+
+export PROJECT_NUMBER="${branchurl} as of ${revurl}"
+export OUTPUT_DIRECTORY
+
+fi
+
+doxygen
+exit $?