Mercurial > sumwars
changeset 2721:df5c37505a63 feature-particleuniverse
refs #34: Merged default with feature-particleuniverse
author | Stefan Stammberger <some.fusion@gmail.com> |
---|---|
date | Sun, 08 Jun 2014 11:05:00 +0200 |
parents | b39f98822019 (current diff) ec0676c7fb57 (diff) |
children | |
files | CMakeLists.txt src/gui/application.cpp src/gui/default_resources.cfg.inc.in src/gui/mainmenu.cpp |
diffstat | 174 files changed, 14795 insertions(+), 2013 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Sat Mar 22 19:09:18 2014 +0100 +++ b/.hgtags Sun Jun 08 11:05:00 2014 +0200 @@ -6,3 +6,4 @@ d03c72b61dda72cddfd66c77b90439b62a951e04 0.5.5 f9e7b440c0aa4244fcef90434731fb77ae5c617e 0.5.6 7d66c0fb4d5986f31ee5e6ecf98e58488f107c66 0.5.7 +441c4a4566c04e11dd1a361b6a8cde81f9e2312a 0.5.8
--- a/CMakeLists.txt Sat Mar 22 19:09:18 2014 +0100 +++ b/CMakeLists.txt Sun Jun 08 11:05:00 2014 +0200 @@ -22,7 +22,7 @@ OPTION(SUMWARS_NO_TINYXML "Do not use bundled, in-source TinyXML Lib" OFF) OPTION(SUMWARS_NO_ENET "Do not use bundled, in-source ENET Lib" OFF) -OPTION(SUMWARS_BUILD_TOOLS "Builds editor tools (not needed for gameplay, only useful for content authors)" ON) +OPTION(SUMWARS_BUILD_TOOLS "Builds editor tools (not needed for gameplay, only useful for content authors)" OFF) OPTION(SUMWARS_BUILD_WITH_ONLINE_SERVICE "Builds enables the online services)" OFF) OPTION(SUMWARS_UPDATE_HG_REVISION "Option to enable or disable automatic revision checking" ON) IF(WIN32) @@ -52,7 +52,7 @@ SET(SUMWARS_VERSION_MAJOR "0") SET(SUMWARS_VERSION_MINOR "5") -SET(SUMWARS_VERSION_PATCH "7") +SET(SUMWARS_VERSION_PATCH "8") SET(SUMWARS_VERSION_REVISION ${Project_WC_REVISION}) SET(SUMWARS_SHORT_VERSION "${SUMWARS_VERSION_MAJOR}.${SUMWARS_VERSION_MINOR}.${SUMWARS_VERSION_PATCH}") SET(SUMWARS_VERSION "${SUMWARS_SHORT_VERSION}.hg-${SUMWARS_VERSION_REVISION}") @@ -181,11 +181,10 @@ FIND_PACKAGE(OIS REQUIRED) FIND_PACKAGE(Lua REQUIRED) FIND_PACKAGE(CEGUI REQUIRED) +SET(CEGUI_VERSION_RESOURCES "gui_0.8") IF(CEGUI_VERSION VERSION_LESS "0.8.0") - SET(CEGUI_VERSION_RESOURCES "gui") -ELSE() - SET(CEGUI_VERSION_RESOURCES "gui_0.8") + MESSAGE(FATAL_ERROR "This version of Sumwars requires at least CEGUI 0.8.0") ENDIF() FIND_PACKAGE(CEGUIOGRE REQUIRED) @@ -407,38 +406,72 @@ ) SET(SRCS_GUI - ./src/gui/minimapwindow.cpp - ./src/gui/worldmap.cpp - ./src/gui/mainmenu.cpp + ./src/gui/application.cpp + ./src/gui/application.h + ./src/gui/ceguiutility.cpp + ./src/gui/ceguiutility.h ./src/gui/charcreate.cpp - ./src/gui/ceguiutility.cpp - ./src/gui/tooltipmanager.cpp + ./src/gui/charcreate.h + ./src/gui/charinfo.cpp + ./src/gui/charinfo.h + ./src/gui/chatline.cpp + ./src/gui/chatline.h + ./src/gui/clipboard.cpp + ./src/gui/clipboard.h ./src/gui/controlpanel.cpp + ./src/gui/controlpanel.h + ./src/gui/creditswindow.cpp + ./src/gui/creditswindow.h + ./src/gui/dialoguewindow.cpp + ./src/gui/dialoguewindow.h + ./src/gui/graphicmanager.cpp + ./src/gui/graphicmanager.h + ./src/gui/graphicobject.cpp + ./src/gui/graphicobject.h + ./src/gui/graphicobjectrenderinfo.cpp + ./src/gui/graphicobjectrenderinfo.h ./src/gui/inventory.cpp - ./src/gui/tradewindow.cpp - ./src/gui/dialoguewindow.cpp - ./src/gui/partyinfo.cpp + ./src/gui/inventory.h + ./src/gui/itemwindow.cpp + ./src/gui/itemwindow.h + ./src/gui/listitem.h + ./src/gui/main_gui.cpp + ./src/gui/mainmenu.cpp + ./src/gui/mainmenu.h + ./src/gui/mainwindow.cpp + ./src/gui/mainwindow.h + ./src/gui/messageboxes.cpp + ./src/gui/messageboxes.h + ./src/gui/minimapwindow.cpp + ./src/gui/minimapwindow.h ./src/gui/networkwindows.cpp - ./src/gui/creditswindow.cpp - ./src/gui/mainwindow.cpp - ./src/gui/application.cpp + ./src/gui/networkwindows.h + ./src/gui/optionswindow.cpp + ./src/gui/optionswindow.h + ./src/gui/partyinfo.cpp + ./src/gui/partyinfo.h + ./src/gui/questinfo.cpp + ./src/gui/questinfo.h + ./src/gui/savegamelist.cpp + ./src/gui/savegamelist.h + ./src/gui/scene.cpp + ./src/gui/scene.h ./src/gui/skilltree.cpp - ./src/gui/chatline.cpp - ./src/gui/charinfo.cpp - ./src/gui/itemwindow.cpp - ./src/gui/savegamelist.cpp - ./src/gui/scene.cpp - ./src/gui/graphicmanager.cpp - ./src/gui/main_gui.cpp - ./src/gui/messageboxes.cpp - ./src/gui/graphicobjectrenderinfo.cpp - ./src/gui/graphicobject.cpp - ./src/gui/questinfo.cpp + ./src/gui/skilltree.h ./src/gui/soundhelper.cpp + ./src/gui/soundhelper.h ./src/gui/soundobject.cpp + ./src/gui/soundobject.h ./src/gui/tooltip.cpp - ./src/gui/optionswindow.cpp - ./src/gui/clipboard.cpp + ./src/gui/tooltip.h + ./src/gui/tooltipmanager.cpp + ./src/gui/tooltipmanager.h + ./src/gui/tooltipsettings.h + ./src/gui/tradewindow.cpp + ./src/gui/tradewindow.h + ./src/gui/window.h + ./src/gui/worldmap.cpp + ./src/gui/worldmap.h # ./src/gui/ShaderManager.cpp # ./src/gui/ShadowCameraSetup.cpp ) @@ -461,27 +494,47 @@ ) IF(SUMWARS_BUILD_TOOLS) - SET(SRCS_BUILD_TOOLS + SET(SRCS_BUILD_TOOLS_DBG_PANEL ./src/gui/debugpanel/benchmarktab.cpp - ./src/gui/debugpanel/debugpanel.cpp + ./src/gui/debugpanel/benchmarktab.h ./src/gui/debugpanel/debugcameratab.cpp - ./src/gui/debugpanel/iconeditortab.cpp + ./src/gui/debugpanel/debugcameratab.h + ./src/gui/debugpanel/debugpanel.cpp + ./src/gui/debugpanel/debugpanel.h ./src/gui/debugpanel/guidebugtab.cpp + ./src/gui/debugpanel/guidebugtab.h + ./src/gui/debugpanel/iconeditortab.cpp + ./src/gui/debugpanel/iconeditortab.h ./src/gui/debugpanel/luascripttab.cpp + ./src/gui/debugpanel/luascripttab.h ./src/gui/debugpanel/textfileeditwindow.cpp + ./src/gui/debugpanel/textfileeditwindow.h ./src/gui/debugpanel/filebrowser/filebrowser.cpp + ./src/gui/debugpanel/filebrowser/filebrowser.h + ) + SET(SRCS_BUILD_TOOLS_CONTENT_EDITOR ./src/gui/contenteditor/contenteditor.cpp + ./src/gui/contenteditor/contenteditor.h ./src/gui/contenteditor/contenteditortab.cpp + ./src/gui/contenteditor/contenteditortab.h + ./src/gui/contenteditor/contenttab.h ./src/gui/contenteditor/fixedobjecteditor.cpp - ./src/gui/contenteditor/renderinfoeditor.cpp + ./src/gui/contenteditor/fixedobjecteditor.h + ./src/gui/contenteditor/gameinfotab.cpp + ./src/gui/contenteditor/gameinfotab.h ./src/gui/contenteditor/itemeditor.cpp + ./src/gui/contenteditor/itemeditor.h ./src/gui/contenteditor/monstereditor.cpp - ./src/gui/contenteditor/gameinfotab.cpp + ./src/gui/contenteditor/monstereditor.h + ./src/gui/contenteditor/renderinfoeditor.cpp + ./src/gui/contenteditor/renderinfoeditor.h ) - SOURCE_GROUP ("tools" FILES ${SRCS_BUILD_TOOLS}) + SOURCE_GROUP ("tools\\dbgpanel" FILES ${SRCS_BUILD_TOOLS_DBG_PANEL}) + SOURCE_GROUP ("tools\\contedit" FILES ${SRCS_BUILD_TOOLS_CONTENT_EDITOR}) SET(SRCS ${SRCS} - ${SRCS_BUILD_TOOLS} + ${SRCS_BUILD_TOOLS_DBG_PANEL} + ${SRCS_BUILD_TOOLS_CONTENT_EDITOR} ) ENDIF()
--- a/CMakeModules/FindCEGUI.cmake Sat Mar 22 19:09:18 2014 +0100 +++ b/CMakeModules/FindCEGUI.cmake Sun Jun 08 11:05:00 2014 +0200 @@ -43,14 +43,14 @@ FIND_LIBRARY(CEGUI_LIBRARY_OPTIMIZED NAMES CEGUIBase CEGUI CEGUIBase-0 PATHS $ENV{CEGUIDIR} - PATH_SUFFIXES lib bin + PATH_SUFFIXES lib lib64 bin ) FIND_LIBRARY(CEGUI_LIBRARY_DEBUG NAMES CEGUIBased CEGUIBase_d CEGUIBaseD CEGUIBase_D CEGUId CEGUI_d CEGUID CEGUI_D CEGUIBase-0_d PATHS $ENV{CEGUIDIR} - PATH_SUFFIXES lib bin + PATH_SUFFIXES lib lib64 bin ) FIND_FILE(CEGUI_BINARY_REL
--- a/CMakeModules/FindCEGUIOGRE.cmake Sat Mar 22 19:09:18 2014 +0100 +++ b/CMakeModules/FindCEGUIOGRE.cmake Sun Jun 08 11:05:00 2014 +0200 @@ -40,13 +40,13 @@ FIND_LIBRARY(CEGUIOGRE_LIBRARY_OPTIMIZED NAMES CEGUIOgreRenderer CEGUIOgreRenderer-0 CEGUI PATHS $ENV{CEGUIDIR} - PATH_SUFFIXES lib bin + PATH_SUFFIXES lib lib64 bin ) FIND_LIBRARY(CEGUIOGRE_LIBRARY_DEBUG NAMES CEGUIOgreRendererd CEGUIOgreRenderer_d CEGUIOgreRendererD CEGUIOgreRenderer_D CEGUIOgreRenderer-0_d PATHS $ENV{CEGUIDIR} - PATH_SUFFIXES lib bin + PATH_SUFFIXES lib lib64 bin ) # Collect optimized and debug libraries
--- a/Changelog.txt Sat Mar 22 19:09:18 2014 +0100 +++ b/Changelog.txt Sun Jun 08 11:05:00 2014 +0200 @@ -1,38 +1,23 @@ -Changes in version 0.5.5: - -* Installation: - - Provided installers for Linux and Windows +Changes in version 0.5.8: -* Gameplay: - - improved stability of network gameplay - - Changed number of inventory slots (5 big, 12 medium, 30 small, 5 belt slots) - - Belt provides separate item slots now - -* Story / Scripting: - - added new underground part to the tutorial with some more fighting - - provided questlog for the herbalist quest +* Scripting: + - added support for Lua 5.2 * User Interface: - - completely reskinned the GUI - - created new layouts for all ingame windows - - new main menu and character selection screen - - new feature: assign alternative right mouse skill (switch with tab) - - replaced most fonts + - added support for CEGUI 0.8 + - removed support dor CEGUI 0.7 * Graphics: - - added resetting graphics options (can be changed on next start of the game) - - fullscreen and windowed fullscreen are supported now - - dozens of new meshes for trees and bushes - - several new meshes for boxes and barrels - - new meshes for armors - - new terrain texture - - new icon + - added support for Ogre 1.9 * Translation: - - updates translations: German, Russian, Italian, Ukrainian, Polish - - Changing language works properly under Windows now - + - spanish translation greatly updated * Sound and Music: - - fixed issues with wrong sound format - - added several new sounds of items drops + - sound engine reworked + - added sounds for the GUI + - added gameplay sounds + +* General: + - fixed a number of bugs + - Poco dependency replaced with Boost \ No newline at end of file
--- a/INSTALL Sat Mar 22 19:09:18 2014 +0100 +++ b/INSTALL Sun Jun 08 11:05:00 2014 +0200 @@ -4,12 +4,12 @@ OGRE >= 1.7.3 OIS -CEGUI >= 0.7.5 +CEGUI >= 0.8.0 freealut, openal lua5.1 ogg, vorbis, vorbisfile physfs -POCO (for debug build only) +boost components: filesystem system date_time chrono thread) If you are lucky, all libs may be installed via package manager (apt-get, yum, emerge, pacman, ...). Have a look at the "OS dependant install" section below.
--- a/Sumwars_installer_bitrock.xml Sat Mar 22 19:09:18 2014 +0100 +++ b/Sumwars_installer_bitrock.xml Sun Jun 08 11:05:00 2014 +0200 @@ -1,7 +1,7 @@ <project> <shortName>Sumwars</shortName> <fullName>Summoning Wars</fullName> - <version>0.5.7</version> + <version>0.5.8</version> <readmeFile>README</readmeFile> <licenseFile>COPYING</licenseFile> <logoImage>share/resources/gui/imagesets/startscreen.png</logoImage> @@ -10,7 +10,7 @@ <componentList> <component> <name>vcruntime</name> - <description>Visual C++ 2010 runtime installer</description> + <description>Visual C++ 2012 runtime installer</description> <canBeEdited>1</canBeEdited> <selected>1</selected> <show>1</show> @@ -23,7 +23,7 @@ <runProgram> <program>${installdir}/vcredist_x86.exe</program> <programArguments>/q:a /c:"${msiexec.dos} /i vcredist.msi /qn /l*v ${system_temp_directory.dos}\vcredist_x86.log"</programArguments> - <progressText>Installing VC++ 2010 runtime</progressText> + <progressText>Installing VC++ 2012 runtime</progressText> </runProgram> </actionList> <distributionFileList> @@ -90,91 +90,112 @@ <platforms>all</platforms> <distributionFileList> <distributionDirectory> - <origin>inst/share</origin> + <origin>share</origin> </distributionDirectory> <distributionFile> - <origin>inst/AUTHORS</origin> + <origin>../Sumwars-build-cegui-branch/inst/alut.dll</origin> + </distributionFile> + <distributionFile> + <origin>../Sumwars-build-cegui-branch/inst/AUTHORS</origin> </distributionFile> <distributionFile> - <origin>inst/COPYING</origin> + <origin>../Sumwars-build-cegui-branch/inst/boost_filesystem-vc110-mt-1_52.dll</origin> + </distributionFile> + <distributionFile> + <origin>../Sumwars-build-cegui-branch/inst/boost_system-vc110-mt-1_52.dll</origin> </distributionFile> <distributionFile> - <origin>inst/README</origin> + <origin>../Sumwars-build-cegui-branch/inst/boost_thread-vc110-mt-1_52.dll</origin> </distributionFile> <distributionFile> - <origin>inst/alut.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/CEGUIBase-0.dll</origin> </distributionFile> <distributionFile> - <origin>inst/CEGUIBase.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/CEGUICommonDialogs-0.dll</origin> </distributionFile> <distributionFile> - <origin>inst/CEGUIExpatParser.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/CEGUICoreWindowRendererSet.dll</origin> </distributionFile> <distributionFile> - <origin>inst/CEGUIFalagardWRBase.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/CEGUIExpatParser.dll</origin> </distributionFile> <distributionFile> - <origin>inst/CEGUIOgreRenderer.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/CEGUIOgreRenderer-0.dll</origin> + </distributionFile> + <distributionFile> + <origin>../Sumwars-build-cegui-branch/inst/CEGUIXercesParser.dll</origin> </distributionFile> <distributionFile> - <origin>inst/cg.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/cg.dll</origin> </distributionFile> <distributionFile> - <origin>inst/libiconv2.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/COPYING</origin> </distributionFile> <distributionFile> - <origin>inst/libintl3.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/expat.dll</origin> </distributionFile> <distributionFile> - <origin>inst/lua.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/freetype.dll</origin> </distributionFile> <distributionFile> - <origin>inst/OgreMain.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/libcharset1.dll</origin> </distributionFile> <distributionFile> - <origin>inst/OgrePaging.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/libgettextlib.dll</origin> </distributionFile> <distributionFile> - <origin>inst/OgreProperty.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/libgettextpo.dll</origin> </distributionFile> <distributionFile> - <origin>inst/OgreRTShaderSystem.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/libgettextsrc.dll</origin> + </distributionFile> + <distributionFile> + <origin>../Sumwars-build-cegui-branch/inst/libiconv2.dll</origin> </distributionFile> <distributionFile> - <origin>inst/OgreTerrain.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/libintl3.dll</origin> + </distributionFile> + <distributionFile> + <origin>../Sumwars-build-cegui-branch/inst/lua.dll</origin> </distributionFile> <distributionFile> - <origin>inst/OIS.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/OgreMain.dll</origin> </distributionFile> <distributionFile> - <origin>inst/physfs.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/OgreProperty.dll</origin> </distributionFile> <distributionFile> - <origin>inst/Plugin_CgProgramManager.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/OgreRTShaderSystem.dll</origin> </distributionFile> <distributionFile> - <origin>inst/Plugin_OctreeSceneManager.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/OIS.dll</origin> </distributionFile> <distributionFile> - <origin>inst/Plugin_OctreeZone.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/pcre.dll</origin> </distributionFile> <distributionFile> - <origin>inst/Plugin_ParticleFX.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/Plugin_CgProgramManager.dll</origin> + </distributionFile> + <distributionFile> + <origin>../Sumwars-build-cegui-branch/inst/Plugin_OctreeSceneManager.dll</origin> </distributionFile> <distributionFile> - <origin>inst/Plugin_PCZSceneManager.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/Plugin_ParticleFX.dll</origin> </distributionFile> <distributionFile> - <origin>inst/PocoFoundation.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/README</origin> </distributionFile> <distributionFile> - <origin>inst/RenderSystem_Direct3D9.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/RenderSystem_Direct3D9.dll</origin> </distributionFile> <distributionFile> - <origin>inst/RenderSystem_GL.dll</origin> + <origin>../Sumwars-build-cegui-branch/inst/RenderSystem_GL.dll</origin> </distributionFile> <distributionFile> - <origin>inst/sumwars.exe</origin> + <origin>../Sumwars-build-cegui-branch/inst/sumwars.exe</origin> + </distributionFile> + <distributionFile> + <origin>../Sumwars-build-cegui-branch/inst/zlib.dll</origin> </distributionFile> </distributionFileList> <shortcutList> @@ -270,6 +291,7 @@ <readyToInstallActionList> <componentSelection> <deselect>oalruntime</deselect> + <explanation>Library is required to run Summoning Wars</explanation> <select></select> <ruleList> <fileExists path="${windows_folder_system}/OpenAL*.dll"/> @@ -277,9 +299,10 @@ </componentSelection> <componentSelection> <deselect>vcruntime</deselect> + <explanation>Library is required to run Summoning Wars</explanation> <select></select> <ruleList> - <fileExists path="${windows_folder_system}/msvcp100.dll"/> + <fileExists path="${windows_folder_system}/msvcp110.dll"/> </ruleList> </componentSelection> </readyToInstallActionList>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Beam_01.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Beam_01" layer="NORMAL"> + <Mesh file="Beam_01.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Beam_02.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Beam_02" layer="NORMAL"> + <Mesh file="Beam_02.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Beam_03.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Beam_03" layer="NORMAL"> + <Mesh file="Beam_03.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Braid.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Braid" layer="NORMAL"> + <Mesh file="Braid.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Mine_car_01.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Mine_car_01" layer="NORMAL"> + <Mesh file="Mine_car_01.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Mine_car_02.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Mine_car_02" layer="NORMAL"> + <Mesh file="Mine_car_02.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Mine_car_03.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Mine_car_03" layer="NORMAL"> + <Mesh file="Mine_car_03.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Mushroom_cave_01.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Mushroom_cave_01" layer="NORMAL"> + <Mesh file="Mushroom_cave_01.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Mushroom_cave_02.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Mushroom_cave_02" layer="NORMAL"> + <Mesh file="Mushroom_cave_02.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Root.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Root" layer="NORMAL"> + <Mesh file="Root.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/Stalagmiten.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="Stalagmiten" layer="NORMAL"> + <Mesh file="Stalagmiten.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/beams_Stones_01.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="beams_Stones_01" layer="NORMAL"> + <Mesh file="beams_Stones_01.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/beams_Stones_02.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="beams_Stones_02" layer="NORMAL"> + <Mesh file="beams_Stones_02.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/hammer_rusty.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="hammer_rusty" layer="NORMAL"> + <Mesh file="hammer_rusty.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/ladder_02_derstr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="ladder_02_derstr" layer="NORMAL"> + <Mesh file="ladder_02_derstr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/ladder_03_derstr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="ladder_03_derstr" layer="NORMAL"> + <Mesh file="ladder_03_derstr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/ore.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="ore" layer="NORMAL"> + <Mesh file="ore.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/pickaxe_rusty.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="pickaxe_rusty" layer="NORMAL"> + <Mesh file="pickaxe_rusty.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/pillar.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="pillar" layer="NORMAL"> + <Mesh file="pillar.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_30g_left.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_30g_left" layer="NORMAL"> + <Mesh file="rail_30g_left.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_30g_right.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_30g_right" layer="NORMAL"> + <Mesh file="rail_30g_right.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_60g_cross.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_60g_cross" layer="NORMAL"> + <Mesh file="rail_60g_cross.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_60g_left.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_60g_left" layer="NORMAL"> + <Mesh file="rail_60g_left.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_60g_right.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_60g_right" layer="NORMAL"> + <Mesh file="rail_60g_right.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_90g_cross.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_90g_cross" layer="NORMAL"> + <Mesh file="rail_90g_cross.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_90g_left.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_90g_left" layer="NORMAL"> + <Mesh file="rail_90g_left.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_90g_right.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_90g_right" layer="NORMAL"> + <Mesh file="rail_90g_right.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_Y_junction_60g.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_Y_junction_60g" layer="NORMAL"> + <Mesh file="rail_Y_junction_60g.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_Y_junction_90g.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_Y_junction_90g" layer="NORMAL"> + <Mesh file="rail_Y_junction_90g.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_buffer.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_buffer" layer="NORMAL"> + <Mesh file="rail_buffer.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_junction_60g_straight_left.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_junction_60g_straight_left" layer="NORMAL"> + <Mesh file="rail_junction_60g_straight_left.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_junction_60g_straight_left_right.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_junction_60g_straight_left_right" layer="NORMAL"> + <Mesh file="rail_junction_60g_straight_left_right.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_junction_60g_straight_right.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_junction_60g_straight_right" layer="NORMAL"> + <Mesh file="rail_junction_60g_straight_right.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_junction_90g_straight_left.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_junction_90g_straight_left" layer="NORMAL"> + <Mesh file="rail_junction_90g_straight_left.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_junction_90g_straight_right.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_junction_90g_straight_right" layer="NORMAL"> + <Mesh file="rail_junction_90g_straight_right.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/rail_straight.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="rail_straight" layer="NORMAL"> + <Mesh file="rail_straight.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin2_02_destr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin2_02_destr" layer="NORMAL"> + <Mesh file="scaffoldin2_02_destr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin2_03_destr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin2_03_destr" layer="NORMAL"> + <Mesh file="scaffoldin2_03_destr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin3_02_destr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin3_02_destr" layer="NORMAL"> + <Mesh file="scaffoldin3_02_destr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin3_03_destr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin3_03_destr" layer="NORMAL"> + <Mesh file="scaffoldin3_03_destr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin_02_destr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin_02_destr" layer="NORMAL"> + <Mesh file="scaffoldin_02_destr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin_03_destr.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin_03_destr" layer="NORMAL"> + <Mesh file="scaffoldin_03_destr.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin_s1_02_dest.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin_s1_02_dest" layer="NORMAL"> + <Mesh file="scaffoldin_s1_02_dest.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin_s1_03_dest.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin_s1_03_dest" layer="NORMAL"> + <Mesh file="scaffoldin_s1_03_dest.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin_s2_02_dest.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin_s2_02_dest" layer="NORMAL"> + <Mesh file="scaffoldin_s2_02_dest.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/scaffoldin_s2_03_dest.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="scaffoldin_s2_03_dest" layer="NORMAL"> + <Mesh file="scaffoldin_s2_03_dest.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/wall_1x1x5.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="wall_1x1x5" layer="NORMAL"> + <Mesh file="wall_1x1x5.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/wall_1x1x5_Corner_inside.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="wall_1x1x5_Corner_inside" layer="NORMAL"> + <Mesh file="wall_1x1x5_Corner_inside.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/wall_1x1x5_Corner_outside.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="wall_1x1x5_Corner_outside" layer="NORMAL"> + <Mesh file="wall_1x1x5_Corner_outside.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/wall_2x1x5.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="wall_2x1x5" layer="NORMAL"> + <Mesh file="wall_2x1x5.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/wall_4x1x5.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="wall_4x1x5" layer="NORMAL"> + <Mesh file="wall_4x1x5.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/data/objects/wall_8x1x5.xml Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,4 @@ +<Object type="FIXED_OBJECT" subtype="wall_8x1x5" layer="NORMAL"> + <Mesh file="wall_8x1x5.mesh" /> + <Geometry shape="CIRCLE" radius="0.5"/> +</Object>
--- a/share/resources/gui_0.8/fonts/SWB-L.font Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/fonts/SWB-L.font Sun Jun 08 11:05:00 2014 +0200 @@ -1,2 +1,2 @@ <?xml version="1.0" ?> -<Font version="3" name="SWB-L" filename="IMFeGPsc29P.ttf" type="FreeType" size="12" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/> +<Font version="3" name="SWB-L" filename="IMFeGPsc29P.ttf" type="FreeType" size="15" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/>
--- a/share/resources/gui_0.8/fonts/SWB-M.font Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/fonts/SWB-M.font Sun Jun 08 11:05:00 2014 +0200 @@ -1,2 +1,2 @@ <?xml version="1.0" ?> -<Font version="3" name="SWB-M" filename="IMFeENrm29P.ttf" type="FreeType" size="10" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/> +<Font version="3" name="SWB-M" filename="IMFeENrm29P.ttf" type="FreeType" size="13" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/>
--- a/share/resources/gui_0.8/fonts/SWB-S.font Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/fonts/SWB-S.font Sun Jun 08 11:05:00 2014 +0200 @@ -1,2 +1,2 @@ <?xml version="1.0" ?> -<Font version="3" name="SWB-S" filename="IMFeENrm29P.ttf" type="FreeType" size="9" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/> +<Font version="3" name="SWB-S" filename="IMFeENrm29P.ttf" type="FreeType" size="12" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/>
--- a/share/resources/gui_0.8/fonts/SWB-XL.font Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/fonts/SWB-XL.font Sun Jun 08 11:05:00 2014 +0200 @@ -1,2 +1,2 @@ <?xml version="1.0" ?> -<Font version="3" name="SWB-XL" filename="IMFeENrm29P.ttf" type="FreeType" size="14" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/> +<Font version="3" name="SWB-XL" filename="IMFeENrm29P.ttf" type="FreeType" size="18" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/>
--- a/share/resources/gui_0.8/fonts/SWB-XS.font Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/fonts/SWB-XS.font Sun Jun 08 11:05:00 2014 +0200 @@ -1,2 +1,2 @@ <?xml version="1.0" ?> -<Font version="3" name="SWB-XS" filename="IMFeENrm29P.ttf" type="FreeType" size="8" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/> +<Font version="3" name="SWB-XS" filename="IMFeENrm29P.ttf" type="FreeType" size="10" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="vertical"/>
--- a/share/resources/gui_0.8/layouts/benchmarktab.layout Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/layouts/benchmarktab.layout Sun Jun 08 11:05:00 2014 +0200 @@ -3,97 +3,99 @@ <GUILayout version="4" > <Window type="DefaultWindow" name="BenchmarkTab" > <Property name="Area" value="{{0.209961,0},{0.175781,0},{0.81543,0},{0.761719,0}}" /> - <Window type="TaharezLook/Button" name="BenchmarkTab/StartButton" > + <Window type="TaharezLook/Button" name="StartButton" > <Property name="Text" value="Start Benchmark" /> <Property name="Area" value="{{0.0235144,0},{0.861905,0},{0.34983,0},{0.973016,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="BenchmarkTab/CPULabel" > + <Window type="TaharezLook/StaticText" name="CPULabel" > <Property name="Text" value="CPU:" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.0210526,0},{0.0428571,1},{0.0939728,2},{0.120635,1}}" /> <Property name="BackgroundEnabled" value="False" /> - <AutoWindow NameSuffix="__auto_hscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + + <AutoWindow namePath="__auto_hscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> - <AutoWindow NameSuffix="__auto_vscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_vscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> + </Window> - <Window type="TaharezLook/StaticText" name="BenchmarkTab/GPULabel2" > + <Window type="TaharezLook/StaticText" name="GPULabel2" > <Property name="Text" value="GPU:" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.0210526,0},{0.136508,-1},{0.0939727,2},{0.214286,-1}}" /> <Property name="BackgroundEnabled" value="False" /> - <AutoWindow NameSuffix="__auto_hscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_hscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> - <AutoWindow NameSuffix="__auto_vscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_vscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> </Window> - <Window type="TaharezLook/MultiLineEditbox" name="BenchmarkTab/ResultsEditbox" > + <Window type="TaharezLook/MultiLineEditbox" name="ResultsEditbox" > <Property name="Text" > </Property> <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0241935,0},{0.233333,0},{0.983871,0},{0.844445,0}}" /> <Property name="TextParsingEnabled" value="False" /> - <AutoWindow NameSuffix="__auto_hscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_hscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> - <AutoWindow NameSuffix="__auto_vscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_vscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> </Window> - <Window type="TaharezLook/Button" name="BenchmarkTab/Button" > + <Window type="TaharezLook/Button" name="Button" > <Property name="Text" value="Save Results" /> <Property name="Disabled" value="True" /> <Property name="Area" value="{{0.362903,0},{0.866667,0},{0.66129,0},{0.966667,0}}" /> </Window> - <Window type="TaharezLook/Button" name="BenchmarkTab/Button2" > + <Window type="TaharezLook/Button" name="Button2" > <Property name="Text" value="Send by Email" /> <Property name="Disabled" value="True" /> <Property name="Area" value="{{0.677419,0},{0.866667,0},{0.983871,0},{0.966667,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="BenchmarkTab/CPULabel2" > + <Window type="TaharezLook/StaticText" name="CPULabel2" > <Property name="Text" value="OS:" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.545246,2},{0.0428571,1},{0.610102,2},{0.120635,1}}" /> <Property name="BackgroundEnabled" value="False" /> - <AutoWindow NameSuffix="__auto_hscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_hscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> - <AutoWindow NameSuffix="__auto_vscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_vscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> </Window> - <Window type="TaharezLook/StaticText" name="BenchmarkTab/GPULabel22" > + <Window type="TaharezLook/StaticText" name="GPULabel22" > <Property name="Text" value="Driver:" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.496859,2},{0.136508,-1},{0.585908,2},{0.214285,-1}}" /> <Property name="BackgroundEnabled" value="False" /> - <AutoWindow NameSuffix="__auto_hscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_hscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> - <AutoWindow NameSuffix="__auto_vscrollbar__" > - <AutoWindow NameSuffix="__auto_incbtn__" /> + <AutoWindow namePath="__auto_vscrollbar__" > + <AutoWindow namePath="__auto_incbtn__" /> </AutoWindow> </Window> - <Window type="TaharezLook/Editbox" name="BenchmarkTab/CPUBox" > + <Window type="TaharezLook/Editbox" name="CPUBox" > <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0967742,0},{0.0444444,0},{0.483871,0},{0.122222,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Editbox" name="BenchmarkTab/GPUBox" > + <Window type="TaharezLook/Editbox" name="GPUBox" > <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0967742,0},{0.133333,0},{0.483871,0},{0.211111,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Editbox" name="BenchmarkTab/OSBox" > + <Window type="TaharezLook/Editbox" name="OSBox" > <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.596774,0},{0.0444447,0},{0.983871,0},{0.122222,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Editbox" name="BenchmarkTab/DriverBox" > + <Window type="TaharezLook/Editbox" name="DriverBox" > <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.596774,0},{0.133334,0},{0.983871,0},{0.211111,0}}" /> <Property name="TextParsingEnabled" value="False" />
--- a/share/resources/gui_0.8/layouts/contenteditor.layout Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/layouts/contenteditor.layout Sun Jun 08 11:05:00 2014 +0200 @@ -14,97 +14,83 @@ <Property name="TabHeight" value="{0,31.1724}" /> <Property name="TabPanePosition" value="Top" /> <Property name="Area" value="{{0.00391872,0},{0.00348824,0},{0.527266,0},{1.00058,0}}" /> - <Window type="DefaultWindow" name="RITab/BasicMesh" > + <Window type="DefaultWindow" name="BasicMesh" > <Property name="Text" value="Mesh" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/Combobox" name="RITab/BM/MeshSelector" > + <Window type="TaharezLook/Combobox" name="MeshSelector" > <Property name="Area" value="{{0.334514,0},{0.0363174,0},{0.662888,0},{0.905855,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/BM/MainMeshLabel" > + <Window type="TaharezLook/StaticText" name="MainMeshLabel" > <Property name="Text" value="Select main mesh:" /> - <Property name="HorzExtent" value="115" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03739,0},{0.0186585,0},{0.327415,0},{0.0879001,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="RITab/SubMesh" > + <Window type="DefaultWindow" name="SubMesh" > <Property name="Text" value="Submeshes" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/Combobox" name="RITab/SubMesh/Selector" > + <Window type="TaharezLook/Combobox" name="Selector" > <Property name="Area" value="{{0.3,0},{0.023961,0},{0.65,0},{0.50428,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/Button" name="RITab/SubMesh/AddSubMeshButton" > + <Window type="TaharezLook/Button" name="AddSubMeshButton" > <Property name="Text" value="Add Submesh" /> <Property name="Area" value="{{0.7,0},{0.06618,0},{0.950041,0},{0.128133,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/NewSubmeshLabel" > + <Window type="TaharezLook/StaticText" name="NewSubmeshLabel" > <Property name="Text" value="New submesh:" /> - <Property name="HorzExtent" value="91" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.022898,0},{0.238785,0},{0.068202,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/NewSMNameLabel" > + <Window type="TaharezLook/StaticText" name="NewSMNameLabel" > <Property name="Text" value="submesh name:" /> - <Property name="HorzExtent" value="97" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.0270315,0},{0.0721111,0},{0.243158,0},{0.127415,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/EditSMLabel" > + <Window type="TaharezLook/StaticText" name="EditSMLabel" > <Property name="Text" value="Edit submesh:" /> - <Property name="HorzExtent" value="86" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.0232801,0},{0.181441,0},{0.249406,0},{0.236745,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="RITab/SubMesh/EditSMSelector" > + <Window type="TaharezLook/Combobox" name="EditSMSelector" > <Property name="Area" value="{{0.3,0},{0.185165,0},{0.65,0},{0.575544,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/AttachMeshLabel" > + <Window type="TaharezLook/StaticText" name="AttachMeshLabel" > <Property name="Text" value="Attach to:" /> - <Property name="HorzExtent" value="61" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.08,0},{0.228963,0},{0.259419,0},{0.304266,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="RITab/SubMesh/AttachMeshSelector" > + <Window type="TaharezLook/Combobox" name="AttachMeshSelector" > <Property name="Area" value="{{0.24,0},{0.251637,0},{0.55,0},{0.696243,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/BoneLabel" > + <Window type="TaharezLook/StaticText" name="BoneLabel" > <Property name="Text" value="at bone:" /> - <Property name="HorzExtent" value="51" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.57,0},{0.242082,0},{0.721903,0},{0.301351,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="RITab/SubMesh/BoneSelector" > + <Window type="TaharezLook/Combobox" name="BoneSelector" > <Property name="Area" value="{{0.7,0},{0.254553,0},{0.98,0},{0.699159,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/Editbox" name="RITab/SM/SMNameEditbox" > + <Window type="TaharezLook/Editbox" name="SMNameEditbox" > <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.3,0},{0.077842,0},{0.65,0},{0.122302,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Checkbox" name="RITab/SM/AttachSMCheckbox" > + <Window type="TaharezLook/Checkbox" name="AttachSMCheckbox" > <Property name="Area" value="{{0.0329296,0},{0.24344,0},{0.0784697,0},{0.293731,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/RotateLabel" > + <Window type="TaharezLook/StaticText" name="RotateLabel" > <Property name="Text" value="Rotate(x,y,z):" /> - <Property name="HorzExtent" value="84" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.02,0},{0.4,0},{0.219404,0},{0.46,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="RITab/SM/SMRotateX" > + <Window type="TaharezLook/Spinner" name="SMRotateX" > <Property name="StepSize" value="5" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="3600" /> @@ -113,7 +99,7 @@ <Property name="Area" value="{{0.25,0},{0.40842,0},{0.45,0},{0.46,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Spinner" name="RITab/SM/SMRotateY" > + <Window type="TaharezLook/Spinner" name="SMRotateY" > <Property name="StepSize" value="5" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="3600" /> @@ -122,7 +108,7 @@ <Property name="Area" value="{{0.5,0},{0.40842,0},{0.7,0},{0.46,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Spinner" name="RITab/SM/SMRotateZ" > + <Window type="TaharezLook/Spinner" name="SMRotateZ" > <Property name="StepSize" value="5" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="3600" /> @@ -131,14 +117,12 @@ <Property name="Area" value="{{0.75,0},{0.40842,0},{0.95,0},{0.46,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/ScaleLabel" > + <Window type="TaharezLook/StaticText" name="ScaleLabel" > <Property name="Text" value="Scale:" /> - <Property name="HorzExtent" value="37" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.02,0},{0.5,0},{0.22,0},{0.56,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="RITab/SM/SMScale" > + <Window type="TaharezLook/Spinner" name="SMScale" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="100" /> @@ -147,14 +131,12 @@ <Property name="Area" value="{{0.25,0},{0.5,0},{0.45,0},{0.56,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/StaticText" name="RITab/SM/OffsetLabel" > + <Window type="TaharezLook/StaticText" name="OffsetLabel" > <Property name="Text" value="Offset (x,y,z):" /> - <Property name="HorzExtent" value="85" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.02,0},{0.6,0},{0.22,0},{0.66,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="RITab/SM/SMOffsetX" > + <Window type="TaharezLook/Spinner" name="SMOffsetX" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="200" /> @@ -163,7 +145,7 @@ <Property name="Area" value="{{0.25,0},{0.6,0},{0.45,0},{0.66,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Spinner" name="RITab/SM/SMOffsetY" > + <Window type="TaharezLook/Spinner" name="SMOffsetY" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="200" /> @@ -172,7 +154,7 @@ <Property name="Area" value="{{0.5,0},{0.6,0},{0.7,0},{0.66,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Spinner" name="RITab/SM/SMOffsetZ" > + <Window type="TaharezLook/Spinner" name="SMOffsetZ" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="200" /> @@ -181,34 +163,34 @@ <Property name="Area" value="{{0.75,0},{0.6,0},{0.95,0},{0.66,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Button" name="RITab/SubMesh/DelSubMeshButton" > + <Window type="TaharezLook/Button" name="DelSubMeshButton" > <Property name="Text" value="Delete Submesh" /> <Property name="Area" value="{{0.672314,0},{0.76618,0},{0.950041,0},{0.828133,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="RITab/Animations" > + <Window type="DefaultWindow" name="Animations" > <Property name="Text" value="Animations" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> </Window> - <Window type="DefaultWindow" name="RITab/XML" > + <Window type="DefaultWindow" name="XML" > <Property name="Text" value="XML" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/MultiLineEditbox" name="RITab/XML/RIXMLEditbox" > + <Window type="TaharezLook/MultiLineEditbox" name="RIXMLEditbox" > <Property name="Text" > </Property> <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0229259,0},{0.0172008,0},{0.986204,0},{0.901313,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Button" name="RITab/XML/SubmitButton" > + <Window type="TaharezLook/Button" name="SubmitButton" > <Property name="Text" value="Submit XML" /> <Property name="Area" value="{{0.0344625,0},{0.919477,0},{0.390245,0},{0.976916,0}}" /> </Window> </Window> </Window> - <Window type="TaharezLook/StaticImage" name="RITab/BM/meshPreview" > + <Window type="TaharezLook/StaticImage" name="meshPreview" > <Property name="Area" value="{{0.535738,0},{0.0565595,0},{0.983904,0},{0.772162,0}}" /> </Window> </Window> @@ -220,35 +202,29 @@ <Property name="TabHeight" value="{0,31.1724}" /> <Property name="TabPanePosition" value="Top" /> <Property name="Area" value="{{0.00391872,0},{0.00348824,0},{0.527266,0},{1.00058,0}}" /> - <Window type="DefaultWindow" name="FOTab/Properties" > + <Window type="DefaultWindow" name="Properties" > <Property name="Text" value="Properties" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{-0.00215884,0},{0,0},{0.997841,0},{1,0}}" /> - <Window type="TaharezLook/StaticText" name="FOTab/Prop/ShapeLabel" > + <Window type="TaharezLook/StaticText" name="ShapeLabel" > <Property name="Text" value="Shape:" /> - <Property name="HorzExtent" value="42" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.01,0},{0.347415,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/RadioButton" name="FOTab/Prop/CircleCheckbox" > + <Window type="TaharezLook/RadioButton" name="CircleCheckbox" > <Property name="Area" value="{{0.03,0},{0.1,0},{0.1,0},{0.15,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Prop/CircleLabel" > + <Window type="TaharezLook/StaticText" name="CircleLabel" > <Property name="Text" value="Circle" /> - <Property name="HorzExtent" value="37" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.1,0},{0.1,0},{0.2,0},{0.15,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Prop/RadiusLabel" > + <Window type="TaharezLook/StaticText" name="RadiusLabel" > <Property name="Text" value="Radius:" /> - <Property name="HorzExtent" value="42" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.3,0},{0.1,0},{0.4,0},{0.15,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="FOTab/Prop/RadiusSpinner" > + <Window type="TaharezLook/Spinner" name="RadiusSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="20" /> @@ -257,28 +233,24 @@ <Property name="Area" value="{{0.42,0},{0.1,0},{0.62,0},{0.15,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Button" name="FOTab/Prop/DetectCircleButton" > + <Window type="TaharezLook/Button" name="DetectCircleButton" > <Property name="Text" value="Autodetect" /> <Property name="Area" value="{{0.7,0},{0.1,0},{0.92,0},{0.15,0}}" /> </Window> - <Window type="TaharezLook/RadioButton" name="FOTab/Prop/RectangleCheckbox" > + <Window type="TaharezLook/RadioButton" name="RectangleCheckbox" > <Property name="Area" value="{{0.03,0},{0.2,0},{0.1,0},{0.25,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Prop/RectangleLabel" > + <Window type="TaharezLook/StaticText" name="RectangleLabel" > <Property name="Text" value="Rectangle" /> - <Property name="HorzExtent" value="63" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.1,0},{0.2,0},{0.2,0},{0.25,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Prop/WidthLabel" > + <Window type="TaharezLook/StaticText" name="WidthLabel" > <Property name="Text" value="Width:" /> - <Property name="HorzExtent" value="38" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.3,0},{0.2,0},{0.4,0},{0.25,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="FOTab/Prop/WidthSpinner" > + <Window type="TaharezLook/Spinner" name="WidthSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="20" /> @@ -287,14 +259,12 @@ <Property name="Area" value="{{0.42,0},{0.2,0},{0.62,0},{0.25,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Prop/DepthLabel" > + <Window type="TaharezLook/StaticText" name="DepthLabel" > <Property name="Text" value="Depth:" /> - <Property name="HorzExtent" value="42" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.3,0},{0.301493,0},{0.4,0},{0.351493,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="FOTab/Prop/DepthSpinner" > + <Window type="TaharezLook/Spinner" name="DepthSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="20" /> @@ -303,100 +273,92 @@ <Property name="Area" value="{{0.42,0},{0.3,0},{0.62,0},{0.35,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Button" name="FOTab/Prop/DetectRectButton" > + <Window type="TaharezLook/Button" name="DetectRectButton" > <Property name="Text" value="Autodetect" /> <Property name="Area" value="{{0.7,0},{0.3,0},{0.92,0},{0.35,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Prop/CollisionLabel" > + <Window type="TaharezLook/StaticText" name="CollisionLabel" > <Property name="Text" value="Collision type" /> - <Property name="HorzExtent" value="85" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.1,0},{0.4,0},{0.4,0},{0.45,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="FOTab/Prop/LayerSelector" > + <Window type="TaharezLook/Combobox" name="LayerSelector" > <Property name="Area" value="{{0.42,0},{0.4,0},{0.62,0},{0.8,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Properties/CopyDataLabel" > + <Window type="TaharezLook/StaticText" name="CopyDataLabel" > <Property name="Text" value="Copy data from:" /> - <Property name="HorzExtent" value="100" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.6,0},{0.3,0},{0.65,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="FOTab/Properties/CopyDataBox" > + <Window type="TaharezLook/Combobox" name="CopyDataBox" > <Property name="Area" value="{{0.28,0},{0.6,0},{0.65,0},{0.95,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/Button" name="FOTab/Properties/CopyDataButton" > + <Window type="TaharezLook/Button" name="CopyDataButton" > <Property name="Text" value="Copy" /> <Property name="Area" value="{{0.7,0},{0.6,0},{0.85,0},{0.65,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="FOTab/Create" > + <Window type="DefaultWindow" name="Create" > <Property name="Text" value="Create Object" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/Button" name="FOTab/XML/CreateButton" > + <Window type="TaharezLook/Button" name="CreateButton" > <Property name="Text" value="Create Object" /> <Property name="Area" value="{{0.0452567,0},{0.320993,0},{0.401039,0},{0.378432,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Create/PosLabel" > + <Window type="TaharezLook/StaticText" name="PosLabel" > <Property name="Text" value="Position:" /> - <Property name="HorzExtent" value="53" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.05,0},{0.03,0},{0.22,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="FOTab/Create/PosXSpinner" > + <Window type="TaharezLook/Spinner" name="PosXSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.28,0},{0.03,0},{0.54,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="FOTab/Create/PosYSpinner" > + <Window type="TaharezLook/Spinner" name="PosYSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.61,0},{0.03,0},{0.88,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Button" name="FOTab/Create/GetPlPosButton" > + <Window type="TaharezLook/Button" name="GetPlPosButton" > <Property name="Text" value="Get Player Position" /> <Property name="Area" value="{{0.495761,0},{0.123872,0},{0.858021,0},{0.184297,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="FOTab/Create/AngleLabel" > + <Window type="TaharezLook/StaticText" name="AngleLabel" > <Property name="Text" value="Angle:" /> - <Property name="HorzExtent" value="39" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.2,0},{0.2,0},{0.28,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="FOTab/Create/AngleSpinner" > + <Window type="TaharezLook/Spinner" name="AngleSpinner" > <Property name="StepSize" value="5" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="3600" /> <Property name="MinimumValue" value="-3600" /> <Property name="Area" value="{{0.28,0},{0.2,0},{0.54,0},{0.27,0}}" /> </Window> - <Window type="TaharezLook/Button" name="FOTab/Create/DelAllButton" > + <Window type="TaharezLook/Button" name="DelAllButton" > <Property name="Text" value="Delete all objects" /> <Property name="Area" value="{{0.0552785,0},{0.871688,0},{0.436968,0},{0.94256,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="FOTab/XML" > + <Window type="DefaultWindow" name="XML" > <Property name="Text" value="XML" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/MultiLineEditbox" name="FOTab/XML/FOXMLEditbox" > + <Window type="TaharezLook/MultiLineEditbox" name="FOXMLEditbox" > <Property name="Text" > </Property> <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0229259,0},{0.0172008,0},{0.986204,0},{0.901313,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Button" name="FOTab/XML/SubmitButton" > + <Window type="TaharezLook/Button" name="SubmitButton" > <Property name="Text" value="Submit XML" /> <Property name="Area" value="{{0.0344625,0},{0.919477,0},{0.390245,0},{0.976916,0}}" /> </Window> @@ -411,18 +373,16 @@ <Property name="TabHeight" value="{0,31.1724}" /> <Property name="TabPanePosition" value="Top" /> <Property name="Area" value="{{0.00391872,0},{0.00348824,0},{0.527266,0},{1.00058,0}}" /> - <Window type="DefaultWindow" name="MonsterTab/Properties" > + <Window type="DefaultWindow" name="Properties" > <Property name="Text" value="Properties" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{-0.00215884,0},{0,0},{0.997841,0},{1,0}}" /> - <Window type="TaharezLook/StaticText" name="MonsterTab/Prop/RadiusLabel" > + <Window type="TaharezLook/StaticText" name="RadiusLabel" > <Property name="Text" value="Radius:" /> - <Property name="HorzExtent" value="42" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.3,0},{0.1,0},{0.4,0},{0.15,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="MonsterTab/Prop/RadiusSpinner" > + <Window type="TaharezLook/Spinner" name="RadiusSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="20" /> @@ -432,91 +392,85 @@ <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/StaticText" name="MonsterTab/Properties/CopyDataLabel" > + <Window type="TaharezLook/StaticText" name="CopyDataLabel" > <Property name="Text" value="Copy data from:" /> - <Property name="HorzExtent" value="100" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.6,0},{0.3,0},{0.65,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="MonsterTab/Properties/CopyDataBox" > + <Window type="TaharezLook/Combobox" name="CopyDataBox" > <Property name="Area" value="{{0.28,0},{0.6,0},{0.65,0},{0.95,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/Button" name="MonsterTab/Properties/CopyDataButton" > + <Window type="TaharezLook/Button" name="CopyDataButton" > <Property name="Text" value="Copy" /> <Property name="Area" value="{{0.7,0},{0.6,0},{0.85,0},{0.65,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="MonsterTab/Create" > + <Window type="DefaultWindow" name="Create" > <Property name="Text" value="Create Object" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/Button" name="MonsterTab/XML/CreateButton" > + <Window type="TaharezLook/Button" name="CreateButton" > <Property name="Text" value="Create Object" /> <Property name="Area" value="{{0.0452567,0},{0.320993,0},{0.401039,0},{0.378432,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="MonsterTab/Create/PosLabel" > + <Window type="TaharezLook/StaticText" name="PosLabel" > <Property name="Text" value="Position:" /> - <Property name="HorzExtent" value="53" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.05,0},{0.03,0},{0.22,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="MonsterTab/Create/PosXSpinner" > + <Window type="TaharezLook/Spinner" name="PosXSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.28,0},{0.03,0},{0.54,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="MonsterTab/Create/PosYSpinner" > + <Window type="TaharezLook/Spinner" name="PosYSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.61,0},{0.03,0},{0.88,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Button" name="MonsterTab/Create/GetPlPosButton" > + <Window type="TaharezLook/Button" name="GetPlPosButton" > <Property name="Text" value="Get Player Position" /> <Property name="Area" value="{{0.495761,0},{0.123872,0},{0.858021,0},{0.184297,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="MonsterTab/Create/AngleLabel" > + <Window type="TaharezLook/StaticText" name="AngleLabel" > <Property name="Text" value="Angle:" /> - <Property name="HorzExtent" value="39" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.2,0},{0.2,0},{0.28,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="MonsterTab/Create/AngleSpinner" > + <Window type="TaharezLook/Spinner" name="AngleSpinner" > <Property name="StepSize" value="5" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="3600" /> <Property name="MinimumValue" value="-3600" /> <Property name="Area" value="{{0.28,0},{0.2,0},{0.54,0},{0.27,0}}" /> </Window> - <Window type="TaharezLook/Button" name="MonsterTab/Create/DelAllButton" > + <Window type="TaharezLook/Button" name="DelAllButton" > <Property name="Text" value="Delete all objects" /> <Property name="Area" value="{{0.0552785,0},{0.871688,0},{0.436968,0},{0.94256,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="MonsterTab/XML" > + <Window type="DefaultWindow" name="XML" > <Property name="Text" value="XML" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/MultiLineEditbox" name="MonsterTab/XML/MonsterXMLEditbox" > + <Window type="TaharezLook/MultiLineEditbox" name="MonsterXMLEditbox" > <Property name="Text" > </Property> <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0229259,0},{0.0172008,0},{0.986204,0},{0.901313,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Button" name="MonsterTab/XML/SubmitButton" > + <Window type="TaharezLook/Button" name="SubmitButton" > <Property name="Text" value="Submit XML" /> <Property name="Area" value="{{0.0344625,0},{0.919477,0},{0.390245,0},{0.976916,0}}" /> </Window> </Window> </Window> - </Window> + </Window> <Window type="DefaultWindow" name="ItemTab" > <Property name="Text" value="Item" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> @@ -524,94 +478,80 @@ <Property name="TabHeight" value="{0,31.1724}" /> <Property name="TabPanePosition" value="Top" /> <Property name="Area" value="{{0.00391872,0},{0.00348824,0},{0.527266,0},{1.00058,0}}" /> - <Window type="DefaultWindow" name="ItemTab/General" > + <Window type="DefaultWindow" name="General" > <Property name="Text" value="General" /> <Property name="Area" value="{{-0.00215884,0},{0,0},{0.997841,0},{1,0}}" /> - <Window type="TaharezLook/StaticText" name="ItemTab/Properties/TypeLabel" > + <Window type="TaharezLook/StaticText" name="TypeLabel" > <Property name="Text" value="Type:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.09,0},{0.2,0},{0.15,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="ItemTab/Properties/TypeBox" > + <Window type="TaharezLook/Combobox" name="TypeBox" > <Property name="Area" value="{{0.2,0},{0.1,0},{0.65,0},{0.5,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/StaticText" name="ItemTab/Properties/SizeLabel" > + <Window type="TaharezLook/StaticText" name="SizeLabel" > <Property name="Text" value="Size:" /> - <Property name="HorzExtent" value="29" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.16,0},{0.2,0},{0.24,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="ItemTab/Properties/SizeBox" > + <Window type="TaharezLook/Combobox" name="SizeBox" > <Property name="Area" value="{{0.2,0},{0.17,0},{0.65,0},{0.65,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/StaticText" name="ItemTab/Properties/CopyDataLabel" > + <Window type="TaharezLook/StaticText" name="CopyDataLabel" > <Property name="Text" value="Copy data from:" /> - <Property name="HorzExtent" value="100" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.6,0},{0.3,0},{0.65,0}}" /> </Window> - <Window type="TaharezLook/Combobox" name="ItemTab/Properties/CopyDataBox" > + <Window type="TaharezLook/Combobox" name="CopyDataBox" > <Property name="Area" value="{{0.28,0},{0.6,0},{0.65,0},{0.95,0}}" /> <Property name="MaxTextLength" value="1073741823" /> </Window> - <Window type="TaharezLook/Button" name="ItemTab/Properties/CopyDataButton" > + <Window type="TaharezLook/Button" name="CopyDataButton" > <Property name="Text" value="Copy" /> <Property name="Area" value="{{0.7,0},{0.6,0},{0.85,0},{0.65,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="ItemTab/General/NameLabel" > + <Window type="TaharezLook/StaticText" name="NameLabel" > <Property name="Text" value="Name:" /> - <Property name="HorzExtent" value="41" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.03,0},{0.2,0},{0.08,0}}" /> </Window> - <Window type="TaharezLook/Editbox" name="ItemTab/General/NameBox" > + <Window type="TaharezLook/Editbox" name="NameBox" > <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.2,0},{0.03,0},{0.65,0},{0.08,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/StaticText" name="ItemTab/General/PriceLabel" > + <Window type="TaharezLook/StaticText" name="PriceLabel" > <Property name="Text" value="Value:" /> - <Property name="HorzExtent" value="38" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.25,0},{0.2,0},{0.3,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="ItemTab/General/PriceSpinner" > + <Window type="TaharezLook/Spinner" name="PriceSpinner" > <Property name="Area" value="{{0.2,0},{0.25,0},{0.65,0},{0.3,0}}" /> - <Property name="StepSize" value="50" /> + <Property name="StepSize" value="50" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="10000" /> <Property name="MinimumValue" value="0" /> </Window> - <Window type="TaharezLook/StaticText" name="ItemTab/General/EnchantRangeLabel" > + <Window type="TaharezLook/StaticText" name="EnchantRangeLabel" > <Property name="Text" value="Enchant min:" /> - <Property name="HorzExtent" value="82" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.34,0},{0.24,0},{0.4,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="ItemTab/General/EnchantMinSpinner" > + <Window type="TaharezLook/Spinner" name="EnchantMinSpinner" > <Property name="StepSize" value="50" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="10000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.24,0},{0.34,0},{0.5,0},{0.4,0}}" /> </Window> - <Window type="TaharezLook/StaticText" name="ItemTab/General/EnchantMaxLabel" > + <Window type="TaharezLook/StaticText" name="EnchantMaxLabel" > <Property name="Text" value="max:" /> - <Property name="HorzExtent" value="29" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.55,0},{0.34,0},{0.65,0},{0.4,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="ItemTab/General/EnchantMaxSpinner" > + <Window type="TaharezLook/Spinner" name="EnchantMaxSpinner" > <Property name="StepSize" value="50" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="10000" /> @@ -619,725 +559,633 @@ <Property name="Area" value="{{0.65,0},{0.34,0},{0.9,0},{0.4,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="ItemTab/Equip" > + <Window type="DefaultWindow" name="Equip" > <Property name="Text" >Equip </Property> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/HealthLabel" > + + + <Window type="TaharezLook/StaticText" name="HealthLabel" > <Property name="Text" value="Health:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.03,0},{0.2,0},{0.08,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/HealthSpinner" > + + <Window type="TaharezLook/Spinner" name="HealthSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="10000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.03,0},{0.40,0},{0.08,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/AttrLabel" > + + <Window type="TaharezLook/StaticText" name="AttrLabel" > <Property name="Text" value="Attribute:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.10,0},{0.2,0},{0.16,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/StrengthLabel" > + + <Window type="TaharezLook/StaticText" name="StrengthLabel" > <Property name="Text" value="Strength:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.17,0},{0.2,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/StrengthSpinner" > + + <Window type="TaharezLook/Spinner" name="StrengthSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.17,0},{0.40,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/DexterityLabel" > + + <Window type="TaharezLook/StaticText" name="DexterityLabel" > <Property name="Text" value="Dexterity:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.17,0},{0.7,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/DexteritySpinner" > + + <Window type="TaharezLook/Spinner" name="DexteritySpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.7,0},{0.17,0},{0.90,0},{0.23,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/MagicPowerLabel" > + + + <Window type="TaharezLook/StaticText" name="MagicPowerLabel" > <Property name="Text" value="Magic Power:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.24,0},{0.2,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/MagicPowerSpinner" > + + <Window type="TaharezLook/Spinner" name="MagicPowerSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.24,0},{0.40,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/WillpowerLabel" > + + <Window type="TaharezLook/StaticText" name="WillpowerLabel" > <Property name="Text" value="Willpower:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.24,0},{0.7,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/WillpowerSpinner" > + + <Window type="TaharezLook/Spinner" name="WillpowerSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.7,0},{0.24,0},{0.90,0},{0.30,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/ResistancesLabel" > + + + <Window type="TaharezLook/StaticText" name="ResistancesLabel" > <Property name="Text" value="Resistances:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.32,0},{0.4,0},{0.38,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/PhysResLabel" > + + <Window type="TaharezLook/StaticText" name="PhysResLabel" > <Property name="Text" value="Physical:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.39,0},{0.2,0},{0.45,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/PhysResSpinner" > + + <Window type="TaharezLook/Spinner" name="PhysResSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="100" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.39,0},{0.40,0},{0.45,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/FireResLabel" > + + <Window type="TaharezLook/StaticText" name="FireResLabel" > <Property name="Text" value="Fire:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.39,0},{0.7,0},{0.45,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/FireResSpinner" > + + <Window type="TaharezLook/Spinner" name="FireResSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="100" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.7,0},{0.39,0},{0.90,0},{0.45,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/IceResLabel" > + + <Window type="TaharezLook/StaticText" name="IceResLabel" > <Property name="Text" value="Ice:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.46,0},{0.2,0},{0.52,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/IceResSpinner" > + + <Window type="TaharezLook/Spinner" name="IceResSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="100" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.46,0},{0.40,0},{0.52,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/AirResLabel" > + + <Window type="TaharezLook/StaticText" name="AirResLabel" > <Property name="Text" value="Air:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.46,0},{0.7,0},{0.52,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/AirResSpinner" > + + <Window type="TaharezLook/Spinner" name="AirResSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="100" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.7,0},{0.46,0},{0.90,0},{0.52,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/OtherLabel" > + + <Window type="TaharezLook/StaticText" name="OtherLabel" > <Property name="Text" value="Other:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.54,0},{0.2,0},{0.60,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/ArmorLabel" > + + <Window type="TaharezLook/StaticText" name="ArmorLabel" > <Property name="Text" value="Armor:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.61,0},{0.2,0},{0.67,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/ArmorSpinner" > + + <Window type="TaharezLook/Spinner" name="ArmorSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.61,0},{0.40,0},{0.67,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/BlockLabel" > + + <Window type="TaharezLook/StaticText" name="BlockLabel" > <Property name="Text" value="Block:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.61,0},{0.7,0},{0.67,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/BlockSpinner" > + + <Window type="TaharezLook/Spinner" name="BlockSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.7,0},{0.61,0},{0.90,0},{0.67,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/AttackLabel" > + + <Window type="TaharezLook/StaticText" name="AttackLabel" > <Property name="Text" value="Precision:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.68,0},{0.2,0},{0.74,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/AttackSpinner" > + + <Window type="TaharezLook/Spinner" name="AttackSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.68,0},{0.40,0},{0.74,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Equip/PowerLabel" > + + <Window type="TaharezLook/StaticText" name="PowerLabel" > <Property name="Text" value="Power:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.68,0},{0.7,0},{0.74,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Equip/PowerSpinner" > + + <Window type="TaharezLook/Spinner" name="PowerSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.7,0},{0.68,0},{0.90,0},{0.74,0}}" /> </Window> - + </Window> - <Window type="DefaultWindow" name="ItemTab/Weapon" > + <Window type="DefaultWindow" name="Weapon" > <Property name="Text" >Weapon </Property> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/TypeLabel" > + + <Window type="TaharezLook/StaticText" name="TypeLabel" > <Property name="Text" value="Type:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.03,0},{0.2,0},{0.08,0}}" /> </Window> - - <Window type="TaharezLook/Editbox" name="ItemTab/Weapon/TypeBox" > + + <Window type="TaharezLook/Editbox" name="TypeBox" > <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.2,0},{0.03,0},{0.65,0},{0.08,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/DamageLabel" > + + <Window type="TaharezLook/StaticText" name="DamageLabel" > <Property name="Text" value="Damage:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.10,0},{0.2,0},{0.16,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/PhysLabel" > + + <Window type="TaharezLook/StaticText" name="PhysLabel" > <Property name="Text" value="Physical:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.17,0},{0.2,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/PhysMinSpinner" > + + <Window type="TaharezLook/Spinner" name="PhysMinSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.22,0},{0.17,0},{0.42,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/PhysToLabel" > + + <Window type="TaharezLook/StaticText" name="PhysToLabel" > <Property name="Text" value="-" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.44,0},{0.17,0},{0.48,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/PhysMaxSpinner" > + + <Window type="TaharezLook/Spinner" name="PhysMaxSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.48,0},{0.17,0},{0.68,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/PhysMultLabel" > + + <Window type="TaharezLook/StaticText" name="PhysMultLabel" > <Property name="Text" value="x" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.75,0},{0.17,0},{0.78,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/PhysMultSpinner" > + + <Window type="TaharezLook/Spinner" name="PhysMultSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> - <Property name="TextInputMode" value="FloatingPoint" /> + <Property name="TextInputMode" value="FloatingPoint" /> <Property name="Area" value="{{0.78,0},{0.17,0},{0.98,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/FireLabel" > + + <Window type="TaharezLook/StaticText" name="FireLabel" > <Property name="Text" value="Fire:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.24,0},{0.2,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/FireMinSpinner" > + + <Window type="TaharezLook/Spinner" name="FireMinSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.22,0},{0.24,0},{0.42,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/FireToLabel" > + + <Window type="TaharezLook/StaticText" name="FireToLabel" > <Property name="Text" value="-" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.44,0},{0.24,0},{0.48,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/FireMaxSpinner" > + + <Window type="TaharezLook/Spinner" name="FireMaxSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.48,0},{0.24,0},{0.68,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/FireMultLabel" > + + <Window type="TaharezLook/StaticText" name="FireMultLabel" > <Property name="Text" value="x" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.75,0},{0.24,0},{0.78,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/FireMultSpinner" > + + <Window type="TaharezLook/Spinner" name="FireMultSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> - <Property name="TextInputMode" value="FloatingPoint" /> + <Property name="TextInputMode" value="FloatingPoint" /> <Property name="Area" value="{{0.78,0},{0.24,0},{0.98,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/IceLabel" > + + <Window type="TaharezLook/StaticText" name="IceLabel" > <Property name="Text" value="Ice:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.31,0},{0.2,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/IceMinSpinner" > + + <Window type="TaharezLook/Spinner" name="IceMinSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.22,0},{0.31,0},{0.42,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/IceToLabel" > + + <Window type="TaharezLook/StaticText" name="IceToLabel" > <Property name="Text" value="-" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.44,0},{0.31,0},{0.48,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/IceMaxSpinner" > + + <Window type="TaharezLook/Spinner" name="IceMaxSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.48,0},{0.31,0},{0.68,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/IceMultLabel" > + + <Window type="TaharezLook/StaticText" name="IceMultLabel" > <Property name="Text" value="x" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.75,0},{0.31,0},{0.78,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/IceMultSpinner" > + + <Window type="TaharezLook/Spinner" name="IceMultSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> - <Property name="TextInputMode" value="FloatingPoint" /> + <Property name="TextInputMode" value="FloatingPoint" /> <Property name="Area" value="{{0.78,0},{0.31,0},{0.98,0},{0.37,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/AirLabel" > + + + <Window type="TaharezLook/StaticText" name="AirLabel" > <Property name="Text" value="Air:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.38,0},{0.2,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/AirMinSpinner" > + + <Window type="TaharezLook/Spinner" name="AirMinSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.22,0},{0.38,0},{0.42,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/AirToLabel" > + + <Window type="TaharezLook/StaticText" name="AirToLabel" > <Property name="Text" value="-" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.44,0},{0.38,0},{0.48,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/AirMaxSpinner" > + + <Window type="TaharezLook/Spinner" name="AirMaxSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.48,0},{0.38,0},{0.68,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/AirMultLabel" > + + <Window type="TaharezLook/StaticText" name="AirMultLabel" > <Property name="Text" value="x" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.75,0},{0.38,0},{0.78,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/AirMultSpinner" > + + <Window type="TaharezLook/Spinner" name="AirMultSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="0" /> - <Property name="TextInputMode" value="FloatingPoint" /> + <Property name="TextInputMode" value="FloatingPoint" /> <Property name="Area" value="{{0.78,0},{0.38,0},{0.98,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/PrecisionLabel" > + + <Window type="TaharezLook/StaticText" name="PrecisionLabel" > <Property name="Text" value="Precision:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.47,0},{0.2,0},{0.53,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/PrecisionSpinner" > + + <Window type="TaharezLook/Spinner" name="PrecisionSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="1" /> <Property name="Area" value="{{0.20,0},{0.47,0},{0.40,0},{0.53,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/PowerLabel" > + + <Window type="TaharezLook/StaticText" name="PowerLabel" > <Property name="Text" value="Power:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.53,0},{0.47,0},{0.7,0},{0.53,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/PowerSpinner" > + + <Window type="TaharezLook/Spinner" name="PowerSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="32767" /> <Property name="MinimumValue" value="1" /> <Property name="Area" value="{{0.70,0},{0.47,0},{0.90,0},{0.53,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/RangeLabel" > + + + <Window type="TaharezLook/StaticText" name="RangeLabel" > <Property name="Text" value="Range:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.54,0},{0.2,0},{0.60,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/RangeSpinner" > + + <Window type="TaharezLook/Spinner" name="RangeSpinner" > <Property name="StepSize" value="0.1" /> <Property name="CurrentValue" value="1" /> <Property name="MaximumValue" value="50" /> <Property name="MinimumValue" value="0" /> - <Property name="TextInputMode" value="FloatingPoint" /> + <Property name="TextInputMode" value="FloatingPoint" /> <Property name="Area" value="{{0.20,0},{0.54,0},{0.40,0},{0.60,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/SpeedLabel" > + + <Window type="TaharezLook/StaticText" name="SpeedLabel" > <Property name="Text" value="Speed:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.53,0},{0.54,0},{0.7,0},{0.60,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/SpeedSpinner" > + + <Window type="TaharezLook/Spinner" name="SpeedSpinner" > <Property name="StepSize" value="50" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="5000" /> <Property name="MinimumValue" value="-2000" /> <Property name="Area" value="{{0.70,0},{0.54,0},{0.90,0},{0.60,0}}" /> </Window> - - - <Window type="TaharezLook/Checkbox" name="ItemTab/Weapon/TwohandedCheckbox" > + + + <Window type="TaharezLook/Checkbox" name="TwohandedCheckbox" > <Property name="Area" value="{{0.03,0},{0.62,0},{0.07,0},{0.66,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/TwohandedLabel" > + + <Window type="TaharezLook/StaticText" name="TwohandedLabel" > <Property name="Text" value="Twohanded weapon" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.08,0},{0.61,0},{0.50,0},{0.67,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Weapon/CritPercentLabel" > + + + <Window type="TaharezLook/StaticText" name="CritPercentLabel" > <Property name="Text" value="Crit. Hits:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.68,0},{0.2,0},{0.74,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Weapon/CritPercentSpinner" > + + <Window type="TaharezLook/Spinner" name="CritPercentSpinner" > <Property name="StepSize" value="1" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="100" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.20,0},{0.68,0},{0.40,0},{0.74,0}}" /> </Window> - - + + </Window> - <Window type="DefaultWindow" name="ItemTab/Consume" > + <Window type="DefaultWindow" name="Consume" > <Property name="Text" >Consume</Property> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/TypeLabel" > + + <Window type="TaharezLook/StaticText" name="TypeLabel" > <Property name="Text" value="Health:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.03,0},{0.2,0},{0.08,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/HealthSpinner" > + + <Window type="TaharezLook/Spinner" name="HealthSpinner" > <Property name="StepSize" value="50" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="10000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.03,0},{0.40,0},{0.08,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/CureLabel" > + + + <Window type="TaharezLook/StaticText" name="CureLabel" > <Property name="Text" value="Status heal and immunity time:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.10,0},{0.7,0},{0.16,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/BlindLabel" > + + <Window type="TaharezLook/StaticText" name="BlindLabel" > <Property name="Text" value="Blind:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.17,0},{0.2,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/BlindSpinner" > + + <Window type="TaharezLook/Spinner" name="BlindSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.20,0},{0.17,0},{0.40,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/PoisonedLabel" > + + <Window type="TaharezLook/StaticText" name="PoisonedLabel" > <Property name="Text" value="Poisoned:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.17,0},{0.7,0},{0.23,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/PoisonedSpinner" > + + <Window type="TaharezLook/Spinner" name="PoisonedSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.70,0},{0.17,0},{0.90,0},{0.23,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/BerserkLabel" > + + + <Window type="TaharezLook/StaticText" name="BerserkLabel" > <Property name="Text" value="Berserk:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.24,0},{0.2,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/BerserkSpinner" > + + <Window type="TaharezLook/Spinner" name="BerserkSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.20,0},{0.24,0},{0.40,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/ConfusedLabel" > + + <Window type="TaharezLook/StaticText" name="ConfusedLabel" > <Property name="Text" value="Confused:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.24,0},{0.7,0},{0.30,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/ConfusedSpinner" > + + <Window type="TaharezLook/Spinner" name="ConfusedSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.70,0},{0.24,0},{0.90,0},{0.30,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/MuteLabel" > + + + <Window type="TaharezLook/StaticText" name="MuteLabel" > <Property name="Text" value="Mute:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.31,0},{0.2,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/MuteSpinner" > + + <Window type="TaharezLook/Spinner" name="MuteSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.20,0},{0.31,0},{0.40,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/ParalyzedLabel" > + + <Window type="TaharezLook/StaticText" name="ParalyzedLabel" > <Property name="Text" value="Paralyzed:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.31,0},{0.7,0},{0.37,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/ParalyzedSpinner" > + + <Window type="TaharezLook/Spinner" name="ParalyzedSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.70,0},{0.31,0},{0.90,0},{0.37,0}}" /> </Window> - - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/FrozenLabel" > + + + <Window type="TaharezLook/StaticText" name="FrozenLabel" > <Property name="Text" value="Frozen:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.38,0},{0.2,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/FrozenSpinner" > + + <Window type="TaharezLook/Spinner" name="FrozenSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.20,0},{0.38,0},{0.40,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/StaticText" name="ItemTab/Consume/BurningLabel" > + + <Window type="TaharezLook/StaticText" name="BurningLabel" > <Property name="Text" value="Burning:" /> - <Property name="HorzExtent" value="36" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.52,0},{0.38,0},{0.7,0},{0.44,0}}" /> </Window> - - <Window type="TaharezLook/Spinner" name="ItemTab/Consume/BurningSpinner" > + + <Window type="TaharezLook/Spinner" name="BurningSpinner" > <Property name="StepSize" value="1000" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="1000000" /> @@ -1345,65 +1193,63 @@ <Property name="Area" value="{{0.70,0},{0.38,0},{0.90,0},{0.44,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="ItemTab/Create" > + <Window type="DefaultWindow" name="Create" > <Property name="Text" value="Create Item" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/StaticText" name="ItemTab/Create/EnchantLabel" > + <Window type="TaharezLook/StaticText" name="EnchantLabel" > <Property name="Text" value="Enchant:" /> - <Property name="HorzExtent" value="55" /> - <Property name="VertExtent" value="15.5148" /> <Property name="FrameEnabled" value="False" /> <Property name="Area" value="{{0.03,0},{0.03,0},{0.2,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Spinner" name="ItemTab/Create/EnchantSpinner" > + <Window type="TaharezLook/Spinner" name="EnchantSpinner" > <Property name="StepSize" value="50" /> <Property name="CurrentValue" value="0" /> <Property name="MaximumValue" value="10000" /> <Property name="MinimumValue" value="0" /> <Property name="Area" value="{{0.2,0},{0.03,0},{0.5,0},{0.1,0}}" /> </Window> - <Window type="TaharezLook/Button" name="ItemTab/Create/CreateInventoryButton" > + <Window type="TaharezLook/Button" name="CreateInventoryButton" > <Property name="Text" value="Create in inventory" /> <Property name="Area" value="{{0.03,0},{0.2,0},{0.4,0},{0.26,0}}" /> </Window> - <Window type="TaharezLook/Button" name="ItemTab/Create/CreateDropButton" > + <Window type="TaharezLook/Button" name="CreateDropButton" > <Property name="Text" value="Create an drop" /> <Property name="Area" value="{{0.5,0},{0.2,0},{0.9,0},{0.26,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="ItemTab/XML" > + <Window type="DefaultWindow" name="XML" > <Property name="Text" value="XML" /> <Property name="Visible" value="False" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/MultiLineEditbox" name="ItemTab/XML/ItemXMLEditbox" > + <Window type="TaharezLook/MultiLineEditbox" name="ItemXMLEditbox" > <Property name="Text" > </Property> <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0229259,0},{0.0172008,0},{0.986204,0},{0.901313,0}}" /> <Property name="TextParsingEnabled" value="False" /> </Window> - <Window type="TaharezLook/Button" name="ItemTab/XML/SubmitButton" > + <Window type="TaharezLook/Button" name="SubmitButton" > <Property name="Text" value="Submit XML" /> <Property name="Area" value="{{0.0344625,0},{0.919477,0},{0.390245,0},{0.976916,0}}" /> </Window> </Window> </Window> - <Window type="TaharezLook/StaticImage" name="ItemTab/BM/itemPreview" > + <Window type="TaharezLook/StaticImage" name="itemPreview" > <Property name="Area" value="{{0.535738,0},{0.0565595,0},{0.983904,0},{0.772162,0}}" /> </Window> </Window> - <Window type="DefaultWindow" name="GameInfoTab" > - <Property name="Text" value="Info" /> + <Window type="DefaultWindow" name="GameInfoTab" > + <Property name="Text" value="Info" /> <Property name="Area" value="{{0,0},{0,0},{1,0},{1,0}}" /> - <Window type="TaharezLook/MultiLineEditbox" name="GameInfoTab/TextBox" > + <Window type="TaharezLook/MultiLineEditbox" name="TextBox" > <Property name="Text" ></Property> <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.0229259,0},{0.0172008,0},{0.986204,0},{0.901313,0}}" /> <Property name="TextParsingEnabled" value="True" /> </Window> - </Window> - </Window> + </Window> + </Window> <Window type="TaharezLook/Button" name="CloseButton" > <Property name="Text" value="Close" /> <Property name="Area" value="{{0.84668,0},{0.897134,0},{0.996094,0},{0.997395,0}}" />
--- a/share/resources/gui_0.8/layouts/luascripttab.layout Sat Mar 22 19:09:18 2014 +0100 +++ b/share/resources/gui_0.8/layouts/luascripttab.layout Sun Jun 08 11:05:00 2014 +0200 @@ -1,5 +1,3 @@ - - <GUILayout version="4" > <Window type="TaharezLook/FrameWindow" name="luaScriptTab" > <Property name="Alpha" value="0.1" /> @@ -9,23 +7,23 @@ <Property name="TitlebarEnabled" value="False" /> <Property name="Area" value="{{0.0725001,0},{0.0133335,0},{0.928755,0},{0.936666,0}}" /> <Property name="CloseButtonEnabled" value="False" /> - <Window type="TaharezLook/Button" name="luaScriptTab/ExecuteScriptButton" > + <Window type="TaharezLook/Button" name="ExecuteScriptButton" > <Property name="Text" value="Execute" /> <Property name="InheritsAlpha" value="False" /> <Property name="Area" value="{{0.00365257,0},{0.900724,0},{0.270077,0},{0.988268,0}}" /> </Window> - <Window type="TaharezLook/Menubar" name="luaScriptTab/MenuBar" > + <Window type="TaharezLook/Menubar" name="MenuBar" > <Property name="ItemSpacing" value="10" /> <Property name="InheritsAlpha" value="False" /> <Property name="Area" value="{{0.00711788,0},{0.0104692,0},{0.992602,0},{0.070938,0}}" /> </Window> - <Window type="TaharezLook/TabControl" name="luaScriptTab/FileTabControl" > + <Window type="TaharezLook/TabControl" name="FileTabControl" > <Property name="TabHeight" value="{0,38}" /> <Property name="InheritsAlpha" value="False" /> <Property name="TabPanePosition" value="Top" /> <Property name="Area" value="{{0.00903386,0},{0.0826716,0},{0.992288,0},{0.892241,0}}" /> </Window> - <Window type="TaharezLook/Editbox" name="luaScriptTab/fileDirectoryEditBox" > + <Window type="TaharezLook/Editbox" name="FileDirectoryEditBox" > <Property name="InheritsAlpha" value="False" /> <Property name="MaxTextLength" value="1073741823" /> <Property name="Area" value="{{0.27833,0},{0.898973,0},{0.990234,0},{0.98666,0}}" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/defend_dwarfenwall.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,1052 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:58+0200\n" + +#: siegeOfDwarfenwall.xml:217 siegeOfDwarfenwall.xml:2211 +#: siegeOfDwarfenwall.xml:2538 +msgid "..." +msgstr "" + +#: siegeOfDwarfenwall.xml:135 +msgid "... are they Cursed Ones?" +msgstr "" + +#: siegeOfDwarfenwall.xml:131 siegeOfDwarfenwall.xml:133 +msgid "... is this a Cursed One?" +msgstr "" + +#: siegeOfDwarfenwall.xml:60 +msgid "" +"... wind-elementals did see it clearly: It's only this one lich leading them." +msgstr "" + +#: siegeOfDwarfenwall.xml:123 +msgid "A handful of mercenaries?" +msgstr "" + +#: siegeOfDwarfenwall.xml:1102 +msgid "Acursed elementalists!" +msgstr "" + +#: siegeOfDwarfenwall.xml:164 +msgid "All warriors are connected by narrow-mindedness." +msgstr "" + +#: siegeOfDwarfenwall.xml:2537 +msgid "And about the crystal: Why don't you ask your employers?" +msgstr "" + +#: siegeOfDwarfenwall.xml:1902 +msgid "And don't forget that you owe me land after this." +msgstr "" + +#: siegeOfDwarfenwall.xml:2565 +msgid "And now I will find a way to kill Branded Ones." +msgstr "" + +#: siegeOfDwarfenwall.xml:2242 +msgid "And thanks to the councils backing the city is still standing." +msgstr "" + +#: siegeOfDwarfenwall.xml:2062 +msgid "And what of it? I thought, there was none." +msgstr "" + +#: siegeOfDwarfenwall.xml:89 +msgid "And who are you?" +msgstr "" + +#: siegeOfDwarfenwall.xml:87 +msgid "And who are you? ##solo" +msgstr "" + +#: siegeOfDwarfenwall.xml:2360 +msgid "And who?!" +msgstr "" + +#: siegeOfDwarfenwall.xml:63 +msgid "And with what army are you planning to do this break-through?" +msgstr "" + +#: siegeOfDwarfenwall.xml:1898 +msgid "And your mountain tops are more lively?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2381 +msgid "Apart from yourself you are not taking care of anyone!" +msgstr "" + +#: siegeOfDwarfenwall.xml:1899 +msgid "Are we here to count the bugs on our estates?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2344 +msgid "As if I ever made one." +msgstr "" + +#: siegeOfDwarfenwall.xml:2347 +msgid "As if we ever made one." +msgstr "" + +#: siegeOfDwarfenwall.xml:2355 +msgid "As if we hadn't enough problems with shortage of soldiers." +msgstr "" + +#: siegeOfDwarfenwall.xml:155 +msgid "As long as I lead this army I will not tolerate such people." +msgstr "" + +#: siegeOfDwarfenwall.xml:2068 +msgid "As you command, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:1835 +msgid "As you wish, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:2396 +msgid "As you wish..." +msgstr "" + +#: siegeOfDwarfenwall.xml:2278 +msgid "" +"At least more effective than one could have expected from a band of " +"mercenaries." +msgstr "" + +#: siegeOfDwarfenwall.xml:2346 +msgid "At least you are worth the trouble." +msgstr "" + +#: siegeOfDwarfenwall.xml:2343 +msgid "At least you are worth the trouble. ##solo" +msgstr "" + +#: siegeOfDwarfenwall.xml:1113 +msgid "Await your order." +msgstr "" + +#: siegeOfDwarfenwall.xml:2528 +msgid "Bah! Your skeletons are dust and the one lackey will not save you!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2064 +msgid "Branded Ones!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2066 +msgid "" +"But even they will not be able to hold the city once the wretched humans are " +"gone." +msgstr "" + +#: siegeOfDwarfenwall.xml:1105 +msgid "But how will we attack the city now? She blocked the path for our army." +msgstr "" + +#: siegeOfDwarfenwall.xml:2717 +msgid "But the gods will remember you for all eternity." +msgstr "" + +#: siegeOfDwarfenwall.xml:1831 +msgid "But they are still not stable!" +msgstr "" + +#: siegeOfDwarfenwall.xml:99 +msgid "But we have a war here." +msgstr "" + +#: siegeOfDwarfenwall.xml:2279 +msgid "But we have quite some losses." +msgstr "" + +#: siegeOfDwarfenwall.xml:1171 +msgid "Catapults!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2208 +msgid "Curse on them!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2209 +msgid "Cursed council-mages!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2214 +msgid "Death always wins." +msgstr "" + +#: siegeOfDwarfenwall.xml:2 +msgid "Defend Dwarfenwall" +msgstr "" + +#: siegeOfDwarfenwall.xml:2712 +msgid "Did you forget the defense of Dwarfenwall was only a warm-up?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2556 +msgid "Did you know there is quite a lot of unbound souls in the air?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2554 +msgid "Did you know there is quite a lot of unbound souls in the air? ##solo" +msgstr "" + +#: siegeOfDwarfenwall.xml:1660 +msgid "Did you now there was a wild man here two-hundred years ago?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2544 +msgid "Die!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2715 +msgid "Do I get money for it?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2526 +msgid "Do you really want to be hacked into pieces by me over and over again?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2523 +msgid "" +"Do you really want to be hacked into pieces by me over and over again? ##solo" +msgstr "" + +#: siegeOfDwarfenwall.xml:1903 +msgid "Do you think I'm going to miss two villages after I got Dwarfenwall?" +msgstr "" + +#: siegeOfDwarfenwall.xml:152 +msgid "Do you want to live or be backup for the undead?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2384 +msgid "Do you want to tell me how to use my people?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2399 +msgid "Don't even think about it." +msgstr "" + +#: siegeOfDwarfenwall.xml:233 +msgid "Don't trouble yourself." +msgstr "" + +#: siegeOfDwarfenwall.xml:1389 +msgid "Don't worry, my lord, we will have overrun them soon." +msgstr "" + +#: siegeOfDwarfenwall.xml:65 +msgid "Don't worry." +msgstr "" + +#: siegeOfDwarfenwall.xml:1028 +msgid "Dwarfenwall will finally be yours, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:2259 siegeOfDwarfenwall.xml:2282 +#: siegeOfDwarfenwall.xml:2289 +msgid "Enough of that. Let's talk in the command center." +msgstr "" + +#: siegeOfDwarfenwall.xml:84 +msgid "" +"Excuse me for interrupting like that, but small groups travel considerably " +"faster then armies." +msgstr "" + +#: siegeOfDwarfenwall.xml:2394 +msgid "Finally he cought on to it." +msgstr "" + +#: siegeOfDwarfenwall.xml:1896 +msgid "Finally." +msgstr "" + +#: siegeOfDwarfenwall.xml:69 +msgid "" +"First they send away the mage of Northborough and than they send in backup " +"again?" +msgstr "" + +#: siegeOfDwarfenwall.xml:223 +msgid "Get going!" +msgstr "" + +#: siegeOfDwarfenwall.xml:101 siegeOfDwarfenwall.xml:103 +msgid "Get lost, you fool." +msgstr "" + +#: siegeOfDwarfenwall.xml:105 +msgid "Get lost, you fools." +msgstr "" + +#: siegeOfDwarfenwall.xml:971 +msgid "Get ready, soldiers!" +msgstr "" + +#: siegeOfDwarfenwall.xml:218 +msgid "Get to the walls!" +msgstr "" + +#: siegeOfDwarfenwall.xml:98 +msgid "Good joke." +msgstr "" + +#: siegeOfDwarfenwall.xml:2518 siegeOfDwarfenwall.xml:2551 +msgid "Harvest!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2358 +msgid "He has to be destroyed!" +msgstr "" + +#: siegeOfDwarfenwall.xml:174 +msgid "He is under orders of the council, it is not your decision." +msgstr "" + +#: siegeOfDwarfenwall.xml:1060 +msgid "He is waiting for my orders right now." +msgstr "" + +#: siegeOfDwarfenwall.xml:1834 +msgid "He should be here any moment. We are playing for time right now." +msgstr "" + +#: siegeOfDwarfenwall.xml:2499 +msgid "Here comes the root of my little problem." +msgstr "" + +#: siegeOfDwarfenwall.xml:969 +msgid "Here they come." +msgstr "" + +#: siegeOfDwarfenwall.xml:219 +msgid "How fast he changes his mind." +msgstr "" + +#: siegeOfDwarfenwall.xml:1059 +msgid "I bound an earth-elemental weeks ago." +msgstr "" + +#: siegeOfDwarfenwall.xml:2512 siegeOfDwarfenwall.xml:2514 +msgid "" +"I can't believe that a single Branded One would be sufficient to cause so " +"much chaos." +msgstr "" + +#: siegeOfDwarfenwall.xml:2070 +msgid "I count on you." +msgstr "" + +#: siegeOfDwarfenwall.xml:2361 +msgid "I don't have enough men to lead a successful excursion." +msgstr "" + +#: siegeOfDwarfenwall.xml:166 +msgid "I don't kill indiscriminately!" +msgstr "" + +#: siegeOfDwarfenwall.xml:73 +msgid "" +"I don't like saying this, but until an army makes it's way here, our bodies " +"are long fighting for the other side, venerated lady." +msgstr "" + +#: siegeOfDwarfenwall.xml:1662 +msgid "I don't see how that has anything to do with the siege, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:283 +msgid "I don't want to go there. I only see boring walls." +msgstr "" + +#: siegeOfDwarfenwall.xml:2059 +msgid "I felt it, too." +msgstr "" + +#: siegeOfDwarfenwall.xml:2245 +msgid "" +"I have to admit, I wouldn't have thought in my wildest dreams that someone " +"could fight like that." +msgstr "" + +#: siegeOfDwarfenwall.xml:2280 +msgid "I hope they will not plan a new raid soon." +msgstr "" + +#: siegeOfDwarfenwall.xml:232 +msgid "I just hope you have enough money to keep them at it." +msgstr "" + +#: siegeOfDwarfenwall.xml:159 +msgid "I just prevented the undead from passing by your city!" +msgstr "" + +#: siegeOfDwarfenwall.xml:236 +msgid "I pray that you're right..." +msgstr "" + +#: siegeOfDwarfenwall.xml:1057 +msgid "" +"I reckon there is so many undead back there that your oh-so mighty backup " +"will not be able to avert our death." +msgstr "" + +#: siegeOfDwarfenwall.xml:2539 +msgid "I thought so." +msgstr "" + +#: siegeOfDwarfenwall.xml:1395 +msgid "I understand, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:2290 +msgid "I want to get away from all the blood." +msgstr "" + +#: siegeOfDwarfenwall.xml:1830 +msgid "I want you to use the brothers." +msgstr "" + +#: siegeOfDwarfenwall.xml:2213 +msgid "I will triumph in the end." +msgstr "" + +#: siegeOfDwarfenwall.xml:1062 +msgid "" +"I'm afraid, there will be quite some cleaning up to do by the survivors." +msgstr "" + +#: siegeOfDwarfenwall.xml:221 +msgid "I'm already on my way." +msgstr "" + +#: siegeOfDwarfenwall.xml:1114 +msgid "I'm not fighting with Dwarfenwall for centuries for nothing." +msgstr "" + +#: siegeOfDwarfenwall.xml:267 siegeOfDwarfenwall.xml:296 +msgid "I'm sorry, but only members of the aisen army are allowed beyond here." +msgstr "" + +#: siegeOfDwarfenwall.xml:2264 +msgid "I've never seen anyone who could fight like this." +msgstr "" + +#: siegeOfDwarfenwall.xml:2254 +msgid "If both sides have souls to offer, you take the one paying, of course." +msgstr "" + +#: siegeOfDwarfenwall.xml:2069 +msgid "If need be, I, the Black Raven himself, will go to battle." +msgstr "" + +#: siegeOfDwarfenwall.xml:142 +msgid "" +"If the price is right I let myself be torn apart as often as need be to " +"protect the town." +msgstr "" + +#: siegeOfDwarfenwall.xml:144 +msgid "" +"If the price is right we let ourselves be torn apart as often as need be to " +"protect the town." +msgstr "" + +#: siegeOfDwarfenwall.xml:2713 +msgid "If you want the process to be faster, just help out a bit." +msgstr "" + +#: siegeOfDwarfenwall.xml:2373 +msgid "In her tense manner she reminds of a certain other council mage." +msgstr "" + +#: siegeOfDwarfenwall.xml:1832 +msgid "In the worst case they will do no damage at all." +msgstr "" + +#: siegeOfDwarfenwall.xml:2267 +msgid "Indeed." +msgstr "" + +#: siegeOfDwarfenwall.xml:2364 +msgid "It has nothing to do with you." +msgstr "" + +#: siegeOfDwarfenwall.xml:2247 +msgid "It is good that he is on our side at the moment." +msgstr "" + +#: siegeOfDwarfenwall.xml:2249 +msgid "It is good that she is on our side at the moment." +msgstr "" + +#: siegeOfDwarfenwall.xml:2251 +msgid "It is good that they are on our side at the moment." +msgstr "" + +#: siegeOfDwarfenwall.xml:2241 +msgid "It is over." +msgstr "" + +#: siegeOfDwarfenwall.xml:67 +msgid "It should be here shortly." +msgstr "" + +#: siegeOfDwarfenwall.xml:1103 +msgid "" +"It will be a great pleasure to reanimate the body of that witch only to burn " +"her!" +msgstr "" + +#: siegeOfDwarfenwall.xml:1104 +msgid "It will be done, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:234 +msgid "It will not fail due to this." +msgstr "" + +#: siegeOfDwarfenwall.xml:1139 +msgid "It won't hurt if I call some more helpers, too." +msgstr "" + +#: siegeOfDwarfenwall.xml:2383 +msgid "It wouldn't be the first time..." +msgstr "" + +#: siegeOfDwarfenwall.xml:2260 +msgid "" +"It wouldn't be wise to hit the soldiers over the head who their saviours " +"were." +msgstr "" + +#: siegeOfDwarfenwall.xml:2710 +msgid "It's a wrap." +msgstr "" + +#: siegeOfDwarfenwall.xml:2500 +msgid "It's hard to believe someone was crazy enough to storm out here." +msgstr "" + +#: siegeOfDwarfenwall.xml:1147 +msgid "Just do it!" +msgstr "" + +#: siegeOfDwarfenwall.xml:62 +msgid "Just great." +msgstr "" + +#: siegeOfDwarfenwall.xml:2387 +msgid "Let that be my concern." +msgstr "" + +#: siegeOfDwarfenwall.xml:2389 +msgid "Let that be our concern." +msgstr "" + +#: siegeOfDwarfenwall.xml:1030 +msgid "Let us begin with the last rush on this wretched stronghold." +msgstr "" + +#: siegeOfDwarfenwall.xml:2258 +msgid "" +"Maybe aside from the fact, that Branded Ones don't change sides in the " +"middle." +msgstr "" + +#: siegeOfDwarfenwall.xml:1904 +msgid "Me and my frostmages will arrange for that." +msgstr "" + +#: siegeOfDwarfenwall.xml:66 +msgid "My colleague assured me that the council is sending backup." +msgstr "" + +#: siegeOfDwarfenwall.xml:1893 +msgid "My lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:1895 +msgid "Neivan the Frostbringer is now here." +msgstr "" + +#: siegeOfDwarfenwall.xml:2378 +msgid "No false sympathy." +msgstr "" + +#: siegeOfDwarfenwall.xml:2379 +msgid "No matter how often I die, the lich will be destroyed in the end." +msgstr "" + +#: siegeOfDwarfenwall.xml:1659 +msgid "No one said it had to be easy." +msgstr "" + +#: siegeOfDwarfenwall.xml:2674 +msgid "No! It cannot be! You baleful..." +msgstr "" + +#: siegeOfDwarfenwall.xml:2385 +msgid "Nobody deserves such a treatment, not even them." +msgstr "" + +#: siegeOfDwarfenwall.xml:2519 +msgid "Not so fast." +msgstr "" + +#: siegeOfDwarfenwall.xml:2377 +msgid "" +"Not that I would cry a tear over them, but we cannot waste a single soul " +"right now!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2529 +msgid "Now that you mention it..." +msgstr "" + +#: siegeOfDwarfenwall.xml:2061 +msgid "Now, of all times?" +msgstr "" + +#: siegeOfDwarfenwall.xml:1061 +msgid "Of course I couldn't know, where the undead would attack." +msgstr "" + +#: siegeOfDwarfenwall.xml:2716 +msgid "Of course not. Did you pay anything for this?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2516 +msgid "" +"Of course, if some Branded Ones are in the vicinity everything is a bit " +"different." +msgstr "" + +#: siegeOfDwarfenwall.xml:72 +msgid "Of course." +msgstr "" + +#: siegeOfDwarfenwall.xml:2398 +msgid "" +"One of these arrows could have come from anywhere in the heat of battle..." +msgstr "" + +#: siegeOfDwarfenwall.xml:2714 +msgid "" +"Or visit www.sumwars.org and take a look at the forum. Criticism, hints and " +"comments are always welcome." +msgstr "" + +#: siegeOfDwarfenwall.xml:1112 +msgid "Our necromancers?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2067 +msgid "Overrun them. Send out your order." +msgstr "" + +#: siegeOfDwarfenwall.xml:138 +msgid "Personally I like the term Branded One somehow better." +msgstr "" + +#: siegeOfDwarfenwall.xml:1394 +msgid "Prepare everything." +msgstr "" + +#: siegeOfDwarfenwall.xml:2509 +msgid "Prepare to pass off forever!" +msgstr "" + +#: siegeOfDwarfenwall.xml:6 +msgid "Quest description" +msgstr "" + +#: siegeOfDwarfenwall.xml:4 +msgid "Quest finished" +msgstr "" + +#: siegeOfDwarfenwall.xml:1111 +msgid "Ready, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:1146 +msgid "Say 'please'." +msgstr "" + +#: siegeOfDwarfenwall.xml:1115 +msgid "Send the skeletons through the underdrives." +msgstr "" + +#: siegeOfDwarfenwall.xml:172 +msgid "She is under orders of the council, it is not your decision." +msgstr "" + +#: siegeOfDwarfenwall.xml:1392 +msgid "Show them that we can play with fire, too." +msgstr "" + +#: siegeOfDwarfenwall.xml:1106 +msgid "Silence!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2212 +msgid "So what." +msgstr "" + +#: siegeOfDwarfenwall.xml:1136 +msgid "Something is going on over there." +msgstr "" + +#: siegeOfDwarfenwall.xml:2531 +msgid "Still, I can handle such a loss." +msgstr "" + +#: siegeOfDwarfenwall.xml:1063 +msgid "Stop scoffing and do whatever it is you're planing." +msgstr "" + +#: siegeOfDwarfenwall.xml:2525 +msgid "" +"Sure, you are immortal, or at least they say so, but you do feel pain, don't " +"you?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2522 +msgid "" +"Sure, you are immortal, or at least they say so, but you do feel pain, don't " +"you? ##solo" +msgstr "" + +#: siegeOfDwarfenwall.xml:2071 +msgid "Tear their defense into pieces." +msgstr "" + +#: siegeOfDwarfenwall.xml:2256 +msgid "Thank you for reminding me, why I cannot stand your kind." +msgstr "" + +#: siegeOfDwarfenwall.xml:1833 +msgid "That doesn't matter." +msgstr "" + +#: siegeOfDwarfenwall.xml:2065 +msgid "That explaines a lot." +msgstr "" + +#: siegeOfDwarfenwall.xml:163 +msgid "That proves nothing!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2362 +msgid "That would be suicide." +msgstr "" + +#: siegeOfDwarfenwall.xml:1901 +msgid "That's what I'm here for." +msgstr "" + +#: siegeOfDwarfenwall.xml:2058 +msgid "The Frostbringer is dead, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:91 +msgid "The backup." +msgstr "" + +#: siegeOfDwarfenwall.xml:1110 +msgid "The catapults?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2352 +msgid "The city is safe for the moment." +msgstr "" + +#: siegeOfDwarfenwall.xml:2540 +msgid "The elementalists are not exactly talkative, am I right?" +msgstr "" + +#: siegeOfDwarfenwall.xml:1661 +msgid "" +"The humans called him the giant killer and didn't want to have anything to " +"do with him." +msgstr "" + +#: siegeOfDwarfenwall.xml:2281 +msgid "The lich took his time, but until now he also had no backup." +msgstr "" + +#: siegeOfDwarfenwall.xml:71 +msgid "The mage is much needed elsewhere." +msgstr "" + +#: siegeOfDwarfenwall.xml:2532 +msgid "The people of Dwarfenwall will surely help me raise a new army." +msgstr "" + +#: siegeOfDwarfenwall.xml:1897 +msgid "" +"The road from the Grey Skyladder into this desolate and sear plain was long, " +"you know." +msgstr "" + +#: siegeOfDwarfenwall.xml:2357 +msgid "The source of the attacks is the lich!" +msgstr "" + +#: siegeOfDwarfenwall.xml:1658 +msgid "Their defense still holds, my lord." +msgstr "" + +#: siegeOfDwarfenwall.xml:2257 +msgid "There is no big difference to normal mercenaries." +msgstr "" + +#: siegeOfDwarfenwall.xml:2063 +msgid "There was, my lord. But it seems they are Branded Ones." +msgstr "" + +#: siegeOfDwarfenwall.xml:1390 +msgid "There's no hurry." +msgstr "" + +#: siegeOfDwarfenwall.xml:2370 +msgid "These people are under my direct order." +msgstr "" + +#: siegeOfDwarfenwall.xml:1137 +msgid "They are coming!" +msgstr "" + +#: siegeOfDwarfenwall.xml:195 +msgid "They are coming! The attack begins!" +msgstr "" + +#: siegeOfDwarfenwall.xml:1388 +msgid "They are struggling on." +msgstr "" + +#: siegeOfDwarfenwall.xml:176 +msgid "They are under orders of the council, it is not your decision." +msgstr "" + +#: siegeOfDwarfenwall.xml:120 +msgid "This is your great backup?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2366 +msgid "This man is under my direct orders." +msgstr "" + +#: siegeOfDwarfenwall.xml:110 siegeOfDwarfenwall.xml:112 +msgid "This mercenary is telling the truth." +msgstr "" + +#: siegeOfDwarfenwall.xml:2368 +msgid "This woman is under my direct order." +msgstr "" + +#: siegeOfDwarfenwall.xml:1058 +msgid "" +"This... backup is not the only thing the council can and will do for " +"Dwarfenwall." +msgstr "" + +#: siegeOfDwarfenwall.xml:1393 +msgid "Those mages are beginning to get on my nerves." +msgstr "" + +#: siegeOfDwarfenwall.xml:1144 +msgid "To the front with you, butcher." +msgstr "" + +#: siegeOfDwarfenwall.xml:1142 +msgid "To the front with you, butcher. ##solo" +msgstr "" + +#: siegeOfDwarfenwall.xml:2287 +msgid "Two third of my men are dead!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2210 +msgid "Verdammte Branded Ones!" +msgstr "" + +#: siegeOfDwarfenwall.xml:1663 +msgid "Watch and learn." +msgstr "" + +#: siegeOfDwarfenwall.xml:1170 +msgid "Watch out!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2353 +msgid "We cannot rest now." +msgstr "" + +#: siegeOfDwarfenwall.xml:2395 +msgid "We don't have time for petty arguments! Go and slay the lich!" +msgstr "" + +#: siegeOfDwarfenwall.xml:168 +msgid "We don't kill indiscriminately!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2060 +msgid "We finally learned something about the backup the council sent here." +msgstr "" + +#: siegeOfDwarfenwall.xml:1391 +msgid "We have time, that is our advantage." +msgstr "" + +#: siegeOfDwarfenwall.xml:64 +msgid "We have to stop the rush, that is assembling out there." +msgstr "" + +#: siegeOfDwarfenwall.xml:161 +msgid "We just prevented the undead from passing by your city!" +msgstr "" + +#: siegeOfDwarfenwall.xml:2288 +msgid "We will never survive a second attack." +msgstr "" + +#: siegeOfDwarfenwall.xml:2341 +msgid "Well fought" +msgstr "" + +#: siegeOfDwarfenwall.xml:2498 +msgid "Well well." +msgstr "" + +#: siegeOfDwarfenwall.xml:127 +msgid "What do you say?" +msgstr "" + +#: siegeOfDwarfenwall.xml:1894 +msgid "What is it?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2534 +msgid "What is this crystal your rotting masters want, banddog?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2286 +msgid "What kind of backing?" +msgstr "" + +#: siegeOfDwarfenwall.xml:70 +msgid "What kind of game is this?" +msgstr "" + +#: siegeOfDwarfenwall.xml:115 +msgid "What?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2711 +msgid "What? Are you kidding?" +msgstr "" + +#: siegeOfDwarfenwall.xml:61 +msgid "When he's gone the others are no problem." +msgstr "" + +#: siegeOfDwarfenwall.xml:1029 +msgid "With the help from the capital it will succeed at last." +msgstr "" + +#: siegeOfDwarfenwall.xml:2718 +msgid "With this, the demo is officially over." +msgstr "" + +#: siegeOfDwarfenwall.xml:2269 siegeOfDwarfenwall.xml:2271 +msgid "Without your 'friend' this would look different." +msgstr "" + +#: siegeOfDwarfenwall.xml:2273 +msgid "Without your 'friends' this would look different." +msgstr "" + +#: siegeOfDwarfenwall.xml:1900 +msgid "" +"You are right. Could you move those really unnerving people over there out " +"of the way?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2375 +msgid "You are sending them into their sure death!" +msgstr "" + +#: siegeOfDwarfenwall.xml:1829 +msgid "You called, my lord?" +msgstr "" + +#: siegeOfDwarfenwall.xml:151 +msgid "You cannot be prim in times like these." +msgstr "" + +#: siegeOfDwarfenwall.xml:2536 +msgid "You cannot make me angry." +msgstr "" + +#: siegeOfDwarfenwall.xml:154 +msgid "You cannot trust these monsters!" +msgstr "" + +#: siegeOfDwarfenwall.xml:148 +msgid "You make a deal with the devil to drive out the devil?" +msgstr "" + +#: siegeOfDwarfenwall.xml:2530 +msgid "You really smashed most of them." +msgstr "" + +#: siegeOfDwarfenwall.xml:2391 +msgid "You realy are beyond help." +msgstr "" + +#: siegeOfDwarfenwall.xml:126 +msgid "" +"You will realize the worth of our assistance, when they fall for you again " +"and again." +msgstr "" + +#: siegeOfDwarfenwall.xml:2542 +msgid "Your talking is as foul as the rest of your body." +msgstr "" + +#: siegeOfDwarfenwall.xml:1027 +msgid "Your time has come, pathetic humans!" +msgstr "" + +#: siegeOfDwarfenwall.xml:10 siegeOfDwarfenwall.xml:253 +#: siegeOfDwarfenwall.xml:2425 +msgid "dwarfenwall" +msgstr "" + +#: siegeOfDwarfenwall.xml:35 siegeOfDwarfenwall.xml:2306 +msgid "dwarfenwallCommand" +msgstr "" + +#: siegeOfDwarfenwall.xml:418 +msgid "dwarfenwallRampart" +msgstr "" + +#: siegeOfDwarfenwall.xml:2340 +msgid "hmpf" +msgstr "" + +#: siegeOfDwarfenwall.xml:2437 +msgid "necFieldcamp" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/fortify_dwarfenwall.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,869 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:58+0200\n" + +#: fortify_dwarfenwall.xml:691 +msgid "((And that crystal, he palmed off on me...))" +msgstr "" + +#: fortify_dwarfenwall.xml:690 +msgid "((He knows too much. And he has a real stone of Harad's hell.))" +msgstr "" + +#: fortify_dwarfenwall.xml:692 +msgid "((Looks like a spying crystal. Well, we will know that soon.))" +msgstr "" + +#: fortify_dwarfenwall.xml:689 +msgid "((That Windclaw is somehow weird.))" +msgstr "" + +#: fortify_dwarfenwall.xml:176 +msgid "((That room doesn't feel good at all.))" +msgstr "" + +#: fortify_dwarfenwall.xml:324 +msgid "..." +msgstr "" + +#: fortify_dwarfenwall.xml:701 +msgid "... said the spying Lord Master." +msgstr "" + +#: fortify_dwarfenwall.xml:333 +msgid "...not to say: slimy." +msgstr "" + +#: fortify_dwarfenwall.xml:459 +msgid "A good opportunity, indeed." +msgstr "" + +#: fortify_dwarfenwall.xml:744 +msgid "" +"Allow yourself more of such impertinences and I'll have you thrown into the " +"dungeon tower!" +msgstr "" + +#: fortify_dwarfenwall.xml:794 +msgid "Alright, we vote on our course of action." +msgstr "" + +#: fortify_dwarfenwall.xml:618 fortify_dwarfenwall.xml:619 +msgid "Always remember that." +msgstr "" + +#: fortify_dwarfenwall.xml:729 fortify_dwarfenwall.xml:731 +msgid "And it's Branded One." +msgstr "" + +#: fortify_dwarfenwall.xml:757 +msgid "And now he can't hear us anymore?" +msgstr "" + +#: fortify_dwarfenwall.xml:356 +msgid "" +"And the odds are pretty high... after all the monsters here have their own " +"head." +msgstr "" + +#: fortify_dwarfenwall.xml:694 +msgid "And then I'll take apart those summoner-imps with them." +msgstr "" + +#: fortify_dwarfenwall.xml:704 +msgid "And you better accustom yourself to be monitored." +msgstr "" + +#: fortify_dwarfenwall.xml:710 +msgid "And?" +msgstr "" + +#: fortify_dwarfenwall.xml:399 +msgid "As you wish." +msgstr "" + +#: fortify_dwarfenwall.xml:325 +msgid "As you wish. My apologies." +msgstr "" + +#: fortify_dwarfenwall.xml:712 +msgid "" +"Avaera, goddess of magic? Ring a bell? The people there are pretty " +"devotional." +msgstr "" + +#: fortify_dwarfenwall.xml:423 +msgid "Before your real assignment you will go to Dwarfenwall as backup." +msgstr "" + +#: fortify_dwarfenwall.xml:426 +msgid "Besides the necromancers don't follow Harad." +msgstr "" + +#: fortify_dwarfenwall.xml:734 +msgid "Blind and deaf, but not mute, eh?" +msgstr "" + +#: fortify_dwarfenwall.xml:400 +msgid "" +"But I should warn you. The task is pretty dangerous and you are likely to " +"die more than once." +msgstr "" + +#: fortify_dwarfenwall.xml:382 +msgid "But before I give it to you, you have to do something for me." +msgstr "" + +#: fortify_dwarfenwall.xml:760 +msgid "But he can still annoy us." +msgstr "" + +#: fortify_dwarfenwall.xml:789 +msgid "But if there's only a small possibility I'm willing to try it." +msgstr "" + +#: fortify_dwarfenwall.xml:821 +msgid "But right now I cannot go to war with a whole kingdom." +msgstr "" + +#: fortify_dwarfenwall.xml:777 +msgid "But that thing was the real deal without a doubt." +msgstr "" + +#: fortify_dwarfenwall.xml:826 +msgid "" +"But we can't afford open resistance right now, so we have to grin and bear " +"it." +msgstr "" + +#: fortify_dwarfenwall.xml:707 +msgid "But you're not omniscient, too." +msgstr "" + +#: fortify_dwarfenwall.xml:736 +msgid "Calm yourself, Lord of the unpleasent airs!" +msgstr "" + +#: fortify_dwarfenwall.xml:748 +msgid "Can we blind that crystal somehow?" +msgstr "" + +#: fortify_dwarfenwall.xml:326 +msgid "Come on, he knows what he's doing." +msgstr "" + +#: fortify_dwarfenwall.xml:422 +msgid "Consider it as a small bonus:" +msgstr "" + +#: fortify_dwarfenwall.xml:441 +msgid "Continue to be snotty?" +msgstr "" + +#: fortify_dwarfenwall.xml:39 +msgid "Derred" +msgstr "" + +#: fortify_dwarfenwall.xml:773 +msgid "Did I get that right?" +msgstr "" + +#: fortify_dwarfenwall.xml:340 +msgid "Difficult?" +msgstr "" + +#: fortify_dwarfenwall.xml:178 +msgid "Do you feel that?! It feels like..." +msgstr "" + +#: fortify_dwarfenwall.xml:716 +msgid "" +"Do you know what happens, if that comes into contact with the blood of " +"Branded Ones?" +msgstr "" + +#: fortify_dwarfenwall.xml:774 +msgid "Does he really have the power to take Harad's curse from us?" +msgstr "" + +#: fortify_dwarfenwall.xml:752 +msgid "Don't you dare, or-" +msgstr "" + +#: fortify_dwarfenwall.xml:404 +msgid "Even here you have to whine." +msgstr "" + +#: fortify_dwarfenwall.xml:787 +msgid "Even if he has this power, we're too valuable for his ends." +msgstr "" + +#: fortify_dwarfenwall.xml:778 +msgid "Even looking at it gave me goosebumps." +msgstr "" + +#: fortify_dwarfenwall.xml:715 +msgid "Everything." +msgstr "" + +#: fortify_dwarfenwall.xml:622 +msgid "Everything?" +msgstr "" + +#: fortify_dwarfenwall.xml:402 +msgid "Except the pain..." +msgstr "" + +#: fortify_dwarfenwall.xml:173 +msgid "Finally we're here!" +msgstr "" + +#: fortify_dwarfenwall.xml:797 +msgid "Follow the councils orders?" +msgstr "" + +#: fortify_dwarfenwall.xml:46 fortify_dwarfenwall.xml:58 +msgid "Follow us, please." +msgstr "" + +#: fortify_dwarfenwall.xml:389 +msgid "Forever." +msgstr "" + +#: fortify_dwarfenwall.xml:2 +msgid "Fortify Dwarfenwall" +msgstr "" + +#: fortify_dwarfenwall.xml:388 +msgid "" +"Fulfill my orders to Akeran's and the council's satisfaction and I have the " +"power to release you of his claws." +msgstr "" + +#: fortify_dwarfenwall.xml:714 +msgid "Guard your tongue, scum! What is that supposed to change?" +msgstr "" + +#: fortify_dwarfenwall.xml:401 +msgid "Harad's curse has to have some advantage." +msgstr "" + +#: fortify_dwarfenwall.xml:230 fortify_dwarfenwall.xml:232 +msgid "He awaits you now." +msgstr "" + +#: fortify_dwarfenwall.xml:783 +msgid "He promised us freedom." +msgstr "" + +#: fortify_dwarfenwall.xml:411 +msgid "He's beginning to make me angry." +msgstr "" + +#: fortify_dwarfenwall.xml:392 +msgid "Heard that one a thousend times already. Cut the speach." +msgstr "" + +#: fortify_dwarfenwall.xml:693 +msgid "Hm... I guess I'll look for enemies of the council." +msgstr "" + +#: fortify_dwarfenwall.xml:375 +msgid "How is it possible that you're still alive?" +msgstr "" + +#: fortify_dwarfenwall.xml:140 +msgid "Hush! You can argue later." +msgstr "" + +#: fortify_dwarfenwall.xml:749 +msgid "" +"I bet the guy is sitting in a cozy armchair right now and watching that we " +"don't break ranks." +msgstr "" + +#: fortify_dwarfenwall.xml:737 +msgid "I can hear you and we can talk, if it has to be." +msgstr "" + +#: fortify_dwarfenwall.xml:463 +msgid "I can search for it after your untimely death." +msgstr "" + +#: fortify_dwarfenwall.xml:624 +msgid "I cannot waste time here any longer." +msgstr "" + +#: fortify_dwarfenwall.xml:785 +msgid "I don't even have memories of it..." +msgstr "" + +#: fortify_dwarfenwall.xml:480 +msgid "I don't like it." +msgstr "" + +#: fortify_dwarfenwall.xml:347 +msgid "I feel like burning off the whole place." +msgstr "" + +#: fortify_dwarfenwall.xml:776 +msgid "" +"I for one have never heard, that someone besides us could take anything from " +"hell." +msgstr "" + +#: fortify_dwarfenwall.xml:482 +msgid "" +"I have to take care of the preparations for the prince's imminent wedding " +"now." +msgstr "" + +#: fortify_dwarfenwall.xml:357 +msgid "I know this nice little spell..." +msgstr "" + +#: fortify_dwarfenwall.xml:470 +msgid "I will keep an eye on you and give you orders with this crystal." +msgstr "" + +#: fortify_dwarfenwall.xml:485 +msgid "I will send you orders with it when the time comes." +msgstr "" + +#: fortify_dwarfenwall.xml:807 +msgid "I'll see, how this is developing." +msgstr "" + +#: fortify_dwarfenwall.xml:823 +msgid "I'll see, what opportunities occur." +msgstr "" + +#: fortify_dwarfenwall.xml:705 +msgid "I'm no idiot." +msgstr "" + +#: fortify_dwarfenwall.xml:342 +msgid "I'm putting in so much effort, and everything I get is \"difficult\"" +msgstr "" + +#: fortify_dwarfenwall.xml:750 +msgid "I've seen something like this in the army before..." +msgstr "" + +#: fortify_dwarfenwall.xml:792 +msgid "If arrogance had a smell, you'd suffocate instantly." +msgstr "" + +#: fortify_dwarfenwall.xml:355 +msgid "" +"If more of those giant things break free that could cause a little trouble..." +msgstr "" + +#: fortify_dwarfenwall.xml:390 +msgid "If not, however..." +msgstr "" + +#: fortify_dwarfenwall.xml:791 +msgid "If stupidity had a weight, you couldn't move a millimeter." +msgstr "" + +#: fortify_dwarfenwall.xml:376 +msgid "Indeed the right question." +msgstr "" + +#: fortify_dwarfenwall.xml:372 +msgid "Is that a...?" +msgstr "" + +#: fortify_dwarfenwall.xml:374 +msgid "It is a crystal straight from the heart of Harad's hell." +msgstr "" + +#: fortify_dwarfenwall.xml:759 +msgid "" +"It's a good thing that this was blessed by devoted aisen mages to Avaera. " +"Even if the goddess of magic is unlikely to be amused about my attachment." +msgstr "" + +#: fortify_dwarfenwall.xml:735 +msgid "It's going to be a wearisome journey, if this keeps going on..." +msgstr "" + +#: fortify_dwarfenwall.xml:717 +msgid "" +"It's not as if I had a bunch of you Cursed Ones here for experimental " +"purposes." +msgstr "" + +#: fortify_dwarfenwall.xml:432 +msgid "Just a man!!" +msgstr "" + +#: fortify_dwarfenwall.xml:742 +msgid "Just be glad I didn't smash the whole crystal." +msgstr "" + +#: fortify_dwarfenwall.xml:740 +msgid "" +"Just pray to your Akeran that I never find a way to send a fireball through " +"that blasted thing." +msgstr "" + +#: fortify_dwarfenwall.xml:827 +msgid "Let's gain their trust." +msgstr "" + +#: fortify_dwarfenwall.xml:383 +msgid "May Harad curse you!" +msgstr "" + +#: fortify_dwarfenwall.xml:431 +msgid "" +"Me too, I don't understand why we should do his bidding. In the end he is -" +msgstr "" + +#: fortify_dwarfenwall.xml:225 +msgid "My Lord! The... Branded Ones are here now." +msgstr "" + +#: fortify_dwarfenwall.xml:322 +msgid "My Lord, those are-" +msgstr "" + +#: fortify_dwarfenwall.xml:126 +msgid "Natch! Now you're having a big mouth again." +msgstr "" + +#: fortify_dwarfenwall.xml:331 +msgid "Nice shack!" +msgstr "" + +#: fortify_dwarfenwall.xml:443 fortify_dwarfenwall.xml:799 +msgid "No" +msgstr "" + +#: fortify_dwarfenwall.xml:702 +msgid "Not a pretty habit you have there, Airpaw..." +msgstr "" + +#: fortify_dwarfenwall.xml:633 +msgid "Now go!" +msgstr "" + +#: fortify_dwarfenwall.xml:478 fortify_dwarfenwall.xml:627 +msgid "Of course." +msgstr "" + +#: fortify_dwarfenwall.xml:751 +msgid "Of course. There is this nice little trick." +msgstr "" + +#: fortify_dwarfenwall.xml:758 +msgid "Only if we want to. Our blood works wonders on blessed items." +msgstr "" + +#: fortify_dwarfenwall.xml:416 +msgid "Pathetic fool!" +msgstr "" + +#: fortify_dwarfenwall.xml:419 +msgid "Pathetic fools!" +msgstr "" + +#: fortify_dwarfenwall.xml:413 +msgid "Peace!" +msgstr "" + +#: fortify_dwarfenwall.xml:11 +msgid "Quest description" +msgstr "" + +#: fortify_dwarfenwall.xml:9 +msgid "Quest finished" +msgstr "" + +#: fortify_dwarfenwall.xml:180 +msgid "Quiet!" +msgstr "" + +#: fortify_dwarfenwall.xml:373 +msgid "Quite so." +msgstr "" + +#: fortify_dwarfenwall.xml:722 +msgid "" +"Reverse this at once or every guard of Aisen will be on your trail, Cursed " +"One! ##female" +msgstr "" + +#: fortify_dwarfenwall.xml:724 +msgid "" +"Reverse this at once or every guard of Aisen will be on your trail, Cursed " +"One! ##male" +msgstr "" + +#: fortify_dwarfenwall.xml:726 +msgid "Right, right." +msgstr "" + +#: fortify_dwarfenwall.xml:695 +msgid "Shouldn't be too hard." +msgstr "" + +#: fortify_dwarfenwall.xml:424 +msgid "Show the undead there who the real favourite of the deathgod is." +msgstr "" + +#: fortify_dwarfenwall.xml:425 +msgid "Smells like exploitation." +msgstr "" + +#: fortify_dwarfenwall.xml:822 +msgid "So I'll just grin and bear it and gain his trust." +msgstr "" + +#: fortify_dwarfenwall.xml:764 fortify_dwarfenwall.xml:766 +msgid "So, what are you thinking about this matter?" +msgstr "" + +#: fortify_dwarfenwall.xml:451 fortify_dwarfenwall.xml:803 +msgid "Soren Windclaw" +msgstr "" + +#: fortify_dwarfenwall.xml:40 fortify_dwarfenwall.xml:52 +msgid "Speak with Windclaw" +msgstr "" + +#: fortify_dwarfenwall.xml:786 +msgid "Still, it's unlikely that he will keep his word." +msgstr "" + +#: fortify_dwarfenwall.xml:456 +msgid "Surely he has written down that knowledge of his somewhere." +msgstr "" + +#: fortify_dwarfenwall.xml:629 +msgid "" +"Surely it's not really allowed by the most divine Akeran to blackmail my " +"combat strength." +msgstr "" + +#: fortify_dwarfenwall.xml:631 +msgid "" +"Surely it's not really allowed by the most divine Akeran to blackmail our " +"combat strength." +msgstr "" + +#: fortify_dwarfenwall.xml:462 +msgid "Surely you have written down that knowledge of your's somewhere." +msgstr "" + +#: fortify_dwarfenwall.xml:620 +msgid "" +"Take some gold and equip yourselves in the mercenary camp north of town." +msgstr "" + +#: fortify_dwarfenwall.xml:484 +msgid "Take this crystal and some gold." +msgstr "" + +#: fortify_dwarfenwall.xml:820 +msgid "That guy will never keep his promise in his life." +msgstr "" + +#: fortify_dwarfenwall.xml:617 +msgid "That was the weakest elemental I could possibly summon." +msgstr "" + +#: fortify_dwarfenwall.xml:738 +msgid "That's enough, don't you think?" +msgstr "" + +#: fortify_dwarfenwall.xml:756 +msgid "That's it." +msgstr "" + +#: fortify_dwarfenwall.xml:775 +msgid "That's what he said." +msgstr "" + +#: fortify_dwarfenwall.xml:697 fortify_dwarfenwall.xml:699 +msgid "That's what you think, Branded One!" +msgstr "" + +#: fortify_dwarfenwall.xml:117 +msgid "The Council is not all that impressive..." +msgstr "" + +#: fortify_dwarfenwall.xml:420 +msgid "The first thing you have to learn are obviously manners." +msgstr "" + +#: fortify_dwarfenwall.xml:417 +msgid "The first thing you have to learn are obviously manners. ##solo" +msgstr "" + +#: fortify_dwarfenwall.xml:625 +msgid "The prince will marry soon and there are lots of preparations to make." +msgstr "" + +#: fortify_dwarfenwall.xml:825 +msgid "The whole thing is too unsure." +msgstr "" + +#: fortify_dwarfenwall.xml:353 +msgid "Then again..." +msgstr "" + +#: fortify_dwarfenwall.xml:810 +msgid "Then it's decided." +msgstr "" + +#: fortify_dwarfenwall.xml:483 +msgid "There is no time for further explanations." +msgstr "" + +#: fortify_dwarfenwall.xml:614 +msgid "There you go! That was rather tame." +msgstr "" + +#: fortify_dwarfenwall.xml:621 +msgid "There you'll find everything you need." +msgstr "" + +#: fortify_dwarfenwall.xml:713 +msgid "" +"They are bound to have given Avaeras blessing on that crystal to make it " +"work that much better." +msgstr "" + +#: fortify_dwarfenwall.xml:385 +msgid "This is a goddamn den of thieves." +msgstr "" + +#: fortify_dwarfenwall.xml:428 +msgid "This robed wimp ranks pretty high among all the miserable rats" +msgstr "" + +#: fortify_dwarfenwall.xml:471 +msgid "" +"This simple elemental will remind you now that immortality has little " +"meaning here." +msgstr "" + +#: fortify_dwarfenwall.xml:334 +msgid "Those ritual objects have seen better times, too." +msgstr "" + +#: fortify_dwarfenwall.xml:51 +msgid "Tolec" +msgstr "" + +#: fortify_dwarfenwall.xml:384 +msgid "Tsk tsk. How rude to use the name of the Cursed One in Akeran's halls." +msgstr "" + +#: fortify_dwarfenwall.xml:345 +msgid "Tsk. I feel like burning off the whole place." +msgstr "" + +#: fortify_dwarfenwall.xml:808 +msgid "" +"Until the cards are on the table I'll be powerful enough to take what's mine " +"by force, if needed." +msgstr "" + +#: fortify_dwarfenwall.xml:226 fortify_dwarfenwall.xml:481 +#: fortify_dwarfenwall.xml:762 +msgid "Very well." +msgstr "" + +#: fortify_dwarfenwall.xml:788 +msgid "We are truly branded." +msgstr "" + +#: fortify_dwarfenwall.xml:457 +msgid "We can search for it after he's dead." +msgstr "" + +#: fortify_dwarfenwall.xml:438 +msgid "" +"We know everything about your accursed kind, and believe me, no one will be " +"stupid enough to kill you." +msgstr "" + +#: fortify_dwarfenwall.xml:394 +msgid "We know that one already. Cut the speach." +msgstr "" + +#: fortify_dwarfenwall.xml:761 +msgid "We're bound to notice, if he has something to tell us." +msgstr "" + +#: fortify_dwarfenwall.xml:332 +msgid "Well, the corners are a bit dirty though." +msgstr "" + +#: fortify_dwarfenwall.xml:741 +msgid "" +"Well, well... knowledge about the gods is power, if you are exposed to their " +"moods." +msgstr "" + +#: fortify_dwarfenwall.xml:709 +msgid "Well... that thing was made by the mage guild of Aisen, right?" +msgstr "" + +#: fortify_dwarfenwall.xml:745 +msgid "What am I to do with you councilmen?" +msgstr "" + +#: fortify_dwarfenwall.xml:708 +msgid "What are you trying to say?" +msgstr "" + +#: fortify_dwarfenwall.xml:437 +msgid "What do you think will happen, if you're revealed in town?" +msgstr "" + +#: fortify_dwarfenwall.xml:397 +msgid "" +"What?!! The curse can be lifted from us? Why do I hear of this only now?" +msgstr "" + +#: fortify_dwarfenwall.xml:132 +msgid "Why exactly was it that I put up with your company?" +msgstr "" + +#: fortify_dwarfenwall.xml:703 +msgid "Windclaw!" +msgstr "" + +#: fortify_dwarfenwall.xml:351 +msgid "With all those wimps here it's hardly worth the effort, isn't it?" +msgstr "" + +#: fortify_dwarfenwall.xml:380 +msgid "" +"With an answer, that could release every one of you from your suffering." +msgstr "" + +#: fortify_dwarfenwall.xml:378 +msgid "With an answer, that could release you from your suffering." +msgstr "" + +#: fortify_dwarfenwall.xml:479 +msgid "" +"With our freedom as the price we will do everything in our might to be " +"successful." +msgstr "" + +#: fortify_dwarfenwall.xml:626 +msgid "With this crystal I will keep in touch with you." +msgstr "" + +#: fortify_dwarfenwall.xml:811 +msgid "Woe befall them if they break their promise." +msgstr "" + +#: fortify_dwarfenwall.xml:365 +msgid "Would you please take a quick look at this crystal." +msgstr "" + +#: fortify_dwarfenwall.xml:363 +msgid "Would you please take a quick look at this crystal. ##solo" +msgstr "" + +#: fortify_dwarfenwall.xml:442 fortify_dwarfenwall.xml:798 +msgid "Yes" +msgstr "" + +#: fortify_dwarfenwall.xml:465 +msgid "Yes, they warned me about that, too." +msgstr "" + +#: fortify_dwarfenwall.xml:338 +msgid "Yes, they warned me that you're difficult." +msgstr "" + +#: fortify_dwarfenwall.xml:336 +msgid "Yes, they warned me that you're difficult. ##solo" +msgstr "" + +#: fortify_dwarfenwall.xml:781 +msgid "You almost fainted!" +msgstr "" + +#: fortify_dwarfenwall.xml:733 +msgid "You are better prepared to suffer the consequences, wretched creature." +msgstr "" + +#: fortify_dwarfenwall.xml:407 +msgid "You are indeed a bunch of difficult people." +msgstr "" + +#: fortify_dwarfenwall.xml:409 +msgid "You are indeed difficult." +msgstr "" + +#: fortify_dwarfenwall.xml:739 +msgid "" +"You can't possibly have enough money, so that I would let you gawp at me all " +"the time." +msgstr "" + +#: fortify_dwarfenwall.xml:454 +msgid "You consider yourself very mighty and clever, don't you?" +msgstr "" + +#: fortify_dwarfenwall.xml:436 +msgid "You obviously misjudge your position." +msgstr "" + +#: fortify_dwarfenwall.xml:387 +msgid "" +"You should realize that it is entirely up to you, how long you will be in " +"the slavery of the deathgod." +msgstr "" + +#: fortify_dwarfenwall.xml:711 +msgid "You're a zealot, aren't you?" +msgstr "" + +#: fortify_dwarfenwall.xml:386 +msgid "You're missing the main point." +msgstr "" + +#: fortify_dwarfenwall.xml:321 +msgid "You're presence is no longer needed." +msgstr "" + +#: fortify_dwarfenwall.xml:344 +msgid "" +"You're putting in so much effort, and everything you get is \"difficult\"" +msgstr "" + +#: fortify_dwarfenwall.xml:727 +msgid "Your people would be quite surprised were I came from." +msgstr "" + +#: fortify_dwarfenwall.xml:14 fortify_dwarfenwall.xml:63 +#: fortify_dwarfenwall.xml:504 +msgid "elCnlLobby" +msgstr "" + +#: fortify_dwarfenwall.xml:429 +msgid "for who's chestnuts I pulled out of the fire." +msgstr "" + +#: fortify_dwarfenwall.xml:648 +msgid "medBackalley" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/goblin_raid.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,127 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:58+0200\n" + +#: goblin_raid.xml:110 +msgid "And I could care less what happens to some peasant family." +msgstr "" + +#: goblin_raid.xml:89 +msgid "As they say: One hand washes the other." +msgstr "" + +#: goblin_raid.xml:36 goblin_raid.xml:55 +msgid "Crude battle plans" +msgstr "" + +#: goblin_raid.xml:91 +msgid "Do you want to help the peasant?" +msgstr "" + +#: goblin_raid.xml:101 +msgid "Fine, I'll wipe out those goblins for you." +msgstr "" + +#: goblin_raid.xml:43 +msgid "Hey, sergeant, I found these in the woods with some goblins." +msgstr "" + +#: goblin_raid.xml:62 +msgid "Hey, sergeant, ready to pay for the pre-emptive rescue of the village?" +msgstr "" + +#: goblin_raid.xml:8 +msgid "" +"I discovered plans of a goblin raid set for a village called Joringsbridge. " +"They were found amongst the remains of some goblin tribe. Guess I busted " +"that party prematurely. Maybe someone official will appreciate not having " +"hordes of goblins kicking in their doors." +msgstr "" + +#: goblin_raid.xml:73 +msgid "I guess you can be trusted." +msgstr "" + +#: goblin_raid.xml:6 +msgid "" +"It seems the sergeant from Joringsbridge is willing to pay, but he wants me " +"to help those peasants first. There's no trust in this world anymore." +msgstr "" + +#: goblin_raid.xml:81 +msgid "It's always a pleasure when a good deed goes rewarded." +msgstr "" + +#: goblin_raid.xml:103 +msgid "Just go already." +msgstr "" + +#: goblin_raid.xml:74 +msgid "Let me thank you on behalf of the whole village." +msgstr "" + +#: goblin_raid.xml:88 +msgid "Maybe I will show some gratitude after you help Michel's family." +msgstr "" + +#: goblin_raid.xml:46 +msgid "Meant it. Whatever." +msgstr "" + +#: goblin_raid.xml:93 +msgid "No" +msgstr "" + +#: goblin_raid.xml:35 +msgid "Sergeant Lutterer" +msgstr "" + +#: goblin_raid.xml:45 +msgid "Some kind of head honcho shaman had them, so I figure they mean it." +msgstr "" + +#: goblin_raid.xml:87 +msgid "Sorry, but I don't know you." +msgstr "" + +#: goblin_raid.xml:95 +msgid "Then I better get back to saving helpless peasants, no?" +msgstr "" + +#: goblin_raid.xml:44 +msgid "This looks like it could be Joringsbridge. Are you sure it's reliable?" +msgstr "" + +#: goblin_raid.xml:4 +msgid "" +"Well, I got a little money for killing some goblins I would have wasted " +"anyway. Not a bad day." +msgstr "" + +#: goblin_raid.xml:109 +msgid "Whatever. It's not like I need the money or anything." +msgstr "" + +#: goblin_raid.xml:92 +msgid "Yes" +msgstr "" + +#: goblin_raid.xml:102 +msgid "You do realise there's plenty more where they came from?" +msgstr "" + +#: goblin_raid.xml:11 +msgid "aisDarkClearing" +msgstr "" + +#: goblin_raid.xml:2 +msgid "goblin_raid" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/greenOrchid.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,301 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: greenOrchid.xml:63 +msgid "(It's just a stupid hat. No harm done.)" +msgstr "" + +#: greenOrchid.xml:62 +msgid "(Not exactly what I meant, but oh well.)" +msgstr "" + +#: greenOrchid.xml:140 +msgid "Another stupid thing to carry around." +msgstr "" + +#: greenOrchid.xml:169 +msgid "Avaera's mercy! This is..." +msgstr "" + +#: greenOrchid.xml:134 +msgid "" +"Behold the great hat of Joringsbridge, the pinnacle of uselessness... wanne " +"have it?" +msgstr "" + +#: greenOrchid.xml:171 +msgid "But it is..." +msgstr "" + +#: greenOrchid.xml:132 +msgid "But there is noone selling hats here." +msgstr "" + +#: greenOrchid.xml:135 +msgid "Dear me! You'd give it to me just like that?" +msgstr "" + +#: greenOrchid.xml:133 +msgid "Despair not for I have your salvation." +msgstr "" + +#: greenOrchid.xml:71 +msgid "Do I look like I care for flowers?" +msgstr "" + +#: greenOrchid.xml:37 +msgid "Do you like my beautiful flowerbed?" +msgstr "" + +#: greenOrchid.xml:129 +msgid "Don't mock me, stranger!" +msgstr "" + +#: greenOrchid.xml:115 +msgid "Eric" +msgstr "" + +#: greenOrchid.xml:87 +msgid "Gee, thank you. Thank you thank you thank you." +msgstr "" + +#: greenOrchid.xml:126 +msgid "Go away!" +msgstr "" + +#: greenOrchid.xml:59 +msgid "Here take this hat as a compensation." +msgstr "" + +#: greenOrchid.xml:36 +msgid "Hey there, traveller." +msgstr "" + +#: greenOrchid.xml:166 +msgid "Hey, you look like a scholar." +msgstr "" + +#: greenOrchid.xml:54 +msgid "Hm, I somehow like you." +msgstr "" + +#: greenOrchid.xml:128 +msgid "I can put you out of your misery if you like." +msgstr "" + +#: greenOrchid.xml:88 +msgid "I can't possibly show my gratitude... Oh, I know!" +msgstr "" + +#: greenOrchid.xml:173 +msgid "I can? Thank you stranger!" +msgstr "" + +#: greenOrchid.xml:6 +msgid "" +"I found the green orchid and gave it to the girl. She gave me a amulet " +"instead. I'm still trying to recover from the shock that I actually got " +"something useful out of this ordeal." +msgstr "" + +#: greenOrchid.xml:168 +msgid "I got this old scholar scroll here. Do you have a use for it?" +msgstr "" + +#: greenOrchid.xml:91 +msgid "I hope you don't take this the wrong way" +msgstr "" + +#: greenOrchid.xml:61 +msgid "I insist. I don't expect you to work for free." +msgstr "" + +#: greenOrchid.xml:12 +msgid "" +"I offered help to a young girl in Joringsbridge by looking for a green " +"orchid. She gave me a useless hat for it. And by useless I mean useless. No " +"way in hell I will ever wear that. Gee, thanks." +msgstr "" + +#: greenOrchid.xml:55 +msgid "I'll look around." +msgstr "" + +#: greenOrchid.xml:30 +msgid "I'm still looking for a green orchid to perfect my flowerbed." +msgstr "" + +#: greenOrchid.xml:10 +msgid "" +"I'm still looking for the green orchid. I had no luck in Dwarfenwall, but I " +"got rid of the silly hat. Now I'm stuck with some scholar scroll. Which is " +"astoundingly boring. I almost fell into a coma after the first three " +"sentences." +msgstr "" + +#: greenOrchid.xml:56 +msgid "If I find one, I'll give it to you." +msgstr "" + +#: greenOrchid.xml:131 +msgid "If only I hadn't lost my hat. I can handle anything with a good hat." +msgstr "" + +#: greenOrchid.xml:86 +msgid "In fact I did. Here, take it." +msgstr "" + +#: greenOrchid.xml:167 +msgid "Indeed I am." +msgstr "" + +#: greenOrchid.xml:90 +msgid "" +"It's supposed to be real powerful or something, but it's just plain ugly, " +"don't you think?" +msgstr "" + +#: greenOrchid.xml:136 +msgid "Kindness is it's own reward, but I have this scholar scroll." +msgstr "" + +#: greenOrchid.xml:79 +msgid "Leave me alone." +msgstr "" + +#: greenOrchid.xml:32 +msgid "Look for the green orchid?" +msgstr "" + +#: greenOrchid.xml:89 +msgid "My father once gave me this amulet." +msgstr "" + +#: greenOrchid.xml:47 +msgid "Nah, I'm still searching, sorry." +msgstr "" + +#: greenOrchid.xml:26 +msgid "Nice Flowers" +msgstr "" + +#: greenOrchid.xml:34 greenOrchid.xml:41 +msgid "No" +msgstr "" + +#: greenOrchid.xml:60 +msgid "No problem, girl, but this is really not necessary." +msgstr "" + +#: greenOrchid.xml:170 +msgid "No, this can't be real." +msgstr "" + +#: greenOrchid.xml:39 +msgid "Offer Help?" +msgstr "" + +#: greenOrchid.xml:43 greenOrchid.xml:46 +msgid "Oh, I remember you. Did you find the green orchid?" +msgstr "" + +#: greenOrchid.xml:38 +msgid "Oh, how I'd love to have a marvelous green orchid in it..." +msgstr "" + +#: greenOrchid.xml:72 +msgid "Oh." +msgstr "" + +#: greenOrchid.xml:25 +msgid "Reba" +msgstr "" + +#: greenOrchid.xml:31 +msgid "Say, perhaps you can look for it on your travels?" +msgstr "" + +#: greenOrchid.xml:138 +msgid "Take it instead." +msgstr "" + +#: greenOrchid.xml:139 +msgid "Thank. You." +msgstr "" + +#: greenOrchid.xml:92 +msgid "Thanks. I think I can handle it's ugliness." +msgstr "" + +#: greenOrchid.xml:174 +msgid "" +"That's a very important piece for my research. Take this flower. It's " +"nothing special, but it has a strange colour" +msgstr "" + +#: greenOrchid.xml:2 +msgid "The Green Orchid" +msgstr "" + +#: greenOrchid.xml:156 +msgid "Thomas" +msgstr "" + +#: greenOrchid.xml:130 +msgid "" +"Undead in front of the gates, rocks falling from the sky, annoying bypassers " +"making creepy proposals..." +msgstr "" + +#: greenOrchid.xml:175 +msgid "Wha... I really got something I want? Thank you man." +msgstr "" + +#: greenOrchid.xml:116 +msgid "Whats that look for?" +msgstr "" + +#: greenOrchid.xml:57 +msgid "Wow, thanks!" +msgstr "" + +#: greenOrchid.xml:33 greenOrchid.xml:40 +msgid "Yes" +msgstr "" + +#: greenOrchid.xml:58 +msgid "You are so nice to me." +msgstr "" + +#: greenOrchid.xml:172 +msgid "You can have it. Just take it." +msgstr "" + +#: greenOrchid.xml:127 +msgid "You look especially depressed." +msgstr "" + +#: greenOrchid.xml:157 +msgid "You look like a scholar" +msgstr "" + +#: greenOrchid.xml:147 +msgid "copperRock" +msgstr "" + +#: greenOrchid.xml:106 +msgid "dwarfenwall" +msgstr "" + +#: greenOrchid.xml:16 +msgid "joringsbridge" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/herb_collector.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,195 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: herbalist.xml:95 herbalist.xml:121 +msgid "Accept Quest?" +msgstr "" + +#: herbalist.xml:87 +msgid "Ah, well done, young one." +msgstr "" + +#: herbalist.xml:9 +msgid "And another good deed done. I could get used to this." +msgstr "" + +#: herbalist.xml:146 +msgid "But if you change your mind, I'm not running away from here." +msgstr "" + +#: herbalist.xml:119 +msgid "But only the red berries." +msgstr "" + +#: herbalist.xml:223 +msgid "Collect" +msgstr "" + +#: herbalist.xml:94 +msgid "Do you want to collect some berries after all?" +msgstr "" + +#: herbalist.xml:112 +msgid "Fiddlesticks!" +msgstr "" + +#: herbalist.xml:143 +msgid "Forget it, herb woman." +msgstr "" + +#: herbalist.xml:74 +msgid "Gertlinde Kampfer" +msgstr "" + +#: herbalist.xml:145 +msgid "Have it your way." +msgstr "" + +#: herbalist.xml:2 +msgid "Herb collector" +msgstr "" + +#: herbalist.xml:75 +msgid "Herb gathering" +msgstr "" + +#: herbalist.xml:88 +msgid "Here, let me give you something in return." +msgstr "" + +#: herbalist.xml:86 +msgid "Here, old women. Your berries." +msgstr "" + +#: herbalist.xml:100 +msgid "Hey there, young one!" +msgstr "" + +#: herbalist.xml:91 +msgid "I need more berries, if I am to do something useful with them." +msgstr "" + +#: herbalist.xml:118 +msgid "I need the berries of at least ten bushes." +msgstr "" + +#: herbalist.xml:101 +msgid "I see you are going to the Northern Meadow." +msgstr "" + +#: herbalist.xml:144 +msgid "" +"I'm not going to crawl through the meadows just to search for some stupid " +"bushes." +msgstr "" + +#: herbalist.xml:108 +msgid "" +"If you are roaming around there anyway, why don't you collect some berries " +"for me?" +msgstr "" + +#: herbalist.xml:114 +msgid "It's not like I want you to collect something exotic, you know." +msgstr "" + +#: herbalist.xml:115 +msgid "Just rilfberries." +msgstr "" + +#: herbalist.xml:116 +msgid "Look for big bushes with fancy red fruits." +msgstr "" + +#: herbalist.xml:97 herbalist.xml:123 +msgid "No" +msgstr "" + +#: herbalist.xml:106 +msgid "Peace." +msgstr "" + +#: herbalist.xml:111 +msgid "Plants are not really my forte..." +msgstr "" + +#: herbalist.xml:104 +msgid "Quite a trick." +msgstr "" + +#: herbalist.xml:165 +msgid "Still no." +msgstr "" + +#: herbalist.xml:166 +msgid "Tell me when you're not too mighty for simple work anymore, sweety." +msgstr "" + +#: herbalist.xml:135 herbalist.xml:158 +msgid "Thanks, sweety." +msgstr "" + +#: herbalist.xml:102 +msgid "That's right." +msgstr "" + +#: herbalist.xml:11 +msgid "" +"The herbalist of Joringsbridge wants to have the berries of 10 bushes. " +"Berries from " +msgstr "" + +#: herbalist.xml:120 +msgid "The rest is of no use at all." +msgstr "" + +#: herbalist.xml:154 +msgid "Very well, if I find some, I'll bring them along." +msgstr "" + +#: herbalist.xml:131 +msgid "Very well, if I find some, I'll bring them." +msgstr "" + +#: herbalist.xml:133 herbalist.xml:156 +msgid "Very well, if we find some, we'll bring them." +msgstr "" + +#: herbalist.xml:167 +msgid "Watch your tongue, hag!" +msgstr "" + +#: herbalist.xml:105 +msgid "We were only walking through the gate." +msgstr "" + +#: herbalist.xml:109 +msgid "" +"With all those goblins about an old woman can't even set a foot out of the " +"village." +msgstr "" + +#: herbalist.xml:96 herbalist.xml:122 +msgid "Yes" +msgstr "" + +#: herbalist.xml:117 +msgid "You will find them for sure." +msgstr "" + +#: herbalist.xml:214 +msgid "aisNorthMeadow" +msgstr "" + +#: herbalist.xml:15 herbalist.xml:197 +msgid "joringsbridge" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/joringsbridge.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,430 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: joringsbridge.xml:142 +msgid "!" +msgstr "" + +#: joringsbridge.xml:112 +msgid "..." +msgstr "" + +#: joringsbridge.xml:345 +msgid "... probably not. Alright, even if I don't like it." +msgstr "" + +#: joringsbridge.xml:337 +msgid "... under the heel of a certain Soren Airpaw, at your service." +msgstr "" + +#: joringsbridge.xml:210 +msgid "2000 for every one." +msgstr "" + +#: joringsbridge.xml:204 +msgid "2000 gold pieces for everyone who is willing to help this humble man!" +msgstr "" + +#: joringsbridge.xml:208 +msgid "2000 gold pieces." +msgstr "" + +#: joringsbridge.xml:245 +msgid "Ah!" +msgstr "" + +#: joringsbridge.xml:145 +msgid "And they say, my kind is cold-hearted..." +msgstr "" + +#: joringsbridge.xml:147 +msgid "And they say, our kind is cold-hearted..." +msgstr "" + +#: joringsbridge.xml:279 +msgid "And we get money. Two birds with one stone." +msgstr "" + +#: joringsbridge.xml:122 +msgid "And you really have no time to help out a bit?" +msgstr "" + +#: joringsbridge.xml:347 +msgid "Are you sure?" +msgstr "" + +#: joringsbridge.xml:336 +msgid "Aren't you the... auxiliary forces of the council?" +msgstr "" + +#: joringsbridge.xml:334 +msgid "Aren't you the... auxiliary forces of the council? ##solo" +msgstr "" + +#: joringsbridge.xml:124 +msgid "As much as I'd like to help, I don't have any room for such a thing." +msgstr "" + +#: joringsbridge.xml:356 +msgid "As you wish, my Prinz." +msgstr "" + +#: joringsbridge.xml:380 +msgid "As you wish, my prince." +msgstr "" + +#: joringsbridge.xml:125 +msgid "" +"But may I use this unique opportunity to congratulate you on your upcoming " +"wedding with the archmage Ireana of" +msgstr "" + +#: joringsbridge.xml:117 +msgid "But the honourable mage has other duties!" +msgstr "" + +#: joringsbridge.xml:324 +msgid "By Marek!" +msgstr "" + +#: joringsbridge.xml:240 joringsbridge.xml:251 +msgid "Don't even think about it!" +msgstr "" + +#: joringsbridge.xml:143 +msgid "Don't you have something better to do?" +msgstr "" + +#: joringsbridge.xml:192 +msgid "Forgive me, my prince, but my wife and my children are still there." +msgstr "" + +#: joringsbridge.xml:169 +msgid "Guards! Guards!" +msgstr "" + +#: joringsbridge.xml:378 +msgid "Hand over the gold, if you find someone who helps you after all." +msgstr "" + +#: joringsbridge.xml:261 +msgid "Help the peasant?" +msgstr "" + +#: joringsbridge.xml:175 +msgid "Help! My farm is being raided by goblins!" +msgstr "" + +#: joringsbridge.xml:377 +msgid "I am true to my word." +msgstr "" + +#: joringsbridge.xml:194 +msgid "I beg of you: help me!" +msgstr "" + +#: joringsbridge.xml:108 +msgid "I can barly guard the village, let alone the surrounding farms!" +msgstr "" + +#: joringsbridge.xml:193 +msgid "I don't know how long the house will withstand them." +msgstr "" + +#: joringsbridge.xml:139 +msgid "" +"I just hope the kingdom has big granaries, if the greenskins torch the " +"fields." +msgstr "" + +#: joringsbridge.xml:201 +msgid "I know!" +msgstr "" + +#: joringsbridge.xml:384 +msgid "I will pray that your family is safe long enough." +msgstr "" + +#: joringsbridge.xml:105 +msgid "I'm begging you, my prince!" +msgstr "" + +#: joringsbridge.xml:383 +msgid "I'm sorry, good man." +msgstr "" + +#: joringsbridge.xml:284 +msgid "If the city is lost, I'll just conquer it back!" +msgstr "" + +#: joringsbridge.xml:289 +msgid "If the city is lost, we'll just conquer it back!" +msgstr "" + +#: joringsbridge.xml:343 +msgid "Is that a problem for you?" +msgstr "" + +#: joringsbridge.xml:2 +msgid "Joringsbridge" +msgstr "" + +#: joringsbridge.xml:106 +msgid "Leave at least a handful of soldiers here." +msgstr "" + +#: joringsbridge.xml:256 +msgid "Looks like our model, doesn't it?" +msgstr "" + +#: joringsbridge.xml:176 +msgid "My family..." +msgstr "" + +#: joringsbridge.xml:123 +msgid "My humble apologies, but the council has given me very important tasks." +msgstr "" + +#: joringsbridge.xml:197 +msgid "My prince!" +msgstr "" + +#: joringsbridge.xml:375 +msgid "My prince?" +msgstr "" + +#: joringsbridge.xml:263 +msgid "No" +msgstr "" + +#: joringsbridge.xml:368 +msgid "Nobody?" +msgstr "" + +#: joringsbridge.xml:115 +msgid "Not to mention you have a mighty summoner at your side." +msgstr "" + +#: joringsbridge.xml:277 +msgid "Only a stone would watch deedless." +msgstr "" + +#: joringsbridge.xml:352 +msgid "" +"Only hand over the gold if the goblins are driven off and the peasants are " +"alive in the end." +msgstr "" + +#: joringsbridge.xml:339 +msgid "Oops..." +msgstr "" + +#: joringsbridge.xml:353 +msgid "Otherwise, do your work diligently." +msgstr "" + +#: joringsbridge.xml:319 +msgid "Prince, I take the job!" +msgstr "" + +#: joringsbridge.xml:321 +msgid "Prince, we take the job!" +msgstr "" + +#: joringsbridge.xml:118 +msgid "Quite so!" +msgstr "" + +#: joringsbridge.xml:255 +msgid "Rubbish! Take a look at the crystal on the mege's staff." +msgstr "" + +#: joringsbridge.xml:137 +msgid "Self-satisfied parasite, that mage!" +msgstr "" + +#: joringsbridge.xml:133 +msgid "Sergeant Lutterer" +msgstr "" + +#: joringsbridge.xml:351 joringsbridge.xml:371 +msgid "Sergeant!" +msgstr "" + +#: joringsbridge.xml:111 +msgid "Silence!" +msgstr "" + +#: joringsbridge.xml:286 +msgid "So it's decided." +msgstr "" + +#: joringsbridge.xml:141 +msgid "Stop bugging the prince with your incompetence." +msgstr "" + +#: joringsbridge.xml:114 +msgid "Surely you can handle a hand full of lousy goblins." +msgstr "" + +#: joringsbridge.xml:185 +msgid "Take the fool away!" +msgstr "" + +#: joringsbridge.xml:126 +msgid "Thanks, that is enough." +msgstr "" + +#: joringsbridge.xml:212 +msgid "That could almost be worth the trouble." +msgstr "" + +#: joringsbridge.xml:358 +msgid "That much distrust is really unnecessary during a war. " +msgstr "" + +#: joringsbridge.xml:116 +msgid "That's more than enough." +msgstr "" + +#: joringsbridge.xml:244 +msgid "The blood always works..." +msgstr "" + +#: joringsbridge.xml:199 +msgid "The demons are at the northern border!" +msgstr "" + +#: joringsbridge.xml:246 +msgid "" +"The mage over there has another of those crystals on his staff, hasn't he?" +msgstr "" + +#: joringsbridge.xml:140 +msgid "The presence of the mage alone will drive out every goblin!" +msgstr "" + +#: joringsbridge.xml:186 +msgid "The prince has more important matters to tend to." +msgstr "" + +#: joringsbridge.xml:119 +msgid "" +"The pursuit of pathetic goblins is neither my duty nor do I see the point of " +"such absurd amusement." +msgstr "" + +#: joringsbridge.xml:113 +msgid "The safety of the country has absolute priority." +msgstr "" + +#: joringsbridge.xml:189 +msgid "Wait!" +msgstr "" + +#: joringsbridge.xml:198 +msgid "We don't have time!" +msgstr "" + +#: joringsbridge.xml:196 +msgid "We..." +msgstr "" + +#: joringsbridge.xml:249 joringsbridge.xml:258 +msgid "Well..." +msgstr "" + +#: joringsbridge.xml:282 joringsbridge.xml:287 +msgid "What do you think you're doing? You are to go to Dwarfenwall!" +msgstr "" + +#: joringsbridge.xml:190 +msgid "What happened?" +msgstr "" + +#: joringsbridge.xml:348 +msgid "What if they kill the peasants along?" +msgstr "" + +#: joringsbridge.xml:121 +msgid "" +"What would you do were the village to be attacked while I was on a fruitless " +"hunt for goblins?" +msgstr "" + +#: joringsbridge.xml:257 +msgid "Whatever. Get moving!" +msgstr "" + +#: joringsbridge.xml:283 +msgid "When I get there was never part of the deal!" +msgstr "" + +#: joringsbridge.xml:288 +msgid "When we get there was never part of the deal!" +msgstr "" + +#: joringsbridge.xml:253 +msgid "Where did you pop out from? Didn't we exclude you?" +msgstr "" + +#: joringsbridge.xml:242 +msgid "Where do you come from? Didn't I exclude you?" +msgstr "" + +#: joringsbridge.xml:248 +msgid "Who cares what you think? Let the peasant be a peasant and get moving!" +msgstr "" + +#: joringsbridge.xml:325 +msgid "Who is that?" +msgstr "" + +#: joringsbridge.xml:278 +msgid "Who knows how many sou... goblins are walking around there!" +msgstr "" + +#: joringsbridge.xml:338 +msgid "Windclaw, you fool!" +msgstr "" + +#: joringsbridge.xml:262 +msgid "Yes" +msgstr "" + +#: joringsbridge.xml:290 +msgid "Yes, show him who's in charge!" +msgstr "" + +#: joringsbridge.xml:241 +msgid "You are to go to Dwarfenwall immediately!" +msgstr "" + +#: joringsbridge.xml:252 +msgid "You have to go to Dwarfenwall immediately!" +msgstr "" + +#: joringsbridge.xml:247 +msgid "You people are really unnerving somehow." +msgstr "" + +#: joringsbridge.xml:243 joringsbridge.xml:254 +msgid "Your trifles cannot stop me." +msgstr "" + +#: joringsbridge.xml:3 joringsbridge.xml:392 +msgid "joringsbridge" +msgstr "" + +#: joringsbridge.xml:205 +msgid "ts" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/maylons_grave.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,218 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: maylons_grave.xml:170 +msgid "A goblin who wants to talk?" +msgstr "" + +#: maylons_grave.xml:433 +msgid "Akerans blessing to you." +msgstr "" + +#: maylons_grave.xml:205 +msgid "Better them than us." +msgstr "" + +#: maylons_grave.xml:191 +msgid "But last moon black human came." +msgstr "" + +#: maylons_grave.xml:437 +msgid "But now I have to return into the bliss of Akerans eternal oasis." +msgstr "" + +#: maylons_grave.xml:176 +msgid "Chase the goblins away" +msgstr "" + +#: maylons_grave.xml:435 +msgid "" +"For a long time now I have no use for it anymore. Choose yourself a weapon " +"you like." +msgstr "" + +#: maylons_grave.xml:167 +msgid "Gab Resh" +msgstr "" + +#: maylons_grave.xml:172 +msgid "Gab'Resh and his only harmless rustlers. No bandits." +msgstr "" + +#: maylons_grave.xml:250 +msgid "Get lost, before I change my mind!" +msgstr "" + +#: maylons_grave.xml:210 +msgid "" +"Get lost. I have better things to do than killing a band of pathetic goblins." +msgstr "" + +#: maylons_grave.xml:212 +msgid "" +"Get lost. we have better things to do than killing a band of pathetic " +"goblins." +msgstr "" + +#: maylons_grave.xml:208 +msgid "Good warning, yes? Mighty warrior-humans let us live, no?" +msgstr "" + +#: maylons_grave.xml:7 +msgid "" +"I came across some goblins in Maylon's Grave who babbled some nonsense and " +"were chased by a zombie. Something is going on in this grave. Maybe I should " +"have a look at it." +msgstr "" + +#: maylons_grave.xml:11 +msgid "" +"I came across some goblins in Maylon's Grave who were chased by a zombie. " +"Something is going on in this grave. Maybe I should take a look at it." +msgstr "" + +#: maylons_grave.xml:9 +msgid "" +"I came across some goblins in Maylon's Grave. According to their shaman a " +"necromancer animated some undead down in the crypt. I should take a look at " +"it." +msgstr "" + +#: maylons_grave.xml:195 +msgid "I cannot leave such a problem amidst this under-guarded region." +msgstr "" + +#: maylons_grave.xml:440 +msgid "" +"I wander if he would have said that if he had known that he will make a " +"detour to Harad's Hell first?" +msgstr "" + +#: maylons_grave.xml:175 +msgid "Listen to the goblins" +msgstr "" + +#: maylons_grave.xml:432 +msgid "May you do many other great deeds." +msgstr "" + +#: maylons_grave.xml:2 +msgid "Maylons Grave" +msgstr "" + +#: maylons_grave.xml:227 +msgid "Miserable brood! Die!" +msgstr "" + +#: maylons_grave.xml:229 +msgid "Miserable brood! Slay them all!" +msgstr "" + +#: maylons_grave.xml:434 +msgid "My sarcophagus contains many remains of my mortal life." +msgstr "" + +#: maylons_grave.xml:161 +msgid "No" +msgstr "" + +#: maylons_grave.xml:190 +msgid "No humans coming, and if do, they never return from depth of cave." +msgstr "" + +#: maylons_grave.xml:192 +msgid "" +"Now horror of the depth wandering to surface, too and being after poor " +"goblins who never not wants to steal anything." +msgstr "" + +#: maylons_grave.xml:201 +msgid "" +"Really, I should free those poor bound souls and send them off to a short " +"brake in Harad's Hell." +msgstr "" + +#: maylons_grave.xml:203 +msgid "" +"Really, we should free those poor bound souls and send them off to a short " +"brake in Harad's Hell." +msgstr "" + +#: maylons_grave.xml:177 +msgid "Slay the goblins" +msgstr "" + +#: maylons_grave.xml:5 +msgid "" +"Some necromancer really resurrected an old council mage. Probably to cause " +"confusion behind the lines. At least one problem that is solved." +msgstr "" + +#: maylons_grave.xml:159 +msgid "Talk with the goblins?" +msgstr "" + +#: maylons_grave.xml:431 +msgid "Thank you very much for liberating my soul." +msgstr "" + +#: maylons_grave.xml:193 +msgid "That almost sounds as if a necromancer came by." +msgstr "" + +#: maylons_grave.xml:436 +msgid "The same holds true for your friends." +msgstr "" + +#: maylons_grave.xml:197 +msgid "We cannot leave such a problem amidst this under-guarded region." +msgstr "" + +#: maylons_grave.xml:189 +msgid "We often hide here." +msgstr "" + +#: maylons_grave.xml:188 +msgid "What could a goblin possibly have to say?" +msgstr "" + +#: maylons_grave.xml:174 +msgid "What will you do?" +msgstr "" + +#: maylons_grave.xml:199 +msgid "Who knows what could happen?" +msgstr "" + +#: maylons_grave.xml:160 +msgid "Yes" +msgstr "" + +#: maylons_grave.xml:171 +msgid "Yes. No hurt, no kill." +msgstr "" + +#: maylons_grave.xml:173 +msgid "You listen, yes?" +msgstr "" + +#: maylons_grave.xml:16 maylons_grave.xml:264 +msgid "aisMaylonsGraveEntry" +msgstr "" + +#: maylons_grave.xml:297 +msgid "aisMaylonsGraveL1" +msgstr "" + +#: maylons_grave.xml:328 +msgid "aisMaylonsGraveL2" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/menu.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,821 @@ +# #-#-#-#-# menu.pot (PACKAGE VERSION) #-#-#-#-# +# French translations for PACKAGE package. +# Copyright (C) 2014 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# stefan <some.fusion@gmail.com>, 2014. +# +msgid "" +msgstr "" +"#-#-#-#-# menu.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-05-27 20:58+0200\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# menu.poe (PACKAGE VERSION) #-#-#-#-#\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../../src/core/damage.cpp:159 ../../src/gui/charinfo.cpp:707 +msgid "Physical" +msgstr "" + +#: ../../src/core/damage.cpp:161 ../../src/gui/charinfo.cpp:716 +msgid "Fire" +msgstr "" + +#: ../../src/core/damage.cpp:163 ../../src/gui/charinfo.cpp:713 +msgid "Ice" +msgstr "" + +#: ../../src/core/damage.cpp:165 ../../src/gui/charinfo.cpp:710 +msgid "Air" +msgstr "" + +#: ../../src/core/damage.cpp:175 +msgid "Physical resistance" +msgstr "" + +#: ../../src/core/damage.cpp:177 +msgid "Fire resistance" +msgstr "" + +#: ../../src/core/damage.cpp:179 +msgid "Ice resistance" +msgstr "" + +#: ../../src/core/damage.cpp:181 +msgid "Air resistance" +msgstr "" + +#: ../../src/core/damage.cpp:191 +msgid "blind" +msgstr "" + +#: ../../src/core/damage.cpp:193 +msgid "poisoned" +msgstr "" + +#: ../../src/core/damage.cpp:195 +msgid "mute" +msgstr "" + +#: ../../src/core/damage.cpp:197 +msgid "confused" +msgstr "" + +#: ../../src/core/damage.cpp:199 +msgid "berserk" +msgstr "" + +#: ../../src/core/damage.cpp:201 +msgid "paralyzed" +msgstr "" + +#: ../../src/core/damage.cpp:203 +msgid "frozen" +msgstr "" + +#: ../../src/core/damage.cpp:205 +msgid "burning" +msgstr "" + +#: ../../src/core/damage.cpp:282 ../../src/core/damage.cpp:286 +msgid "damage" +msgstr "" + +#: ../../src/core/damage.cpp:305 +msgid "can not be blocked" +msgstr "" + +#: ../../src/core/damage.cpp:312 ../../src/gui/charinfo.cpp:678 +msgid "Attack" +msgstr "" + +#: ../../src/core/damage.cpp:328 +msgid "ignores armor" +msgstr "" + +#: ../../src/core/damage.cpp:335 ../../src/gui/charinfo.cpp:693 +msgid "Power" +msgstr "" + +#: ../../src/core/damage.cpp:347 +msgid "Chance for critical hit" +msgstr "" + +#: ../../src/core/document.cpp:839 ../../src/core/document.cpp:864 +#: ../../src/core/document.cpp:884 +msgid "Please select a character first!" +msgstr "" + +#: ../../src/core/document.cpp:1288 ../../src/core/item.cpp:1013 +#: ../../src/core/item.cpp:1015 ../../src/core/item.cpp:1244 +#: ../../src/core/item.cpp:1250 +msgid "Required level" +msgstr "" + +#: ../../src/core/document.cpp:1298 +msgid "Timer" +msgstr "" + +#: ../../src/core/document.cpp:1299 +msgid "Cast delay" +msgstr "" + +#: ../../src/core/item.cpp:1005 ../../src/core/item.cpp:1230 +msgid "Value" +msgstr "" + +#: ../../src/core/item.cpp:1008 ../../src/core/item.cpp:1236 +msgid "Selling Value" +msgstr "" + +#: ../../src/core/item.cpp:1024 ../../src/core/item.cpp:1265 +msgid "Required class" +msgstr "" + +#: ../../src/core/item.cpp:1082 ../../src/core/item.cpp:1325 +msgid " hitpoints" +msgstr "" + +#: ../../src/core/item.cpp:1082 ../../src/core/item.cpp:1090 +#: ../../src/core/item.cpp:1325 ../../src/core/item.cpp:1335 +msgid "Heals " +msgstr "" + +#: ../../src/core/item.cpp:1093 ../../src/core/item.cpp:1341 +msgid "immune for " +msgstr "" + +#: ../../src/core/item.cpp:1105 ../../src/core/item.cpp:1355 +msgid "Two-handed weapon" +msgstr "" + +#: ../../src/core/item.cpp:1110 ../../src/core/item.cpp:1362 +#: ../../src/gui/charinfo.cpp:688 +msgid "Range" +msgstr "" + +#: ../../src/core/item.cpp:1122 ../../src/core/item.cpp:1375 +msgid "Damage" +msgstr "" + +#: ../../src/core/item.cpp:1134 ../../src/core/item.cpp:1403 +#: ../../src/gui/charinfo.cpp:698 +msgid "Armor" +msgstr "" + +#: ../../src/core/item.cpp:1139 ../../src/core/item.cpp:1415 +#: ../../src/gui/charinfo.cpp:357 +msgid "Block" +msgstr "" + +#: ../../src/core/item.cpp:1144 ../../src/core/item.cpp:1427 +msgid "max hitpoints" +msgstr "" + +#: ../../src/core/item.cpp:1149 ../../src/core/item.cpp:1439 +#: ../../src/gui/charinfo.cpp:653 +msgid "Strength" +msgstr "" + +#: ../../src/core/item.cpp:1154 ../../src/core/item.cpp:1451 +#: ../../src/gui/charinfo.cpp:657 +msgid "Dexterity" +msgstr "" + +#: ../../src/core/item.cpp:1159 ../../src/core/item.cpp:1463 +msgid "Magic Power" +msgstr "" + +#: ../../src/core/item.cpp:1164 ../../src/core/item.cpp:1475 +#: ../../src/gui/charinfo.cpp:661 +msgid "Willpower" +msgstr "" + +#: ../../src/core/item.cpp:1179 ../../src/core/item.cpp:1506 +msgid " max. " +msgstr "" + +#: ../../src/gui/charcreate.cpp:116 ../../src/gui/charinfo.cpp:630 +#: ../../src/gui/partyinfo.cpp:478 +msgid "Name" +msgstr "" + +#: ../../src/gui/charcreate.cpp:120 ../../src/gui/charinfo.cpp:649 +msgid "Class" +msgstr "" + +#: ../../src/gui/charcreate.cpp:124 ../../src/gui/networkwindows.cpp:120 +#: ../../src/gui/networkwindows.cpp:272 +msgid "Cancel" +msgstr "" + +#: ../../src/gui/charcreate.cpp:128 ../../src/gui/savegamelist.cpp:435 +msgid "Create" +msgstr "" + +#: ../../src/gui/charcreate.cpp:252 +msgid "You must enter a hero name!" +msgstr "" + +#: ../../src/gui/charcreate.cpp:269 +msgid "A character with that name already exists!" +msgstr "" + +#: ../../src/gui/charinfo.cpp:150 +msgid "Base damage" +msgstr "" + +#: ../../src/gui/charinfo.cpp:307 +msgid "You have" +msgstr "" + +#: ../../src/gui/charinfo.cpp:307 +msgid "attribute points to spend" +msgstr "" + +#: ../../src/gui/charinfo.cpp:326 +msgid "Damage dealt by " +msgstr "" + +#: ../../src/gui/charinfo.cpp:345 +msgid "Chance to hit " +msgstr "" + +#: ../../src/gui/charinfo.cpp:361 +msgid "Evade" +msgstr "" + +#: ../../src/gui/charinfo.cpp:379 +msgid "Chance to get hit by " +msgstr "" + +#: ../../src/gui/charinfo.cpp:470 +msgid "Damage dealt to " +msgstr "" + +#: ../../src/gui/charinfo.cpp:634 +msgid "Player info" +msgstr "" + +#: ../../src/gui/charinfo.cpp:637 +msgid "Attributes" +msgstr "" + +#: ../../src/gui/charinfo.cpp:640 +msgid "Offense" +msgstr "" + +#: ../../src/gui/charinfo.cpp:643 +msgid "Defense" +msgstr "" + +#: ../../src/gui/charinfo.cpp:646 ../../src/gui/savegamelist.cpp:362 +msgid "Level" +msgstr "" + +#: ../../src/gui/charinfo.cpp:654 +msgid "Strength increases hitpoints, melee damage and attack power." +msgstr "" + +#: ../../src/gui/charinfo.cpp:658 +msgid "Dexterity increases ranged damage, attack accuracy and attack speed" +msgstr "" + +#: ../../src/gui/charinfo.cpp:662 +msgid "" +"Willpower decreases the duration and the impact of status changes \n" +" and increases magical melee damage." +msgstr "" + +#: ../../src/gui/charinfo.cpp:665 +msgid "Magic power" +msgstr "" + +#: ../../src/gui/charinfo.cpp:666 +msgid "Magic power increases the damage of magical attacks." +msgstr "" + +#: ../../src/gui/charinfo.cpp:669 ../../src/gui/controlpanel.cpp:240 +msgid "Experience" +msgstr "" + +#: ../../src/gui/charinfo.cpp:670 +msgid "Current experience and experience necessary for next level-up." +msgstr "" + +#: ../../src/gui/charinfo.cpp:673 ../../src/gui/controlpanel.cpp:224 +msgid "Hitpoints" +msgstr "" + +#: ../../src/gui/charinfo.cpp:674 +msgid "Current and maximal hitpoints." +msgstr "" + +#: ../../src/gui/charinfo.cpp:679 +msgid "" +"Attack value determines the chance to hit enemies that can block or evade." +msgstr "" + +#: ../../src/gui/charinfo.cpp:683 +msgid "Attacks/s" +msgstr "" + +#: ../../src/gui/charinfo.cpp:684 +msgid "Number of attacks per second." +msgstr "" + +#: ../../src/gui/charinfo.cpp:689 +msgid "Weapon Range in meters." +msgstr "" + +#: ../../src/gui/charinfo.cpp:694 +msgid "Attack power influences the damage dealt to armored enemies." +msgstr "" + +#: ../../src/gui/charinfo.cpp:699 +msgid "Armor reduces the damage of physical attacks." +msgstr "" + +#: ../../src/gui/charinfo.cpp:703 +msgid "" +"Block value determines the chance to avoid damage from physical attacks." +msgstr "" + +#: ../../src/gui/controlpanel.cpp:448 ../../src/gui/mainmenu.cpp:239 +#: ../../src/gui/optionswindow.cpp:517 +msgid "Options" +msgstr "" + +#: ../../src/gui/controlpanel.cpp:451 +msgid "Save & Exit" +msgstr "" + +#: ../../src/gui/controlpanel.cpp:454 +msgid "Chat" +msgstr "" + +#: ../../src/gui/controlpanel.cpp:457 ../../src/gui/inventory.cpp:464 +#: ../../src/gui/optionswindow.cpp:521 +msgid "Inventory" +msgstr "" + +#: ../../src/gui/controlpanel.cpp:460 +msgid "Character" +msgstr "" + +#: ../../src/gui/controlpanel.cpp:463 ../../src/gui/optionswindow.cpp:527 +#: ../../src/gui/skilltree.cpp:756 +msgid "Skilltree" +msgstr "" + +#: ../../src/gui/controlpanel.cpp:466 +msgid "Party" +msgstr "" + +#: ../../src/gui/controlpanel.cpp:469 ../../src/gui/optionswindow.cpp:536 +#: ../../src/gui/questinfo.cpp:161 +msgid "Quests" +msgstr "" + +#: ../../src/gui/inventory.cpp:459 +msgid "Drop:" +msgstr "" + +#: ../../src/gui/inventory.cpp:468 +msgid "Small" +msgstr "" + +#: ../../src/gui/inventory.cpp:471 +msgid "Medium" +msgstr "" + +#: ../../src/gui/inventory.cpp:474 +msgid "Big" +msgstr "" + +#: ../../src/gui/itemwindow.cpp:298 ../../src/gui/itemwindow.cpp:299 +msgid "Equipped:" +msgstr "" + +#: ../../src/gui/itemwindow.cpp:321 +msgid "Equipped (secondary):\n" +msgstr "" + +#: ../../src/gui/itemwindow.cpp:346 +msgid "Equipped (left):" +msgstr "" + +#: ../../src/gui/itemwindow.cpp:347 +msgid "Equipped (right):" +msgstr "" + +#: ../../src/gui/itemwindow.cpp:386 +msgid "Hovered:" +msgstr "" + +#: ../../src/gui/itemwindow.cpp:402 +msgid "Attached:\n" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:211 +msgid "Single player" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:218 +msgid "Join game" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:225 +msgid "Host game" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:232 +msgid "Credits" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:246 +msgid "Quit" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:316 +msgid "Logged in as: " +msgstr "" + +#: ../../src/gui/mainmenu.cpp:326 +msgid "Not logged in." +msgstr "" + +#: ../../src/gui/mainmenu.cpp:973 +msgid "Really delete savegame?" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:974 +msgid "Yes" +msgstr "" + +#: ../../src/gui/mainmenu.cpp:976 +msgid "No" +msgstr "" + +#: ../../src/gui/messageboxes.cpp:61 ../../src/gui/messageboxes.cpp:206 +#: ../../src/gui/messageboxes.cpp:256 ../../src/gui/networkwindows.cpp:117 +#: ../../src/gui/networkwindows.cpp:269 ../../src/gui/optionswindow.cpp:582 +#: ../../src/gui/tradewindow.cpp:293 +msgid "Ok" +msgstr "" + +#: ../../src/gui/messageboxes.cpp:64 +msgid "Abort" +msgstr "" + +#: ../../src/gui/messageboxes.cpp:69 +msgid "Save and Exit?" +msgstr "" + +#: ../../src/gui/networkwindows.cpp:123 +msgid "Host_game" +msgstr "" + +#: ../../src/gui/networkwindows.cpp:126 +msgid "Max. number of players" +msgstr "" + +#: ../../src/gui/networkwindows.cpp:129 ../../src/gui/networkwindows.cpp:281 +msgid "Port" +msgstr "" + +#: ../../src/gui/networkwindows.cpp:275 +msgid "Join_game" +msgstr "" + +#: ../../src/gui/networkwindows.cpp:278 +msgid "Host" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:144 +msgid "Easy" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:145 +msgid "Normal" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:146 +msgid "Hard" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:147 +msgid "Insane" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:181 +msgid "White" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:182 +msgid "Black" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:183 +msgid "Red" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:184 +msgid "Green" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:185 +msgid "Blue" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:186 +msgid "Yellow" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:187 +msgid "Magenta" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:188 +msgid "Cyan" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:189 +msgid "Orange" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:190 +msgid "Pink" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:191 +msgid "Purple" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:192 +msgid "Cornflower Blue" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:234 +msgid "System default" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:272 +msgid "Fullscreen (Exclusive Mode)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:273 +msgid "Window (With Borders)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:278 +msgid "Window (Fullscreen)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:279 +msgid " - recommended" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:384 +msgid "Off" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:385 +msgid "Simple (Higher quality)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:386 +msgid "Simple (Lower quality)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:387 +msgid "Simulated (Experimental 1)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:388 +msgid "Simulated (Experimental 2)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:504 +msgid "Shortkeys" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:506 +msgid "Gameplay" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:508 +msgid "Audio" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:510 +msgid "Graphic" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:512 ../../src/gui/optionswindow.cpp:563 +msgid "Language" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:524 +msgid "Character screen" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:530 +msgid "Party screen" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:533 +msgid "Chatbox" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:539 +msgid "Minimap" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:542 +msgid "Swap equipement" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:545 +msgid "Item Labels" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:548 +msgid "Difficulty" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:551 +msgid "Text Speed" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:554 +msgid "Sound" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:557 +msgid "Music" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:560 +msgid "Enemy Highlight Color" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:566 +msgid "Grab mouse in windowed mode (needs restart)" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:569 +msgid "Video Driver" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:572 +msgid "Display Mode" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:575 +msgid "Resolution" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:578 +msgid "Shadows" +msgstr "" + +#: ../../src/gui/optionswindow.cpp:998 +msgid "" +"Please restart the game\n" +" for the changes to take effect!" +msgstr "" + +#: ../../src/gui/questinfo.cpp:165 +msgid "open" +msgstr "" + +#: ../../src/gui/questinfo.cpp:168 +msgid "finished" +msgstr "" + +#: ../../src/gui/questinfo.cpp:171 +msgid "failed" +msgstr "" + +#: ../../src/gui/skilltree.cpp:748 +msgid "Skillpoints" +msgstr "" + +#: ../../src/gui/skilltree.cpp:751 +msgid "Next Skillpoint at Level" +msgstr "" + +#: ../../src/gui/tradewindow.cpp:289 +msgid "Chest" +msgstr "" + +#: ../../src/gui/worldmap.cpp:187 +msgid "Town Portal" +msgstr "" + +#: playerclasses.xml:2 +msgid "Warrior" +msgstr "" + +#: playerclasses.xml:39 +msgid "warrior" +msgstr "" + +#: playerclasses.xml:40 +msgid "fencer" +msgstr "" + +#: playerclasses.xml:42 +msgid "Fighting skills" +msgstr "" + +#: playerclasses.xml:42 +msgid "Fighting spirit" +msgstr "" + +#: playerclasses.xml:42 playerclasses.xml:270 +msgid "Passive skills" +msgstr "" + +#: playerclasses.xml:112 +msgid "Magician" +msgstr "" + +#: playerclasses.xml:152 +msgid "wizard" +msgstr "" + +#: playerclasses.xml:153 +msgid "sorceress" +msgstr "" + +#: playerclasses.xml:155 +msgid "Air magic" +msgstr "" + +#: playerclasses.xml:155 +msgid "Fire magic" +msgstr "" + +#: playerclasses.xml:155 +msgid "Ice magic" +msgstr "" + +#: playerclasses.xml:227 +msgid "Archer" +msgstr "" + +#: playerclasses.xml:267 +msgid "ranger" +msgstr "" + +#: playerclasses.xml:268 +msgid "archer" +msgstr "" + +#: playerclasses.xml:270 +msgid "Hunter magic" +msgstr "" + +#: playerclasses.xml:270 +msgid "Marksmanship" +msgstr "" + +#: playerclasses.xml:332 +msgid "Priest" +msgstr "" + +#: playerclasses.xml:371 +msgid "priest" +msgstr "" + +#: playerclasses.xml:372 +msgid "priestess" +msgstr "" + +#: playerclasses.xml:374 +msgid "Light Magic" +msgstr "" + +#: playerclasses.xml:374 +msgid "Water Magic" +msgstr "" + +#: playerclasses.xml:374 +msgid "Wind Magic" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/rescue_willard.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,347 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: rescue_willard.xml:2 +msgid "A friend in need" +msgstr "" + +#: rescue_willard.xml:10 +msgid "" +"A long search and quite a lot of dead goblins later Willard has finally " +"shown himself. I should give him the stone and be done with it." +msgstr "" + +#: rescue_willard.xml:143 +msgid "And doesn't even ask what the rest of us is thinking." +msgstr "" + +#: rescue_willard.xml:103 +msgid "And not wish to butcher every living thing that crossed their path." +msgstr "" + +#: rescue_willard.xml:127 +msgid "" +"And you cannot use a phasestone since it is dedicated to the goddess Avaera." +msgstr "" + +#: rescue_willard.xml:90 +msgid "" +"But don't worry, I will give no one away, as long as they behave themselves." +msgstr "" + +#: rescue_willard.xml:116 +msgid "" +"But he is cut off and those creatures are everywhere. I'm sure he is laying " +"low, waiting for help." +msgstr "" + +#: rescue_willard.xml:126 +msgid "But you Branded Ones have other ways and means to travel, haven't you?" +msgstr "" + +#: rescue_willard.xml:221 +msgid "By Avaera's blessed and arcane...! He still has that thing?" +msgstr "" + +#: rescue_willard.xml:215 +msgid "Can I ask you for another favor?" +msgstr "" + +#: rescue_willard.xml:87 +msgid "Do I have a sign somewere saying: Caution, dangerous monster?!" +msgstr "" + +#: rescue_willard.xml:100 +msgid "Does an honorable member of the city guard want someone's throat cut?" +msgstr "" + +#: rescue_willard.xml:55 +msgid "Fenor Marken" +msgstr "" + +#: rescue_willard.xml:204 +msgid "Give Willard the stone (Reward)" +msgstr "" + +#: rescue_willard.xml:224 +msgid "Good old Fenor. Here, a token of my appreciation." +msgstr "" + +#: rescue_willard.xml:73 +msgid "Have you changed your mind?" +msgstr "" + +#: rescue_willard.xml:108 +msgid "" +"He was out in the far meadows with two collegues, when they were attacked by " +"goblins." +msgstr "" + +#: rescue_willard.xml:25 +msgid "Hey there!" +msgstr "" + +#: rescue_willard.xml:89 +msgid "I could always tell if someone was a Branded One." +msgstr "" + +#: rescue_willard.xml:107 +msgid "I have a friend with the gamekeepers." +msgstr "" + +#: rescue_willard.xml:69 +msgid "I sincerely hope you find Willard in time." +msgstr "" + +#: rescue_willard.xml:67 +msgid "I sincerely hope you find Willard in time. ##solo" +msgstr "" + +#: rescue_willard.xml:166 +msgid "I would search for him myself." +msgstr "" + +#: rescue_willard.xml:123 +msgid "I wouldn't entrust this to anyone else normally." +msgstr "" + +#: rescue_willard.xml:159 +msgid "I'm sorry, but I don't want to waste my time searching for gamekeepers." +msgstr "" + +#: rescue_willard.xml:162 +msgid "I'm sorry, but we cannot waste our time searching for gamekeepers." +msgstr "" + +#: rescue_willard.xml:84 +msgid "If I'm not mistaken you are Branded Ones." +msgstr "" + +#: rescue_willard.xml:80 rescue_willard.xml:82 +msgid "If I'm not mistaken you are a Branded One." +msgstr "" + +#: rescue_willard.xml:165 +msgid "If only I could leave my post." +msgstr "" + +#: rescue_willard.xml:177 +msgid "Leave, before I tell someone about you!" +msgstr "" + +#: rescue_willard.xml:174 +msgid "Leave, before I tell someone about you! ##solo" +msgstr "" + +#: rescue_willard.xml:130 +msgid "Medair, the seat of learning! Where even the city guard are scholars" +msgstr "" + +#: rescue_willard.xml:223 +msgid "Mine is long used up." +msgstr "" + +#: rescue_willard.xml:124 +msgid "Much less someone totally unknown." +msgstr "" + +#: rescue_willard.xml:104 +msgid "My apologies. It was a slip of the tongue." +msgstr "" + +#: rescue_willard.xml:216 +msgid "My leg is hurt and I won't make it to Medair alone." +msgstr "" + +#: rescue_willard.xml:76 rescue_willard.xml:134 +msgid "No" +msgstr "" + +#: rescue_willard.xml:115 +msgid "No, Willard isn't someone likely to be caught by a few lousy goblins." +msgstr "" + +#: rescue_willard.xml:96 +msgid "Only someone like you could do it reliable." +msgstr "" + +#: rescue_willard.xml:93 +msgid "Only someone like you could do it reliably. ##solo" +msgstr "" + +#: rescue_willard.xml:102 +msgid "" +"Perhaps I was mistaken and the stories are true. I had believed that a few " +"Branded Ones might be capable of restraint..." +msgstr "" + +#: rescue_willard.xml:74 rescue_willard.xml:132 +msgid "Search for Willard?" +msgstr "" + +#: rescue_willard.xml:271 +msgid "So here is this Willard." +msgstr "" + +#: rescue_willard.xml:105 +msgid "So, what is it that you want?" +msgstr "" + +#: rescue_willard.xml:129 +msgid "Somebody else who appears to know quite a lot." +msgstr "" + +#: rescue_willard.xml:225 +msgid "Surely someone of your trade can always use a little money?" +msgstr "" + +#: rescue_willard.xml:111 +msgid "Surely you don't want me to bring back his corpse, do you?" +msgstr "" + +#: rescue_willard.xml:113 +msgid "Surely you don't want us to bring back his corpse, do you?" +msgstr "" + +#: rescue_willard.xml:226 +msgid "Thank you very much." +msgstr "" + +#: rescue_willard.xml:148 +msgid "Thank you." +msgstr "" + +#: rescue_willard.xml:146 +msgid "Thank you. ##solo" +msgstr "" + +#: rescue_willard.xml:106 +msgid "Thank you. My name is Fenor Marken." +msgstr "" + +#: rescue_willard.xml:214 +msgid "Thanks for your help." +msgstr "" + +#: rescue_willard.xml:88 +msgid "That is the second time today!" +msgstr "" + +#: rescue_willard.xml:121 +msgid "That is why I only ask you to bring him this phasestone." +msgstr "" + +#: rescue_willard.xml:119 +msgid "That is why I only ask you to bring him this phasestone. ##solo" +msgstr "" + +#: rescue_willard.xml:128 +msgid "That is why I would trust you to help." +msgstr "" + +#: rescue_willard.xml:219 +msgid "That's me. How do you know my name?" +msgstr "" + +#: rescue_willard.xml:109 +msgid "The cowards left him behind!" +msgstr "" + +#: rescue_willard.xml:176 +msgid "Then what do you want from me?" +msgstr "" + +#: rescue_willard.xml:173 +msgid "Then what do you want of me? ##solo" +msgstr "" + +#: rescue_willard.xml:95 +msgid "There is something I'd like to ask of you." +msgstr "" + +#: rescue_willard.xml:92 +msgid "There is something I'd like to ask of you. ##solo" +msgstr "" + +#: rescue_willard.xml:222 +msgid "This was the cause of a few youthful follies." +msgstr "" + +#: rescue_willard.xml:86 +msgid "What the..." +msgstr "" + +#: rescue_willard.xml:101 +msgid "What? I could have hired a professional assassin for that." +msgstr "" + +#: rescue_willard.xml:99 +msgid "Who would have thought that?" +msgstr "" + +#: rescue_willard.xml:125 +msgid "Who wouldn't take off with it?" +msgstr "" + +#: rescue_willard.xml:56 rescue_willard.xml:203 +msgid "Willard" +msgstr "" + +#: rescue_willard.xml:5 +msgid "" +"Willard is back in Medair and he even forked out some money. Who said it " +"wouldn't pay to let people live? At least as long there are enough goblins " +"around." +msgstr "" + +#: rescue_willard.xml:8 +msgid "" +"Willard is in hiding somewhere around the Aisen Meadow. Due to his injury he " +"will show himself only if there are no goblins around." +msgstr "" + +#: rescue_willard.xml:75 rescue_willard.xml:133 +msgid "Yes" +msgstr "" + +#: rescue_willard.xml:217 +msgid "You are Willard, I suppose." +msgstr "" + +#: rescue_willard.xml:163 +msgid "You are as cold-hearted as they say." +msgstr "" + +#: rescue_willard.xml:160 +msgid "You are as cold-hearted as they say. ##solo" +msgstr "" + +#: rescue_willard.xml:117 +msgid "You seem very busy." +msgstr "" + +#: rescue_willard.xml:220 +msgid "" +"Your friend Fenor Marken sent us and told us to give you this phasestone." +msgstr "" + +#: rescue_willard.xml:141 +msgid "Your friend is as good as safe." +msgstr "" + +#: rescue_willard.xml:247 +msgid "aisMeadow" +msgstr "" + +#: rescue_willard.xml:15 rescue_willard.xml:183 +msgid "medMercCamp" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/rob_the_robber.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,245 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: rob_the_robber.xml:45 rob_the_robber.xml:116 +msgid "10000 gold pieces are quite interesting for the traveling fund." +msgstr "" + +#: rob_the_robber.xml:35 rob_the_robber.xml:106 +msgid "Accept the quest?" +msgstr "" + +#: rob_the_robber.xml:46 rob_the_robber.xml:117 +msgid "And I'm pretty lucky myself." +msgstr "" + +#: rob_the_robber.xml:32 rob_the_robber.xml:103 +msgid "And Rob is plundering and murdering on." +msgstr "" + +#: rob_the_robber.xml:34 rob_the_robber.xml:105 +msgid "Are you interested?" +msgstr "" + +#: rob_the_robber.xml:75 +msgid "" +"Better hope that the stories about him rising from his grave are just " +"fairytales." +msgstr "" + +#: rob_the_robber.xml:94 +msgid "Bring me his necklace and I give you the 10000 gold pieces." +msgstr "" + +#: rob_the_robber.xml:148 +msgid "But that shall not be my problem." +msgstr "" + +#: rob_the_robber.xml:144 +msgid "By all devils!" +msgstr "" + +#: rob_the_robber.xml:31 rob_the_robber.xml:102 +msgid "" +"Every time someone wants to have killed him, he winds up dead a short time " +"later himself." +msgstr "" + +#: rob_the_robber.xml:26 rob_the_robber.xml:97 +msgid "Excuse me, sergeant, but I noticed this wanted poster." +msgstr "" + +#: rob_the_robber.xml:281 +msgid "Have fun with that. If you escape hell, that is." +msgstr "" + +#: rob_the_robber.xml:149 +msgid "Here are the 10000 gold pieces." +msgstr "" + +#: rob_the_robber.xml:72 rob_the_robber.xml:143 +msgid "Here is the necklace of Rob the robber." +msgstr "" + +#: rob_the_robber.xml:147 +msgid "His vengeful spirit will supposedly hunt all those who hurt him." +msgstr "" + +#: rob_the_robber.xml:23 +msgid "" +"I really should pay this guy a visit. 10000 gold pieces are not chickenfeed." +msgstr "" + +#: rob_the_robber.xml:226 +msgid "" +"I will quarter and skin everyone of you, before I throw you to the wolves!" +msgstr "" + +#: rob_the_robber.xml:221 +msgid "I will quarter and skin you, before I throw you to the wolves!" +msgstr "" + +#: rob_the_robber.xml:73 +msgid "I'll be damned!" +msgstr "" + +#: rob_the_robber.xml:121 +msgid "If you can bring it to me I will believe you that Rob is dead." +msgstr "" + +#: rob_the_robber.xml:50 +msgid "" +"If you can take it to sergeant Wober in Dwarfenwall he will believe you that " +"Rob is dead." +msgstr "" + +#: rob_the_robber.xml:44 rob_the_robber.xml:115 +msgid "Indeed." +msgstr "" + +#: rob_the_robber.xml:27 rob_the_robber.xml:98 +msgid "" +"Isn't a bounty of 10000 gold pieces a little bit over the top for one man?" +msgstr "" + +#: rob_the_robber.xml:33 rob_the_robber.xml:104 +msgid "It seems he has oodles of luck, that villain." +msgstr "" + +#: rob_the_robber.xml:58 rob_the_robber.xml:129 +msgid "Just curious." +msgstr "" + +#: rob_the_robber.xml:270 rob_the_robber.xml:273 +msgid "" +"My soul will crawl out of it's grave and hunt you to the ends of the world!" +msgstr "" + +#: rob_the_robber.xml:37 rob_the_robber.xml:108 +msgid "No" +msgstr "" + +#: rob_the_robber.xml:95 +msgid "Not a second earlier!" +msgstr "" + +#: rob_the_robber.xml:29 rob_the_robber.xml:100 +msgid "Oh, him." +msgstr "" + +#: rob_the_robber.xml:51 +msgid "" +"Right now we suspect him to be in the Fairywoods between here and " +"Dwarvenwall." +msgstr "" + +#: rob_the_robber.xml:122 +msgid "" +"Right now we suspect him to be in the Fairywoods between here and " +"Joringsbridge." +msgstr "" + +#: rob_the_robber.xml:133 +msgid "Rob the Robber (Reward)" +msgstr "" + +#: rob_the_robber.xml:62 +msgid "Rob the Robber killed" +msgstr "" + +#: rob_the_robber.xml:2 +msgid "Rob the robber" +msgstr "" + +#: rob_the_robber.xml:4 +msgid "" +"Rob the robber breathed his last and provided a downright windfall while he " +"was on it." +msgstr "" + +#: rob_the_robber.xml:6 +msgid "" +"Rob the robber is dead and will soon be forgotten. I have his neckband and " +"I'm on my way to Dwarfenwall to show it to this sergeant Wober. I have no " +"idea why everyone was so afraid of this guy." +msgstr "" + +#: rob_the_robber.xml:8 +msgid "" +"Rob the robber supposedly hides in the depth of the Fairywoods. Find him, " +"dispose of him and take his neckband. At least it spares me the unsavory " +"task of carrying a head around." +msgstr "" + +#: rob_the_robber.xml:12 +msgid "Sergeant Lutterer" +msgstr "" + +#: rob_the_robber.xml:83 +msgid "Sergeant Wober" +msgstr "" + +#: rob_the_robber.xml:77 +msgid "Sergeant Wober in Dwarfenwall has it." +msgstr "" + +#: rob_the_robber.xml:145 +msgid "Someone really got him?" +msgstr "" + +#: rob_the_robber.xml:30 rob_the_robber.xml:101 +msgid "The bounty hunters keep their fingers off him." +msgstr "" + +#: rob_the_robber.xml:48 rob_the_robber.xml:119 +msgid "Then take his necklace." +msgstr "" + +#: rob_the_robber.xml:13 rob_the_robber.xml:84 +msgid "Wanted poster" +msgstr "" + +#: rob_the_robber.xml:24 +msgid "Watch your back." +msgstr "" + +#: rob_the_robber.xml:146 +msgid "Well, I wish you luck." +msgstr "" + +#: rob_the_robber.xml:76 +msgid "What about my reward?" +msgstr "" + +#: rob_the_robber.xml:49 rob_the_robber.xml:120 +msgid "Word is, he treasures it quite a lot." +msgstr "" + +#: rob_the_robber.xml:36 rob_the_robber.xml:107 +msgid "Yes" +msgstr "" + +#: rob_the_robber.xml:74 +msgid "You really got him?" +msgstr "" + +#: rob_the_robber.xml:223 rob_the_robber.xml:228 +msgid "You talk too much!" +msgstr "" + +#: rob_the_robber.xml:248 rob_the_robber.xml:250 +msgid "You will die! I will destroy you!!" +msgstr "" + +#: rob_the_robber.xml:167 +msgid "aisDarkFairyforest" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/scout.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,238 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: scout.xml:71 +msgid "..." +msgstr "" + +#: scout.xml:90 +msgid "A blue potion?" +msgstr "" + +#: scout.xml:104 +msgid "Allright. Now that this is done, I will be on my way." +msgstr "" + +#: scout.xml:24 +msgid "Are you alive?" +msgstr "" + +#: scout.xml:102 +msgid "" +"Because I seriously do NOT want to rummage through your happy collection of " +"identical looking special-purpose-potions." +msgstr "" + +#: scout.xml:49 +msgid "But since I don't have to carry you to safety, I guess it is allright." +msgstr "" + +#: scout.xml:39 +msgid "But spying on the undead... evading... those blasted goblins..." +msgstr "" + +#: scout.xml:66 scout.xml:81 +msgid "Do you... have my gear?" +msgstr "" + +#: scout.xml:31 +msgid "Does it look... 'alright' to you?" +msgstr "" + +#: scout.xml:98 +msgid "Finally!" +msgstr "" + +#: scout.xml:100 +msgid "Gladly. Really, thank you for saving my hide." +msgstr "" + +#: scout.xml:82 +msgid "Here it is." +msgstr "" + +#: scout.xml:30 +msgid "Hey, are you alright?" +msgstr "" + +#: scout.xml:37 +msgid "I can... watch my own back..." +msgstr "" + +#: scout.xml:41 +msgid "I got a little... careless." +msgstr "" + +#: scout.xml:35 +msgid "I guess I could patch you up, but I can't carry you out of here." +msgstr "" + +#: scout.xml:7 +msgid "" +"I really stumbled across a scout in the goblin infested caves west of " +"Dwarfenwall. He is wounded, lost his gear to some spiders and asked me to " +"fix it for him. I really wonder if I should do this... then again it would " +"be an excuse to venture deeper into the caves that are obviously not under " +"control by the undead." +msgstr "" + +#: scout.xml:5 +msgid "" +"I rescued a scout and hopefully gained some goodwill from the local militia. " +"Whatever good that will do." +msgstr "" + +#: scout.xml:105 +msgid "" +"I will rest a little more and then be on my way too, but in the other " +"direction." +msgstr "" + +#: scout.xml:47 +msgid "If you're... not afraid... that is." +msgstr "" + +#: scout.xml:43 +msgid "" +"Lot's of wolves... but a nest of spiders, too... thought I had... it under " +"control" +msgstr "" + +#: scout.xml:38 +msgid "Most of the time... at least." +msgstr "" + +#: scout.xml:94 +msgid "No... too... light blue" +msgstr "" + +#: scout.xml:67 +msgid "Not yet, no." +msgstr "" + +#: scout.xml:32 +msgid "Pretty much, yes." +msgstr "" + +#: scout.xml:99 +msgid "Remember me not to kill you after all the trouble I went through." +msgstr "" + +#: scout.xml:68 +msgid "" +"Shame. It seems I'm already capable of... being paralyzed... without your " +"help." +msgstr "" + +#: scout.xml:46 +msgid "So... if you could get... me my gear, I... would be good to go again..." +msgstr "" + +#: scout.xml:103 +msgid "Sorry about that. Normally I'm the only one who has to keep them apart." +msgstr "" + +#: scout.xml:60 scout.xml:75 +msgid "Still alive?" +msgstr "" + +#: scout.xml:69 +msgid "" +"Thanks for... checking back on me though. I'll be here... if you need me." +msgstr "" + +#: scout.xml:55 +msgid "Thanks..." +msgstr "" + +#: scout.xml:96 +msgid "That's... it" +msgstr "" + +#: scout.xml:45 +msgid "" +"The venom... can't move at all... anymore... I had an antidote in my pack..." +msgstr "" + +#: scout.xml:2 +msgid "The wounded scout" +msgstr "" + +#: scout.xml:92 +msgid "" +"They just... turn out that... way everytime... it's the one... with the " +"light shade of turquoise." +msgstr "" + +#: scout.xml:51 +msgid "This wouldn't happen to be your stuff, would it?" +msgstr "" + +#: scout.xml:42 +msgid "West of here... there's a cave... pretty deep inside..." +msgstr "" + +#: scout.xml:36 +msgid "" +"Where I'm headed you will most certainly die a quick and meaningless death." +msgstr "" + +#: scout.xml:23 +msgid "Wounded Scout" +msgstr "" + +#: scout.xml:34 +msgid "" +"Yeah, right... now, when you're done laughing... maybe you could help me?" +msgstr "" + +#: scout.xml:52 +msgid "You already... found it?" +msgstr "" + +#: scout.xml:70 +msgid "You are kind of messed up, you know that?" +msgstr "" + +#: scout.xml:101 +msgid "You best stay out of trouble." +msgstr "" + +#: scout.xml:33 +msgid "You can still talk, right?" +msgstr "" + +#: scout.xml:91 +msgid "You do realize there is at least a score of 'blue' potions here?" +msgstr "" + +#: scout.xml:48 +msgid "You have a strange manner of asking for favors." +msgstr "" + +#: scout.xml:89 +msgid "good... now, blue potion" +msgstr "" + +#: scout.xml:11 +msgid "greyCurseCave" +msgstr "" + +#: scout.xml:118 +msgid "greyWolfcave" +msgstr "" + +#: scout.xml:44 +msgid "" +"really big one... there. Spider, I mean... got me good... lost my gear... " +"but got away... somehow" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/sumwars.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,3513 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: aisBaelensRift.xml:3 +msgid "aisBaelensRift" +msgstr "" + +#: aisBoulderGrounds.xml:3 +msgid "aisBoulderGrounds" +msgstr "" + +#: aisCopperFields.xml:3 +msgid "aisCopperFields" +msgstr "" + +#: aisDarkClearing.xml:4 +msgid "aisDarkClearing" +msgstr "" + +#: aisDarkFairyforest.xml:4 +msgid "aisDarkFairyforest" +msgstr "" + +#: aisEastslope.xml:4 +msgid "aisEastslope" +msgstr "" + +#: aisEastslope.xml:54 +msgid "Watch out! Monsters from the mine! Help me!" +msgstr "" + +#: aisEastslope.xml:70 +msgid "Let me tell you I'm no monster. I'm worse." +msgstr "" + +#: aisFairyforest.xml:3 +msgid "aisFairyforest" +msgstr "" + +#: aisHeath.xml:4 +msgid "aisHeath" +msgstr "" + +#: aisHillRoad.xml:3 +msgid "aisHillRoad" +msgstr "" + +#: aisJoringsforest.xml:4 +msgid "aisJoringsforest" +msgstr "" + +#: aisMaylonsGraveEntry.xml:3 +msgid "aisMaylonsGraveEntry" +msgstr "" + +#: aisMaylonsGraveL1.xml:4 +msgid "aisMaylonsGraveL1" +msgstr "" + +#: aisMaylonsGraveL2.xml:5 +msgid "aisMaylonsGraveL2" +msgstr "" + +#: aisMeadow.xml:5 +msgid "aisMeadow" +msgstr "" + +#: aisMineEntry.xml:3 +msgid "aisMineEntry" +msgstr "" + +#: aisMistslope.xml:4 +msgid "aisMistslope" +msgstr "" + +#: aisMounMeadows.xml:3 +msgid "aisMounMeadows" +msgstr "" + +#: aisMounPath.xml:4 +msgid "aisMounPath" +msgstr "" + +#: aisNorthMeadow.xml:6 +msgid "aisNorthMeadow" +msgstr "" + +#: aisOldCellar.xml:4 +msgid "aisOldCellar" +msgstr "" + +#: aisOldDwarfRuins.xml:4 +msgid "aisOldDwarfRuins" +msgstr "" + +#: aisPlains.xml:5 +msgid "aisPlains" +msgstr "" + +#: aisStonePlains.xml:2 +msgid "aisStonePlains" +msgstr "" + +#: aisWestwoods.xml:4 +msgid "aisWestwoods" +msgstr "" + +#: aisWideHeath.xml:2 +msgid "aisWideHeath" +msgstr "" + +#: aisWolfstones.xml:4 +msgid "aisWolfstones" +msgstr "" + +#: aisenMonsterStats.xml:3 +msgid "Bloodbeak" +msgstr "" + +#: aisenMonsterStats.xml:52 +msgid "Giant wolf" +msgstr "" + +#: aisenMonsterStats.xml:96 +msgid "wolf" +msgstr "" + +#: aisenMonsterStats.xml:151 +msgid "Psychotic Spider" +msgstr "" + +#: aisenMonsterStats.xml:199 +msgid "Cave Spider" +msgstr "" + +#: aisenMonsterStats.xml:251 +msgid "Spider" +msgstr "" + +#: aisenMonsterStats.xml:293 +msgid "Giant Bat" +msgstr "" + +#: aisenNPCStats.xml:3 aisenNPCStats.xml:526 npc.xml:10 +msgid "Guard" +msgstr "" + +#: aisenNPCStats.xml:46 aisenNPCStats.xml:88 npc.xml:25 +msgid "General Greif" +msgstr "" + +#: aisenNPCStats.xml:133 npc.xml:31 +msgid "Prince Karlen" +msgstr "" + +#: aisenNPCStats.xml:176 npc.xml:19 +msgid "Leonard von Robenforst" +msgstr "" + +#: aisenNPCStats.xml:219 +msgid "Scout" +msgstr "" + +#: aisenNPCStats.xml:257 monster_ablt.xml:70 +msgid "Healer" +msgstr "" + +#: aisenNPCStats.xml:301 aisenNPCStats.xml:345 +msgid "Trader" +msgstr "" + +#: aisenNPCStats.xml:391 aisenNPCStats.xml:569 +msgid "Bowman" +msgstr "" + +#: aisenNPCStats.xml:430 aisenNPCStats.xml:479 +msgid "Avaeras Order, Firemage" +msgstr "" + +#: aisenNPCStats.xml:608 +msgid "Elite Swordsman" +msgstr "" + +#: amulet.xml:5 +msgid "feather amulet" +msgstr "" + +#: amulet.xml:34 +msgid "amber amulet" +msgstr "" + +#: amulet.xml:63 +msgid "silver amulet" +msgstr "" + +#: amulet.xml:92 +msgid "coral amulet" +msgstr "" + +#: amulet.xml:121 +msgid "gold amulet" +msgstr "" + +#: archer_ablt.xml:2 +msgid "Snipe" +msgstr "" + +#: archer_ablt.xml:2 +msgid "" +"The archers deadly precision causes his shots to deal more damage than " +"normal." +msgstr "" + +#: archer_ablt.xml:22 +msgid "Blind Rage" +msgstr "" + +#: archer_ablt.xml:22 +msgid "" +"The archer attacks the enemies eyes, causing him to go berserk, but be " +"blinded at the same time." +msgstr "" + +#: archer_ablt.xml:45 +msgid "Bow Spirit" +msgstr "" + +#: archer_ablt.xml:45 +msgid "" +"The archer becomes one with his weapon, dealing more damage over a longer " +"time. Additionally his critical strike chance is increased. This effect " +"stacks with Elfeyes." +msgstr "" + +#: archer_ablt.xml:67 +msgid "Concentration" +msgstr "" + +#: archer_ablt.xml:67 +msgid "The archers steady mind can no longer be confused." +msgstr "" + +#: archer_ablt.xml:78 +msgid "Elfeyes" +msgstr "" + +#: archer_ablt.xml:78 +msgid "" +"The archer shoots with deadly precision, leading to an increased critical " +"hit rate." +msgstr "" + +#: archer_ablt.xml:88 +msgid "Deadly Roulette" +msgstr "" + +#: archer_ablt.xml:88 +msgid "" +"The projectile has a fifty percent probability to attack another target, if " +"it hits someone. Be careful not to stand in its way, for it distinguishes " +"not between friend and foe." +msgstr "" + +#: archer_ablt.xml:112 +msgid "Catlike Reflexes" +msgstr "" + +#: archer_ablt.xml:112 +msgid "The archers nimble mind allows him to avoid damage better." +msgstr "" + +#: archer_ablt.xml:122 +msgid "Explosion Arrow" +msgstr "" + +#: archer_ablt.xml:122 +msgid "" +"The projectile is imbued with the power of a weak firespirit. It will deal " +"damage in a small area, if it hits." +msgstr "" + +#: archer_ablt.xml:150 +msgid "Blast Cascade" +msgstr "" + +#: archer_ablt.xml:150 +msgid "" +"The projectile is imbued with the power of a firespirit. It will explode " +"with areadamage on hitting. Additionally four more explosions will go of in " +"every direction." +msgstr "" + +#: archer_ablt.xml:179 +msgid "Frost Arrows" +msgstr "" + +#: archer_ablt.xml:179 +msgid "" +"The archer summons a spirit of ice into his weapon, causing his shots to " +"deal icedamage over a greater amount of time. There is a chance that his " +"enemies will be frozen solid if they are hit." +msgstr "" + +#: archer_ablt.xml:200 +msgid "Deadly Swarm" +msgstr "" + +#: archer_ablt.xml:200 +msgid "" +"The archer shoots four consecutive projectiles that are imbued with vengeful " +"spirits. They will pursue the enemy, even if he tries to run." +msgstr "" + +#: archer_ablt.xml:219 +msgid "Ice Arrows" +msgstr "" + +#: archer_ablt.xml:219 +msgid "" +"The archer calls upon the spirits of ice to imbue his projectiles with " +"icedamage." +msgstr "" + +#: archer_ablt.xml:240 +msgid "Mind Wall" +msgstr "" + +#: archer_ablt.xml:240 +msgid "The archer has become immune to anger. He will never go berserk again." +msgstr "" + +#: archer_ablt.xml:250 +msgid "Fanshot" +msgstr "" + +#: archer_ablt.xml:250 +msgid "" +"The archer shoots five projectiles at a time, aimed at enemies in front of " +"him. The damage dealt by each projectile suffers a little." +msgstr "" + +#: archer_ablt.xml:273 +msgid "Elfwanderer" +msgstr "" + +#: archer_ablt.xml:273 +msgid "" +"The archer unleashes a mighty shot that pierces right through an enemy and " +"might hit another enemy behind him." +msgstr "" + +#: archer_ablt.xml:298 +msgid "North Hunter" +msgstr "" + +#: archer_ablt.xml:298 +msgid "" +"The archers good longterm relations with the spirits of wind and ice has " +"caused his resistence and his maximum resistance of these elements to rise " +"by 10 percent." +msgstr "" + +#: archer_ablt.xml:308 +msgid "North Roamer" +msgstr "" + +#: archer_ablt.xml:308 +msgid "" +"The archer has made a pact with the spirits of wind and ice. His resistance " +"against wind- and icedamage is increased by 20 percent." +msgstr "" + +#: archer_ablt.xml:318 +msgid "Storm Arrows" +msgstr "" + +#: archer_ablt.xml:318 +msgid "" +"The mighty spirits of wind themselfes help the archer by imbuing his " +"projectiles with their power, causing them to deal more winddamage for a " +"longer time." +msgstr "" + +#: archer_ablt.xml:339 +msgid "" +"The archers mastery of ranged weapons allows him to shoot three projectiles " +"in a short amount of time." +msgstr "" + +#: archer_ablt.xml:339 +msgid "Tripple Shot" +msgstr "" + +#: archer_ablt.xml:358 +msgid "" +"The archer attacks with an arrow imbued with a weaker windspirit, that " +"causes an enemy hit by it to be stunned." +msgstr "" + +#: archer_ablt.xml:358 +msgid "Vacuum" +msgstr "" + +#: archer_ablt.xml:385 +msgid "Iron Hail" +msgstr "" + +#: archer_ablt.xml:385 +msgid "" +"The archer handles his weapons with elflike precision, attacking up to seven " +"enemys in front of him. The damage dealt by each projectile suffers a little." +msgstr "" + +#: archer_ablt.xml:405 +msgid "" +"The archer attacks a weak point of his enemy, causing the victim to go " +"berserk." +msgstr "" + +#: archer_ablt.xml:405 +msgid "Weak Spot" +msgstr "" + +#: archer_ablt.xml:427 +msgid "" +"The archer has been grantet the power to imbue his projectiles with " +"winddamage by the spirits of wind." +msgstr "" + +#: archer_ablt.xml:427 +msgid "Wind Arrows" +msgstr "" + +#: archer_ablt.xml:448 +msgid "" +"The spirits of wind help the archer to move faster than normal and avoid " +"damage." +msgstr "" + +#: archer_ablt.xml:448 +msgid "Windwalk" +msgstr "" + +#: armor.xml:3 +msgid "cloth armor" +msgstr "" + +#: armor.xml:35 +msgid "leather armor" +msgstr "" + +#: armor.xml:67 +msgid "rivet armor" +msgstr "" + +#: armor.xml:99 +msgid "bandit armor" +msgstr "" + +#: armor.xml:131 +msgid "novice armor" +msgstr "" + +#: armor.xml:163 +msgid "mercenary armor" +msgstr "" + +#: armor.xml:195 +msgid "ranger shirt" +msgstr "" + +#: armor.xml:227 +msgid "assassin armor" +msgstr "" + +#: armor.xml:260 +msgid "temple armor" +msgstr "" + +#: armor.xml:292 +msgid "council armor" +msgstr "" + +#: axes1h.xml:4 +msgid "hatchet" +msgstr "" + +#: axes1h.xml:41 +msgid "bronze axe" +msgstr "" + +#: axes1h.xml:78 +msgid "iron hatchet" +msgstr "" + +#: axes1h.xml:115 +msgid "cleaver" +msgstr "" + +#: axes1h.xml:152 +msgid "iron axe" +msgstr "" + +#: axes1h.xml:189 +msgid "mercenary axe" +msgstr "" + +#: axes1h.xml:226 +msgid "steel axe" +msgstr "" + +#: axes1h.xml:263 +msgid "battle axe" +msgstr "" + +#: axes1h.xml:300 +msgid "guard axe" +msgstr "" + +#: axes1h.xml:337 +msgid "minotaur axe" +msgstr "" + +#: axes1h.xml:374 +msgid "thunder axe" +msgstr "" + +#: axes1h.xml:413 +msgid "demon axe" +msgstr "" + +#: axes1h.xml:450 +msgid "obsidian axe" +msgstr "" + +#: axes1h.xml:487 +msgid "vulcano axe" +msgstr "" + +#: axes1h.xml:526 +msgid "berserker axe" +msgstr "" + +#: axes1h.xml:563 +msgid "diamont axe" +msgstr "" + +#: axes1h.xml:600 +msgid "dwarfen axe" +msgstr "" + +#: axes1h.xml:637 +msgid "hell axe" +msgstr "" + +#: axes2h.xml:4 +msgid "lumberjack axe" +msgstr "" + +#: axes2h.xml:42 +msgid "great axe" +msgstr "" + +#: axes2h.xml:80 +msgid "ripping axe" +msgstr "" + +#: axes2h.xml:118 +msgid "executioner axe" +msgstr "" + +#: axes2h.xml:156 +msgid "smashing axe" +msgstr "" + +#: axes2h.xml:194 +msgid "ogre hatchet" +msgstr "" + +#: axes2h.xml:232 +msgid "scythe axe" +msgstr "" + +#: axes2h.xml:270 +msgid "barbarian axe" +msgstr "" + +#: axes2h.xml:308 +msgid "bonebreaker axe" +msgstr "" + +#: axes2h.xml:346 +msgid "giant axe" +msgstr "" + +#: axes2h.xml:384 +msgid "slaughter axe" +msgstr "" + +#: axes2h.xml:422 +msgid "ogretearer" +msgstr "" + +#: axes2h.xml:460 +msgid "dwarfensteel axe" +msgstr "" + +#: axes2h.xml:498 +msgid "star axe" +msgstr "" + +#: axes2h.xml:536 +msgid "kings axe" +msgstr "" + +#: axes2h.xml:574 +msgid "torture axe" +msgstr "" + +#: axes2h.xml:612 +msgid "iceland axe" +msgstr "" + +#: axes2h.xml:652 +msgid "death axe" +msgstr "" + +#: base_abilities.xml:2 +msgid "dead" +msgstr "" + +#: base_abilities.xml:10 +msgid "die" +msgstr "" + +#: base_abilities.xml:19 +msgid "first action that is performed by a summoned monster" +msgstr "" + +#: base_abilities.xml:19 +msgid "summoned" +msgstr "" + +#: base_abilities.xml:28 +msgid "no action" +msgstr "" + +#: base_abilities.xml:37 +msgid "speak" +msgstr "" + +#: base_abilities.xml:37 +msgid "speak with someone" +msgstr "" + +#: base_abilities.xml:51 +msgid "take item" +msgstr "" + +#: base_abilities.xml:51 +msgid "take up item" +msgstr "" + +#: base_abilities.xml:65 +msgid "use" +msgstr "" + +#: base_abilities.xml:79 +msgid "walk" +msgstr "" + +#: base_abilities.xml:89 +msgid "guard" +msgstr "" + +#: base_abilities.xml:100 dwarfcastle.xml:178 dwarfcastle.xml:181 +msgid "Attack" +msgstr "" + +#: base_abilities.xml:100 +msgid "Basic melee attack" +msgstr "" + +#: base_abilities.xml:119 +msgid "Basic holy melee attack" +msgstr "" + +#: base_abilities.xml:119 +msgid "Holy attack" +msgstr "" + +#: base_abilities.xml:137 monster_air_ablt.xml:49 monster_fire_ablt.xml:49 +#: monster_ice_ablt.xml:49 monster_shadow_ablt.xml:2 +msgid "Basic magic attack" +msgstr "" + +#: base_abilities.xml:137 monster_air_ablt.xml:49 monster_fire_ablt.xml:49 +#: monster_ice_ablt.xml:49 monster_shadow_ablt.xml:2 +msgid "Magic attack" +msgstr "" + +#: base_abilities.xml:156 monster_ablt.xml:445 monster_ablt.xml:490 +#: monster_ablt.xml:670 monster_air_ablt.xml:25 monster_fire_ablt.xml:25 +#: monster_ice_ablt.xml:68 +msgid "Basic ranged attack" +msgstr "" + +#: base_abilities.xml:156 +msgid "Ranged attack" +msgstr "" + +#: copperRock.xml:3 +msgid "copperRock" +msgstr "" + +#: copperrock.xml:2 +msgid "Thomas" +msgstr "" + +#: councilNPCStats.xml:4 +msgid "Tolec" +msgstr "" + +#: councilNPCStats.xml:47 +msgid "Derred" +msgstr "" + +#: councilNPCStats.xml:90 councilNPCStats.xml:290 npc.xml:16 +msgid "Soren Windclaw" +msgstr "" + +#: councilNPCStats.xml:133 councilNPCStats.xml:172 councilNPCStats.xml:211 +msgid "Worker" +msgstr "" + +#: councilNPCStats.xml:250 tutorial.xml +msgid "Overseer" +msgstr "" + +#: councilNPCStats.xml:330 councilNPCStats.xml:459 councilNPCStats.xml:593 +msgid "Council Guard" +msgstr "" + +#: councilNPCStats.xml:373 councilNPCStats.xml:545 +msgid "Council Mage" +msgstr "" + +#: councilNPCStats.xml:416 +msgid "Ireana von Nordenburg" +msgstr "" + +#: councilNPCStats.xml:502 +msgid "Council Guard Captain" +msgstr "" + +#: councilNPCStats.xml:638 +msgid "Fireguardian" +msgstr "" + +#: council_monsters.xml:6 council_monsters.xml:50 +msgid "Fire Slug" +msgstr "" + +#: council_monsters.xml:97 council_monsters.xml:141 +msgid "Mutant Slug" +msgstr "" + +#: council_monsters.xml:189 +msgid "Fire Louse" +msgstr "" + +#: council_monsters.xml:236 +msgid "Firefletchling" +msgstr "" + +#: council_monsters.xml:281 council_monsters.xml:331 +msgid "Inferno Behemoth" +msgstr "" + +#: dwarfcastle.xml:2 +msgid "Eric" +msgstr "" + +#: dwarfcastle.xml:6 +msgid "Haffgar" +msgstr "" + +#: dwarfcastle.xml:38 dwarfcastle.xml:58 dwarfcastle.xml:142 medairnpc.xml:41 +#: medairnpc.xml:64 medairnpc.xml:73 +msgid "Trade" +msgstr "" + +#: dwarfcastle.xml:41 +msgid "Amelia" +msgstr "" + +#: dwarfcastle.xml:61 +msgid "Drago" +msgstr "" + +#: dwarfcastle.xml:70 joringsbridge_npc.xml:7 +msgid "Potions" +msgstr "" + +#: dwarfcastle.xml:80 +msgid "Flynn" +msgstr "" + +#: dwarfcastle.xml:144 +msgid "What is all this?" +msgstr "" + +#: dwarfcastle.xml:146 +msgid "Quite a lot of boxes..." +msgstr "" + +#: dwarfcastle.xml:147 +msgid "My predecessor left me with that chaos." +msgstr "" + +#: dwarfcastle.xml:148 +msgid "These are all old army supplies." +msgstr "" + +#: dwarfcastle.xml:149 +msgid "If you like something just point it out and I'll tell you a price." +msgstr "" + +#: dwarfcastle.xml:154 +msgid "Enchanter Fazhir" +msgstr "" + +#: dwarfcastle.xml:155 npc.xml:80 +msgid "Enchant Items" +msgstr "" + +#: dwarfcastle.xml:168 dwarfcastle.xml:189 joringsbridge_npc.xml:238 +#: npc.xml:93 npc.xml:108 +msgid "Armor" +msgstr "" + +#: dwarfcastle.xml:171 npc.xml:96 +msgid "Armor class" +msgstr "" + +#: dwarfcastle.xml:171 npc.xml:96 +msgid "Health Bonus" +msgstr "" + +#: dwarfcastle.xml:171 +msgid "Magic power" +msgstr "" + +#: dwarfcastle.xml:171 +msgid "Willpower" +msgstr "" + +#: dwarfcastle.xml:174 joringsbridge_npc.xml:244 npc.xml:99 +msgid "Weapon" +msgstr "" + +#: dwarfcastle.xml:178 joringsbridge_npc.xml:247 npc.xml:102 +msgid "Air damage" +msgstr "" + +#: dwarfcastle.xml:178 dwarfcastle.xml:181 +msgid "Attack speed" +msgstr "" + +#: dwarfcastle.xml:178 dwarfcastle.xml:181 joringsbridge_npc.xml:247 +#: npc.xml:102 +msgid "Fire damage" +msgstr "" + +#: dwarfcastle.xml:178 npc.xml:102 +msgid "Ice damage" +msgstr "" + +#: dwarfcastle.xml:178 dwarfcastle.xml:181 +msgid "Power" +msgstr "" + +#: dwarfcastle.xml:185 npc.xml:105 +msgid "Gloves" +msgstr "" + +#: dwarfcastle.xml:189 npc.xml:108 warrior_ablt.xml:85 +msgid "Block" +msgstr "" + +#: dwarfcastle.xml:189 dwarfcastle.xml:192 npc.xml:108 +msgid "Dexterity" +msgstr "" + +#: dwarfcastle.xml:189 dwarfcastle.xml:192 +msgid "Strength" +msgstr "" + +#: dwarfcastle.xml:197 joringsbridge_npc.xml:250 npc.xml:111 +msgid "Which part of your equipment should be enchanted?" +msgstr "" + +#: dwarfcastle.xml:215 npc.xml:129 +msgid "Hey you have no item equiped there" +msgstr "" + +#: dwarfcastle.xml:218 joringsbridge_npc.xml:271 npc.xml:132 +msgid "Which Enchantment do you want?" +msgstr "" + +#: dwarfcastle.xml:239 npc.xml:153 +msgid "You dont have enough gold to pay the price of $1" +msgstr "" + +#: dwarfcastle.xml:241 joringsbridge_npc.xml:297 npc.xml:155 +msgid "The price is $1" +msgstr "" + +#: dwarfcastle.xml:260 npc.xml:174 +msgid "It seems that this item already has such an enchantment." +msgstr "" + +#: dwarfenwall.lua:308 npc.xml:47 undeadStats.xml:2252 +msgid "Nar'Asoroth" +msgstr "" + +#: dwarfenwall.lua:313 +msgid "Skinny Necromancer" +msgstr "" + +#: dwarfenwall.lua:316 +msgid "Scarfaced Necromancer" +msgstr "" + +#: dwarfenwall.xml:5 +msgid "dwarfenwall" +msgstr "" + +#: dwarfenwallCommand.xml:2 +msgid "dwarfenwallCommand" +msgstr "" + +#: dwarfenwallRampart.xml:5 +msgid "dwarfenwallRampart" +msgstr "" + +#: elCnlLobby.xml:3 +msgid "elCnlLobby" +msgstr "" + +#: elCnlLowerCaves.xml:3 tutorial.xml +msgid "elCnlLowerCaves" +msgstr "" + +#: fortify_dwarfenwall.xml +msgid "" +"Reverse this at once or every guard of Aisen will be on your trail, Cursed " +"One! ##female" +msgstr "" + +#: fortify_dwarfenwall.xml +msgid "" +"Reverse this at once or every guard of Aisen will be on your trail, Cursed " +"One! ##male" +msgstr "" + +#: fortify_dwarfenwall.xml +msgid "You are better prepared to suffer the consequences, wretched creature." +msgstr "" + +#: glove.xml:4 +msgid "leather gloves" +msgstr "" + +#: glove.xml:36 +msgid "snakehide gloves" +msgstr "" + +#: glove.xml:68 +msgid "chain gloves" +msgstr "" + +#: glove.xml:100 +msgid "buckskin gloves" +msgstr "" + +#: glove.xml:132 +msgid "spidersilk gloves" +msgstr "" + +#: glove.xml:164 +msgid "marksman gloves" +msgstr "" + +#: glove.xml:196 +msgid "assassin gloves" +msgstr "" + +#: glove.xml:228 +msgid "shark gloves" +msgstr "" + +#: goblinEqu.xml:5 +msgid "goblin armor" +msgstr "" + +#: goblinEqu.xml:37 +msgid "goblin bracer" +msgstr "" + +#: goblinEqu.xml:68 +msgid "shaman mask" +msgstr "" + +#: goblinEqu.xml:101 +msgid "goblin club" +msgstr "" + +#: goblinEqu.xml:138 +msgid "rusty dagger" +msgstr "" + +#: goblinEqu.xml:174 +msgid "shaman staff" +msgstr "" + +#: goblinEqu.xml:207 +msgid "nail club" +msgstr "" + +#: goblinEqu.xml:244 +msgid "goblin bow" +msgstr "" + +#: goblinEqu.xml:280 +msgid "goblin spear" +msgstr "" + +#: goblinStats.xml:6 +msgid "goblin brawler" +msgstr "" + +#: goblinStats.xml:52 +msgid "goblin hunter" +msgstr "" + +#: goblinStats.xml:98 +msgid "goblin robber" +msgstr "" + +#: goblinStats.xml:143 +msgid "Drakrazz" +msgstr "" + +#: goblinStats.xml:192 +msgid "Roruz" +msgstr "" + +#: goblinStats.xml:239 +msgid "Nubreck" +msgstr "" + +#: goblinStats.xml:290 +msgid "goblin dog" +msgstr "" + +#: goblinStats.xml:334 +msgid "boneshaker" +msgstr "" + +#: goblinStats.xml:380 +msgid "Gobrusch" +msgstr "" + +#: goblinStats.xml:428 +msgid "Dobrusch" +msgstr "" + +#: goblinStats.xml:476 +msgid "Lurdrak with the Hammer" +msgstr "" + +#: goblinStats.xml:525 +msgid "goblin fighter" +msgstr "" + +#: goblinStats.xml:571 +msgid "goblin poacher" +msgstr "" + +#: goblinStats.xml:617 +msgid "goblin rider" +msgstr "" + +#: goblinStats.xml:662 +msgid "snowcaller" +msgstr "" + +#: goblinStats.xml:707 +msgid "reg'resh" +msgstr "" + +#: goblinStats.xml:755 +msgid "goblin temple guard" +msgstr "" + +#: goblinStats.xml:801 +msgid "goblin apprentice" +msgstr "" + +#: goblinStats.xml:850 +msgid "Marblak" +msgstr "" + +#: goblinStats.xml:897 +msgid "goblin youngling" +msgstr "" + +#: goblinStats.xml:943 +msgid "Gab'Resh" +msgstr "" + +#: goblinStats.xml:993 goblinStats.xml:1038 +msgid "Gab Clan Goblin" +msgstr "" + +#: goblinStats.xml:1245 +msgid "goblin warrior" +msgstr "" + +#: goblinStats.xml:1288 +msgid "goblin rocklobber" +msgstr "" + +#: goblinStats.xml:1333 +msgid "goblin shaman" +msgstr "" + +#: goblinStats.xml:1381 +msgid "goblin slayer" +msgstr "" + +#: goblinStats.xml:1426 +msgid "goblin assassin" +msgstr "" + +#: greyCurseCave.xml:4 +msgid "greyCurseCave" +msgstr "" + +#: greyCurseCaveDep.xml:5 +msgid "greyCurseCaveDep" +msgstr "" + +#: greyCurseCaveEast.xml:4 +msgid "greyCurseCaveEast" +msgstr "" + +#: greyCurseCaveFis.xml:3 +msgid "greyCurseCaveFis" +msgstr "" + +#: greyCurseGrotDep.xml:4 +msgid "greyCurseGrotDep" +msgstr "" + +#: greyCurseGrotto.xml:4 +msgid "greyCurseGrotto" +msgstr "" + +#: greyCurseLake.xml:4 +msgid "greyCurseLake" +msgstr "" + +#: greyCursedCavern.xml:2 +msgid "greyCursedCavern" +msgstr "" + +#: greyOldMine.xml:3 +msgid "greyOldMine" +msgstr "" + +#: greyOldMineDeep.xml:3 +msgid "greyOldMineDeep" +msgstr "" + +#: greyOldMineL2.xml:3 +msgid "greyOldMineL2" +msgstr "" + +#: greySnowNose.xml:3 +msgid "greySnowNose" +msgstr "" + +#: greyWolfcave.xml:4 +msgid "greyWolfcave" +msgstr "" + +#: hammer1h.xml:5 +msgid "hammer" +msgstr "" + +#: hammer1h.xml:42 +msgid "cermeonial hammer" +msgstr "" + +#: hammer1h.xml:79 +msgid "iron hammer" +msgstr "" + +#: hammer1h.xml:116 +msgid "iron club" +msgstr "" + +#: hammer1h.xml:153 +msgid "maul" +msgstr "" + +#: hammer1h.xml:190 +msgid "morning star" +msgstr "" + +#: hammer1h.xml:227 +msgid "crowhead" +msgstr "" + +#: hammer1h.xml:264 +msgid "rider hammer" +msgstr "" + +#: hammer1h.xml:301 +msgid "mace" +msgstr "" + +#: hammer1h.xml:338 +msgid "steel hammer" +msgstr "" + +#: hammer1h.xml:375 +msgid "battle hammer" +msgstr "" + +#: hammer1h.xml:412 +msgid "smashhead" +msgstr "" + +#: hammer1h.xml:449 +msgid "steel mace" +msgstr "" + +#: hammer1h.xml:486 +msgid "steel maul" +msgstr "" + +#: hammer1h.xml:523 +msgid "sixedged mace" +msgstr "" + +#: hammer1h.xml:560 +msgid "silver hammer" +msgstr "" + +#: hammer1h.xml:597 +msgid "diamont hammer" +msgstr "" + +#: hammer1h.xml:634 +msgid "priest mace" +msgstr "" + +#: hammer1h.xml:671 +msgid "holy hammer" +msgstr "" + +#: hammer2h.xml:4 +msgid "sledgehammer" +msgstr "" + +#: hammer2h.xml:42 +msgid "bronze hammer" +msgstr "" + +#: hammer2h.xml:80 +msgid "longshaft" +msgstr "" + +#: hammer2h.xml:119 +msgid "guard hammer" +msgstr "" + +#: hammer2h.xml:158 +msgid "silverterror" +msgstr "" + +#: hammer2h.xml:197 +msgid "glow hammer" +msgstr "" + +#: hammer2h.xml:238 +msgid "bonebreaker" +msgstr "" + +#: hammer2h.xml:276 +msgid "crashhead" +msgstr "" + +#: hammer2h.xml:314 +msgid "aisener warhammer" +msgstr "" + +#: hammer2h.xml:353 +msgid "judgement hammer" +msgstr "" + +#: hammer2h.xml:392 +msgid "priest hammer" +msgstr "" + +#: hammer2h.xml:431 +msgid "obsidian hammer" +msgstr "" + +#: hammer2h.xml:470 +msgid "judge hammer" +msgstr "" + +#: hammer2h.xml:509 +msgid "cyclops hammer" +msgstr "" + +#: hammer2h.xml:547 +msgid "dwarfensteel hammer" +msgstr "" + +#: hammer2h.xml:586 +msgid "elementhunter" +msgstr "" + +#: hammer2h.xml:625 +msgid "exorcists hammer" +msgstr "" + +#: hammer2h.xml:664 +msgid "worldshaker" +msgstr "" + +#: hat.xml:5 +msgid "vagabond hat" +msgstr "" + +#: hat.xml:37 +msgid "apprentice cap" +msgstr "" + +#: hat.xml:70 +msgid "novice hat" +msgstr "" + +#: hat.xml:103 +msgid "alchemist cap" +msgstr "" + +#: hat.xml:137 +msgid "beret" +msgstr "" + +#: hat.xml:170 +msgid "magus hat" +msgstr "" + +#: hat.xml:204 +msgid "turban" +msgstr "" + +#: helmet.xml:4 +msgid "cap" +msgstr "" + +#: helmet.xml:35 +msgid "leather cap" +msgstr "" + +#: helmet.xml:66 +msgid "leather helmet" +msgstr "" + +#: helmet.xml:97 +msgid "mercenary head" +msgstr "" + +#: helmet.xml:128 +msgid "novice headgear" +msgstr "" + +#: helmet.xml:159 +msgid "mercenary helmet" +msgstr "" + +#: helmet.xml:190 +msgid "ranger bandana" +msgstr "" + +#: helmet.xml:221 +msgid "assassin hood" +msgstr "" + +#: helmet.xml:252 +msgid "biretta" +msgstr "" + +#: helmet.xml:283 +msgid "chain turban" +msgstr "" + +#: humans.xml:3 +msgid "Bandit" +msgstr "" + +#: humans.xml:47 +msgid "Thug" +msgstr "" + +#: humans.xml:91 +msgid "Rogue" +msgstr "" + +#: humans.xml:135 +msgid "Brigand" +msgstr "" + +#: humans.xml:178 +msgid "Poacher" +msgstr "" + +#: humans.xml:222 +msgid "Alwin" +msgstr "" + +#: humans.xml:268 +msgid "Thief" +msgstr "" + +#: humans.xml:313 +msgid "Raider" +msgstr "" + +#: humans.xml:356 +msgid "Highwayman" +msgstr "" + +#: humans.xml:400 +msgid "Buck" +msgstr "" + +#: humans.xml:446 +msgid "Deserter" +msgstr "" + +#: humans.xml:490 +msgid "Saboteur" +msgstr "" + +#: humans.xml:534 +msgid "Todd" +msgstr "" + +#: humans.xml:582 +msgid "Rob the Robber" +msgstr "" + +#: humans.xml:707 +msgid "Ronny the Rat" +msgstr "" + +#: joringsbridge.xml +msgid "Who is that?" +msgstr "" + +#: joringsbridge.xml:8 +msgid "joringsbridge" +msgstr "" + +#: joringsbridge_npc.xml:2 +msgid "Gertlinde Kampfer" +msgstr "" + +#: joringsbridge_npc.xml:18 +msgid "Reba" +msgstr "" + +#: joringsbridge_npc.xml:21 +msgid "Sybill" +msgstr "" + +#: joringsbridge_npc.xml:56 +msgid "Weapons" +msgstr "" + +#: joringsbridge_npc.xml:59 +msgid "Halgor" +msgstr "" + +#: joringsbridge_npc.xml:84 +msgid "Armors" +msgstr "" + +#: joringsbridge_npc.xml:87 +msgid "Marco" +msgstr "" + +#: joringsbridge_npc.xml:145 +msgid "Objects found" +msgstr "" + +#: joringsbridge_npc.xml:147 +msgid "What are these Items?" +msgstr "" + +#: joringsbridge_npc.xml:152 +msgid "Ah, you noticed my lost and found?" +msgstr "" + +#: joringsbridge_npc.xml:153 +msgid "Everything I find in and around Joringsbridge is stored here." +msgstr "" + +#: joringsbridge_npc.xml:154 +msgid "" +"If something is your's just say the word. For a small finder's fee you can " +"have it back." +msgstr "" + +#: joringsbridge_npc.xml:160 +msgid "Sergeant Lutterer" +msgstr "" + +#: joringsbridge_npc.xml:161 joringsbridge_npc.xml:186 +msgid "Joringsbridge" +msgstr "" + +#: joringsbridge_npc.xml:164 +msgid "" +"Having the responsibility for Joringsbridge is never easy, not even when I " +"had enough soldiers." +msgstr "" + +#: joringsbridge_npc.xml:165 +msgid "" +"Lately, someone in the guard has been appropriating confiscated magical " +"items." +msgstr "" + +#: joringsbridge_npc.xml:166 +msgid "" +"And I'm not even one step closer to find out who, than when I first noticed!" +msgstr "" + +#: joringsbridge_npc.xml:167 +msgid "" +"((A guard is diverting items? Surely not for hard times. I should take a " +"look around.))" +msgstr "" + +#: joringsbridge_npc.xml:171 +msgid "The surroundings of Joringsbridge" +msgstr "" + +#: joringsbridge_npc.xml:174 +msgid "You better be careful when leaving the village." +msgstr "" + +#: joringsbridge_npc.xml:175 +msgid "" +"Now, with almost all troops standing at the borders, we have to deal with an " +"unmanageable flood of goblins." +msgstr "" + +#: joringsbridge_npc.xml:176 +msgid "" +"And everyone not drafted for the army seems to have discovered the happy " +"bandit life for themselves." +msgstr "" + +#: joringsbridge_npc.xml:177 +msgid "Thanks for the warning, sergeant." +msgstr "" + +#: joringsbridge_npc.xml:182 +msgid "Michel Bron" +msgstr "" + +#: joringsbridge_npc.xml:185 +msgid "Magus Convocatis Relau Fireweaver" +msgstr "" + +#: joringsbridge_npc.xml:189 +msgid "You are the backup sent by Lord Master Windclaw, arn't you?" +msgstr "" + +#: joringsbridge_npc.xml:190 +msgid "" +"I suggest you quickly journey on. There have been people dying by boredom in " +"this village. " +msgstr "" + +#: joringsbridge_npc.xml:191 +msgid "Who knows if your physique will help you against that, too?" +msgstr "" + +#: joringsbridge_npc.xml:207 +msgid "Welcome to the humble... village, they call it... of Joringsbridge." +msgstr "" + +#: joringsbridge_npc.xml:208 +msgid "" +"I have been stationed here due to the unfathomable wisdom of the Council." +msgstr "" + +#: joringsbridge_npc.xml:209 +msgid "If you want, I can add a certain something to your weapons." +msgstr "" + +#: joringsbridge_npc.xml:210 +msgid "" +"I am also quite adept at imbuing clothes with extra protection against the " +"elements." +msgstr "" + +#: joringsbridge_npc.xml:211 +msgid "Nothing more to do anyway." +msgstr "" + +#: joringsbridge_npc.xml:215 +msgid "Why can't you use ice?" +msgstr "" + +#: joringsbridge_npc.xml:218 +msgid "Of course I know how to conjure ice..." +msgstr "" + +#: joringsbridge_npc.xml:219 +msgid "" +"but, as you are no doubt unaware, casting and enchanting are two utterly " +"different activities." +msgstr "" + +#: joringsbridge_npc.xml:220 +msgid "Be grateful I am able to enchant two elements." +msgstr "" + +#: joringsbridge_npc.xml:221 +msgid "That's a rare talent, just so you know. " +msgstr "" + +#: joringsbridge_npc.xml:225 +msgid "Enchant Equipment" +msgstr "" + +#: joringsbridge_npc.xml:241 npc.xml:96 +msgid "Air resistance" +msgstr "" + +#: joringsbridge_npc.xml:241 npc.xml:96 +msgid "Fire resistance" +msgstr "" + +#: joringsbridge_npc.xml:247 +msgid "Increase Firemagic" +msgstr "" + +#: joringsbridge_npc.xml:268 +msgid "It may be helpful if you would equip something first." +msgstr "" + +#: joringsbridge_npc.xml:295 +msgid "I may work for the Council, but I don't run a charity. The price is $1." +msgstr "" + +#: joringsbridge_npc.xml:316 +msgid "As I always say: No enchantment should be applied a second time." +msgstr "" + +#: longbow.xml:5 +msgid "tourney bow" +msgstr "" + +#: longbow.xml:42 +msgid "orc bow" +msgstr "" + +#: longbow.xml:79 +msgid "yew bow" +msgstr "" + +#: longbow.xml:116 +msgid "longbow" +msgstr "" + +#: longbow.xml:153 +msgid "soldier bow" +msgstr "" + +#: longbow.xml:190 +msgid "horn bow" +msgstr "" + +#: longbow.xml:227 +msgid "maple bow" +msgstr "" + +#: longbow.xml:264 +msgid "battle bow" +msgstr "" + +#: longbow.xml:301 +msgid "composite longbow" +msgstr "" + +#: longbow.xml:338 +msgid "stormsinger" +msgstr "" + +#: longbow.xml:377 +msgid "oak bow" +msgstr "" + +#: longbow.xml:414 +msgid "demonhorn bow" +msgstr "" + +#: longbow.xml:451 +msgid "ranger bow" +msgstr "" + +#: longbow.xml:489 +msgid "ash longbow" +msgstr "" + +#: longbow.xml:527 shortbow.xml:513 +msgid "soul bow" +msgstr "" + +#: longbow.xml:564 +msgid "demon compositebow" +msgstr "" + +#: longbow.xml:601 +msgid "hero bow" +msgstr "" + +#: longbow.xml:638 +msgid "elf bow" +msgstr "" + +#: mage_ablt.xml:2 monster_ablt.xml:361 +msgid "Blizzard" +msgstr "" + +#: mage_ablt.xml:2 monster_ablt.xml:361 +msgid "" +"The mage summons a leathal cold blizzard that freezes every enemy caught in " +"it to death." +msgstr "" + +#: mage_ablt.xml:28 monster_ablt.xml:293 npc_abilities.xml:102 +msgid "Chainlightning" +msgstr "" + +#: mage_ablt.xml:28 +msgid "" +"The mage unleashes a ball of lightning, that may jump from one enemy to " +"another. It hits a maximum of five enemies and the damage is reduced " +"everytime it jumps." +msgstr "" + +#: mage_ablt.xml:54 +msgid "Ball lightning" +msgstr "" + +#: mage_ablt.xml:54 +msgid "" +"The mage unleashes a mighty ball lightning, that can jump over to nearby " +"enemies. A maximum of nine enemies is hit and the damage is reduced with " +"every jump." +msgstr "" + +#: mage_ablt.xml:80 +msgid "Chilling cold" +msgstr "" + +#: mage_ablt.xml:80 +msgid "" +"The mage has understood everything about ice and snow, allowing him to " +"increase the effectiveness of his icespells by 20%." +msgstr "" + +#: mage_ablt.xml:90 monster_ablt.xml:19 monster_ablt.xml:146 +#: npc_abilities.xml:51 +msgid "Fireball" +msgstr "" + +#: mage_ablt.xml:90 monster_ablt.xml:146 npc_abilities.xml:51 +msgid "" +"The mage casts a bolt of fire, that explodes upon hitting an enemy. Other " +"enemies nearby the victim are also caught in the explosion." +msgstr "" + +#: mage_ablt.xml:116 +msgid "Firebolt" +msgstr "" + +#: mage_ablt.xml:116 +msgid "The mage unleashes a small bolt of fire, that damages a single enemy." +msgstr "" + +#: mage_ablt.xml:142 monster_ablt.xml:93 monster_ablt.xml:119 +#: npc_abilities.xml:238 +msgid "Firestorm" +msgstr "" + +#: mage_ablt.xml:142 +msgid "" +"The mage conjures a deadly wave of fire, that burns every enemy in a circle " +"around him." +msgstr "" + +#: mage_ablt.xml:168 npc_abilities.xml:26 +msgid "Fireblow" +msgstr "" + +#: mage_ablt.xml:168 npc_abilities.xml:26 +msgid "The mage casts a strong bolt of fire, that damages one enemy." +msgstr "" + +#: mage_ablt.xml:194 monster_ablt.xml:172 npc_abilities.xml:76 +msgid "Firecolumn" +msgstr "" + +#: mage_ablt.xml:194 npc_abilities.xml:76 +msgid "" +"The mage conjurs a column made of hellfire, that will stay for 5 seconds and " +"turn every enemy stupid enough to stay in there to ashes." +msgstr "" + +#: mage_ablt.xml:220 +msgid "Flame wave" +msgstr "" + +#: mage_ablt.xml:220 +msgid "" +"The mage conjures a wave of flames, that damages enemies in a circle around " +"him." +msgstr "" + +#: mage_ablt.xml:246 monster_ice_ablt.xml:138 +msgid "Freeze" +msgstr "" + +#: mage_ablt.xml:246 monster_ice_ablt.xml:138 +msgid "" +"The mage catches an enemy in a block of pure ice, instantly sealing his " +"movements." +msgstr "" + +#: mage_ablt.xml:271 +msgid "Frost ring" +msgstr "" + +#: mage_ablt.xml:271 +msgid "The mage calls upon a deadlier version of the icering." +msgstr "" + +#: mage_ablt.xml:298 monster_ablt.xml:247 monster_ablt.xml:270 +msgid "Icicle" +msgstr "" + +#: mage_ablt.xml:298 monster_ablt.xml:247 monster_ablt.xml:270 +msgid "The mage casts a shard of pure ice, that damages his foes." +msgstr "" + +#: mage_ablt.xml:324 +msgid "Ice ring" +msgstr "" + +#: mage_ablt.xml:324 +msgid "" +"The mage casts a ring of ice around himself that will damage enemies in " +"range." +msgstr "" + +#: mage_ablt.xml:350 +msgid "Spear of ice" +msgstr "" + +#: mage_ablt.xml:350 +msgid "The mage attacks one enemy with a powerful spear of magical ice." +msgstr "" + +#: mage_ablt.xml:376 +msgid "Infernoball" +msgstr "" + +#: mage_ablt.xml:376 +msgid "The mage casts an even more powerful fireball." +msgstr "" + +#: mage_ablt.xml:402 +msgid "Ignite" +msgstr "" + +#: mage_ablt.xml:402 +msgid "" +"The mage embraces the heat of fire, so that victims of his firespells will " +"likely suffer burn." +msgstr "" + +#: mage_ablt.xml:412 +msgid "Ionisation" +msgstr "" + +#: mage_ablt.xml:412 +msgid "" +"The mage has become one with the storm and can cast lightning spells 25% " +"faster." +msgstr "" + +#: mage_ablt.xml:421 +msgid "Lightning" +msgstr "" + +#: mage_ablt.xml:421 +msgid "The mage summons a lightning to attack one foe." +msgstr "" + +#: mage_ablt.xml:447 +msgid "Lightning strike" +msgstr "" + +#: mage_ablt.xml:447 +msgid "The mage calls upon a mighty lightning to kill an enemy." +msgstr "" + +#: mage_ablt.xml:472 +msgid "Snow storm" +msgstr "" + +#: mage_ablt.xml:472 +msgid "The mage calls upon a snow storm to kill every enemy in a circle." +msgstr "" + +#: mage_ablt.xml:498 +msgid "Static shield" +msgstr "" + +#: mage_ablt.xml:498 +msgid "" +"The mage surrounds himself with an armor of lightning, that will stun and " +"damage enemies who are bold enough to attack in close combat." +msgstr "" + +#: mage_ablt.xml:520 +msgid "" +"The mage summons a thunderstorm that will assault enemies in its range with " +"lightnings." +msgstr "" + +#: mage_ablt.xml:520 +msgid "Thunderstorm" +msgstr "" + +#: mage_ablt.xml:552 +msgid "Tempest" +msgstr "" + +#: mage_ablt.xml:552 +msgid "" +"The mage summons a ferocious tempest that bombards enemies in its wake with " +"lightnings." +msgstr "" + +#: medBackalley.xml:3 +msgid "medBackalley" +msgstr "" + +#: medMercCamp.xml:3 +msgid "medMercCamp" +msgstr "" + +#: medairnpc.xml:2 +msgid "Robert" +msgstr "" + +#: medairnpc.xml:44 +msgid "Elgor" +msgstr "" + +#: medairnpc.xml:67 +msgid "Cain" +msgstr "" + +#: medairnpc.xml:83 +msgid "Fenor Marken" +msgstr "" + +#: monster_ablt.xml:2 +msgid "Steals gold" +msgstr "" + +#: monster_ablt.xml:2 +msgid "steal" +msgstr "" + +#: monster_ablt.xml:19 +msgid "Alternativer Feuerball." +msgstr "" + +#: monster_ablt.xml:47 +msgid "Booster" +msgstr "" + +#: monster_ablt.xml:47 +msgid "completely overpowered Booster" +msgstr "" + +#: monster_ablt.xml:70 +msgid "Heilt alles" +msgstr "" + +#: monster_ablt.xml:93 monster_ablt.xml:119 +msgid "Firestorm with increased range." +msgstr "" + +#: monster_ablt.xml:198 monster_shadow_ablt.xml:48 priest_ablt.xml:228 +msgid "Magic Shield" +msgstr "" + +#: monster_ablt.xml:223 npc_abilities.xml:126 +msgid "Goblin Lightning" +msgstr "" + +#: monster_ablt.xml:317 +msgid "goblin curse" +msgstr "" + +#: monster_ablt.xml:341 priest_ablt.xml:412 +msgid "Grand Cure" +msgstr "" + +#: monster_ablt.xml:384 warrior_ablt.xml:47 +msgid "Attacks one enemy for serious damage." +msgstr "" + +#: monster_ablt.xml:384 +msgid "monster Bash" +msgstr "" + +#: monster_ablt.xml:404 +msgid "poison_attack" +msgstr "" + +#: monster_ablt.xml:423 +msgid "Attacks every enemy in weapon range with slightly reduced damage." +msgstr "" + +#: monster_ablt.xml:423 warrior_ablt.xml:24 +msgid "Sweeping blow" +msgstr "" + +#: monster_ablt.xml:445 monster_ablt.xml:490 +msgid "Fire arrow" +msgstr "" + +#: monster_ablt.xml:468 +msgid "Poison arrow" +msgstr "" + +#: monster_ablt.xml:468 +msgid "Poisonous ranged attack" +msgstr "" + +#: monster_ablt.xml:513 +msgid "Throw a dagger" +msgstr "" + +#: monster_ablt.xml:513 +msgid "throw dagger" +msgstr "" + +#: monster_ablt.xml:532 monster_ablt.xml:551 +msgid "Throw a berry" +msgstr "" + +#: monster_ablt.xml:532 +msgid "throw berry" +msgstr "" + +#: monster_ablt.xml:551 +msgid "throw rock" +msgstr "" + +#: monster_ablt.xml:571 monster_fire_ablt.xml:68 monster_fire_ablt.xml:93 +msgid "Throw a bomb" +msgstr "" + +#: monster_ablt.xml:571 monster_fire_ablt.xml:68 +msgid "throw bomb" +msgstr "" + +#: monster_ablt.xml:596 +msgid "Flee from enemy" +msgstr "" + +#: monster_ablt.xml:596 +msgid "saboteur_move" +msgstr "" + +#: monster_ablt.xml:625 +msgid "Flame Throw" +msgstr "" + +#: monster_ablt.xml:625 +msgid "The basic attack of a flaming skeleton." +msgstr "" + +#: monster_ablt.xml:648 +msgid "Blind ranged attack" +msgstr "" + +#: monster_ablt.xml:648 +msgid "dark arrow" +msgstr "" + +#: monster_ablt.xml:670 monster_ice_ablt.xml:68 unique_ablt.xml:27 +#: unique_ablt.xml:49 unique_ablt.xml:95 +msgid "Ice arrow" +msgstr "" + +#: monster_ablt.xml:693 +msgid "Decrease block-value" +msgstr "" + +#: monster_ablt.xml:693 +msgid "Stats Down" +msgstr "" + +#: monster_ablt.xml:709 +msgid "stun_attack" +msgstr "" + +#: monster_air_ablt.xml:2 +msgid "air attack" +msgstr "" + +#: monster_air_ablt.xml:2 +msgid "attack with ice damage" +msgstr "" + +#: monster_fire_ablt.xml:2 +msgid "attack with fire damage" +msgstr "" + +#: monster_fire_ablt.xml:2 +msgid "fire attack" +msgstr "" + +#: monster_fire_ablt.xml:93 +msgid "throw grenade" +msgstr "" + +#: monster_ice_ablt.xml:2 unique_ablt.xml:3 +msgid "ice attack" +msgstr "" + +#: monster_ice_ablt.xml:2 +msgid "melee attack with ice damage" +msgstr "" + +#: monster_ice_ablt.xml:25 +msgid "basic ranged attack with ice damage" +msgstr "" + +#: monster_ice_ablt.xml:89 +msgid "Ice Arrow" +msgstr "" + +#: monster_ice_ablt.xml:89 +msgid "an arrow of ice that will hunt it's prey" +msgstr "" + +#: monster_ice_ablt.xml:113 +msgid "Iceball" +msgstr "" + +#: monster_ice_ablt.xml:113 +msgid "" +"The mage casts a bolt of ice that explodes in a ring upon hitting an enemy. " +"Other enemies nearby the victim are also caught in the explosion." +msgstr "" + +#: monster_ice_ablt.xml:163 unique_ablt.xml:117 +msgid "Frost Wave" +msgstr "" + +#: monster_ice_ablt.xml:163 +msgid "" +"The mage conjures a wave of ice, that damages enemies in a circle around him." +msgstr "" + +#: monster_shadow_ablt.xml:20 unique_ablt.xml:204 +msgid "Cloud of Despair" +msgstr "" + +#: monster_shadow_ablt.xml:20 unique_ablt.xml:204 +msgid "The mage calls forth a black cloud that stuns and blinds his foes." +msgstr "" + +#: monsters.xml:237 +msgid "small mandragora" +msgstr "" + +#: monsters.xml:289 +msgid "mandragora" +msgstr "" + +#: necrotia.xml:5 +msgid "necFieldcamp" +msgstr "" + +#: npc.xml:4 +msgid "Brons Tuer" +msgstr "" + +#: npc.xml:7 +msgid "Sergeant Wober" +msgstr "" + +#: npc.xml:13 undeadStats.xml:158 +msgid "Maylons Ghost" +msgstr "" + +#: npc.xml:22 +msgid "Gab Resh" +msgstr "" + +#: npc.xml:28 +msgid "Maga Convocatis Darna Eistaucher" +msgstr "" + +#: npc.xml:35 +msgid "Erzmaga Ireana von Nordenburg" +msgstr "" + +#: npc.xml:38 +msgid "Guardcaptain" +msgstr "" + +#: npc.xml:41 +msgid "Elementaristenwaechter" +msgstr "" + +#: npc.xml:44 +msgid "Overlooker Necromancer" +msgstr "" + +#: npc.xml:50 npcStats.xml:473 +msgid "The Trader" +msgstr "" + +#: npc.xml:55 npc.xml:66 +msgid "Buy empty scrolls" +msgstr "" + +#: npc.xml:56 +msgid "Access stash" +msgstr "" + +#: npc.xml:59 +msgid "The Lost Trader" +msgstr "" + +#: npc.xml:76 +msgid "Wounded Scout" +msgstr "" + +#: npc.xml:79 +msgid "Enchanter" +msgstr "" + +#: npc.xml:96 +msgid "Ice resistance" +msgstr "" + +#: npcStats.xml:320 npcStats.xml:358 +msgid "Peasant" +msgstr "" + +#: npcStats.xml:397 npcStats.xml:435 +msgid "Peasant Woman" +msgstr "" + +#: npc_abilities.xml:2 +msgid "Freezing Death" +msgstr "" + +#: npc_abilities.xml:2 +msgid "" +"The mage conjures a devastating ring of ice, that damages enemies in a " +"circle around him." +msgstr "" + +#: npc_abilities.xml:150 warrior_ablt.xml:241 +msgid "" +"Attacks one enemy with a brutal blow and damages nearby enemies as well." +msgstr "" + +#: npc_abilities.xml:150 warrior_ablt.xml:241 +msgid "Hammer blow" +msgstr "" + +#: npc_abilities.xml:172 warrior_ablt.xml:24 +msgid "Attacks every enemy in weapon range." +msgstr "" + +#: npc_abilities.xml:172 warrior_ablt.xml:446 +msgid "Whirl blow" +msgstr "" + +#: npc_abilities.xml:192 warrior_ablt.xml:356 +msgid "Attacks an enemy with an unblockable, armor piercing blow." +msgstr "" + +#: npc_abilities.xml:192 warrior_ablt.xml:356 +msgid "Smash blow" +msgstr "" + +#: npc_abilities.xml:215 warrior_ablt.xml:172 +msgid "Flame armor" +msgstr "" + +#: npc_abilities.xml:215 warrior_ablt.xml:172 +msgid "" +"The warrior surrounds himself with angry spirits of fire, who will burn his " +"enemies to ashes, if they dare to come to close." +msgstr "" + +#: npc_abilities.xml:238 +msgid "" +"The mage conjures a deadly wave of fire on the verge of death, that burns " +"every enemy in a circle around him to a crisp." +msgstr "" + +#: polearms.xml:3 +msgid "pike" +msgstr "" + +#: potion.xml:3 +msgid "scroll of town portal" +msgstr "" + +#: potion.xml:17 +msgid "small potion" +msgstr "" + +#: potion.xml:37 +msgid "medium potion" +msgstr "" + +#: potion.xml:57 +msgid "eyedrops" +msgstr "" + +#: potion.xml:77 +msgid "antidot" +msgstr "" + +#: potion.xml:97 +msgid "calming salve" +msgstr "" + +#: potion.xml:117 +msgid "potion of determination" +msgstr "" + +#: potion.xml:137 +msgid "echo potion" +msgstr "" + +#: potion.xml:157 +msgid "muscle salve" +msgstr "" + +#: potion.xml:177 +msgid "potion of melting" +msgstr "" + +#: potion.xml:197 +msgid "spike oil" +msgstr "" + +#: priest_ablt.xml:2 +msgid "Acid" +msgstr "" + +#: priest_ablt.xml:2 +msgid "The priest turns normal water into deadly acid, poisoning one enemy." +msgstr "" + +#: priest_ablt.xml:27 +msgid "Bladestorm" +msgstr "" + +#: priest_ablt.xml:27 +msgid "" +"The priest strengthens the weaponarms of his comrades, leading to increased " +"attackspeed for everyone." +msgstr "" + +#: priest_ablt.xml:50 +msgid "Blazing Shield" +msgstr "" + +#: priest_ablt.xml:50 +msgid "" +"The party is surrounded by holy energy. Everyones defense is increased. With " +"increasing willpower the effect improves." +msgstr "" + +#: priest_ablt.xml:74 +msgid "Breaking Blow" +msgstr "" + +#: priest_ablt.xml:74 +msgid "" +"The priest attacks an enemy with energy that causes elementals to be blown " +"back where they come from." +msgstr "" + +#: priest_ablt.xml:103 +msgid "Glaring Sun" +msgstr "" + +#: priest_ablt.xml:103 +msgid "" +"The priest calls forth a mighty explosion of light that can blind every " +"enemy in an area." +msgstr "" + +#: priest_ablt.xml:130 +msgid "Gentle Glow" +msgstr "" + +#: priest_ablt.xml:130 +msgid "" +"The priest bathes a partymember in a mild light, releaving him of blindness " +"and silence." +msgstr "" + +#: priest_ablt.xml:150 +msgid "Omniscent Eye" +msgstr "" + +#: priest_ablt.xml:150 +msgid "" +"The party will be immune to blind and mute for some time. Those ailments " +"will also be healed." +msgstr "" + +#: priest_ablt.xml:178 +msgid "Restore Concentration" +msgstr "" + +#: priest_ablt.xml:178 +msgid "" +"The priest heals one friend from confusion and berserk. Those ailments will " +"also be healed." +msgstr "" + +#: priest_ablt.xml:199 +msgid "Spirit Shield" +msgstr "" + +#: priest_ablt.xml:199 +msgid "" +"The priest grants immunity to berserk and confuse to all his partymembers " +"for a small amount of time. Those ailments will also be healed." +msgstr "" + +#: priest_ablt.xml:228 +msgid "" +"The priest conjures a magic shield for all partymembers thats reduces the " +"damage dealt by elemental attacks." +msgstr "" + +#: priest_ablt.xml:256 +msgid "Ease Pain" +msgstr "" + +#: priest_ablt.xml:256 +msgid "" +"The priest treats a partymemener with healing water that washes away every " +"poison and stops burns." +msgstr "" + +#: priest_ablt.xml:277 +msgid "Remedial Water" +msgstr "" + +#: priest_ablt.xml:277 +msgid "" +"The priests grants every partymember immunity to poison and burn for a small " +"amount of time while healing these effects." +msgstr "" + +#: priest_ablt.xml:306 +msgid "Dismissing Strike" +msgstr "" + +#: priest_ablt.xml:306 +msgid "" +"The priest strikes with all his might. While normal monsters have little to " +"fear from this attack elementals will be easily destroyed by it." +msgstr "" + +#: priest_ablt.xml:335 +msgid "God Strike" +msgstr "" + +#: priest_ablt.xml:335 +msgid "" +"Only strong and durable demons will be able to resist the priests sacred " +"strike." +msgstr "" + +#: priest_ablt.xml:364 +msgid "" +"The priest creates a vortex with his attack, that can suck a demonic " +"creature right back to hell." +msgstr "" + +#: priest_ablt.xml:364 +msgid "Windstrike" +msgstr "" + +#: priest_ablt.xml:392 +msgid "Cure" +msgstr "" + +#: priest_ablt.xml:392 +msgid "The priest restores the hitpoints of one partymember." +msgstr "" + +#: priest_ablt.xml:412 +msgid "The priest restores hitpoints for every partymember." +msgstr "" + +#: priest_ablt.xml:433 +msgid "Sanctified Strike" +msgstr "" + +#: priest_ablt.xml:433 +msgid "" +"The priest attacks with godly power, easily sending undead creatures back to " +"their graves." +msgstr "" + +#: priest_ablt.xml:463 +msgid "Bright Blow" +msgstr "" + +#: priest_ablt.xml:463 +msgid "" +"The priest attacks an enemy with a blow imbued with holy power. Undead will " +"be severely damaged by the sacred energies." +msgstr "" + +#: priest_ablt.xml:493 +msgid "Hypnosis" +msgstr "" + +#: priest_ablt.xml:493 +msgid "The priest confuses a monster, causing it to attack at random." +msgstr "" + +#: priest_ablt.xml:519 +msgid "Hypnotic Vortex" +msgstr "" + +#: priest_ablt.xml:519 +msgid "" +"The priest creates a distracting vortex with the ability to confuse every " +"enemy caught in it." +msgstr "" + +#: priest_ablt.xml:545 +msgid "Keen Mind" +msgstr "" + +#: priest_ablt.xml:545 +msgid "" +"The priest increases everyones spellpower for a short time making spells " +"more effective. The effect becomes stronger with increasing willpower of the " +"priest." +msgstr "" + +#: priest_ablt.xml:568 +msgid "Glistening Glare" +msgstr "" + +#: priest_ablt.xml:568 +msgid "" +"The priest casts a dazzling light, that can cause an enemy to be affected by " +"blind." +msgstr "" + +#: priest_ablt.xml:594 +msgid "Divine Will" +msgstr "" + +#: priest_ablt.xml:594 +msgid "" +"The priests protecting influence raises the willpower of all partymembers " +"temporarily. The effect becomes stronger with increasing willpower of the " +"priest." +msgstr "" + +#: priest_ablt.xml:617 +msgid "Holy Shield" +msgstr "" + +#: priest_ablt.xml:617 +msgid "" +"The priest is surrounded by a shimmering light that repells undead attacks. " +"Damage from undead beings is reduced by one third." +msgstr "" + +#: priest_ablt.xml:627 +msgid "Banishing Aura" +msgstr "" + +#: priest_ablt.xml:627 +msgid "" +"The priests powers allow him to surround himself with an aura that immitates " +"a banishment. While it holds no real power over demons, demonic beings will " +"be frightened, thus leading to their damage being reduced by one third." +msgstr "" + +#: priest_ablt.xml:637 +msgid "Elemental Vortex" +msgstr "" + +#: priest_ablt.xml:637 +msgid "" +"The priest can unconsciously create an elemental vortex that will drain one " +"third of incoming damage from elemental beings." +msgstr "" + +#: rescue_willard.xml +msgid "Willard" +msgstr "" + +#: ring.xml:5 +msgid "bronze ring" +msgstr "" + +#: ring.xml:34 +msgid "amber ring" +msgstr "" + +#: ring.xml:63 +msgid "silver ring" +msgstr "" + +#: ring.xml:92 +msgid "jet ring" +msgstr "" + +#: ring.xml:121 +msgid "gold ring" +msgstr "" + +#: robes.xml:5 +msgid "ragged robe" +msgstr "" + +#: robes.xml:39 +msgid "apprentice robe" +msgstr "" + +#: robes.xml:73 +msgid "novice robe" +msgstr "" + +#: robes.xml:107 +msgid "alchemist robe" +msgstr "" + +#: robes.xml:141 +msgid "scholar robe" +msgstr "" + +#: robes.xml:175 +msgid "magus robe" +msgstr "" + +#: robes.xml:209 +msgid "council robe" +msgstr "" + +#: sarkophagusMaylon.xml:29 +msgid " received an item from Maylons Grave." +msgstr "" + +#: shields.xml:5 +msgid "targe" +msgstr "" + +#: shields.xml:35 +msgid "buckler" +msgstr "" + +#: shields.xml:65 +msgid "wood shield" +msgstr "" + +#: shields.xml:95 +msgid "bronze shield" +msgstr "" + +#: shields.xml:125 +msgid "iron shield" +msgstr "" + +#: shields.xml:155 +msgid "steel shield" +msgstr "" + +#: shortbow.xml:4 +msgid "practice bow" +msgstr "" + +#: shortbow.xml:40 +msgid "yew shortbow" +msgstr "" + +#: shortbow.xml:76 +msgid "shortbow" +msgstr "" + +#: shortbow.xml:112 +msgid "hunting bow" +msgstr "" + +#: shortbow.xml:149 +msgid "rattan bow" +msgstr "" + +#: shortbow.xml:185 +msgid "bandit bow" +msgstr "" + +#: shortbow.xml:221 +msgid "northeye" +msgstr "" + +#: shortbow.xml:259 +msgid "battle shortbow" +msgstr "" + +#: shortbow.xml:295 +msgid "composite shortbow" +msgstr "" + +#: shortbow.xml:331 +msgid "rider bow" +msgstr "" + +#: shortbow.xml:367 +msgid "coal bow" +msgstr "" + +#: shortbow.xml:403 +msgid "ash bow" +msgstr "" + +#: shortbow.xml:440 +msgid "bane bow" +msgstr "" + +#: shortbow.xml:477 +msgid "oak shortbow" +msgstr "" + +#: shortbow.xml:549 +msgid "seeker" +msgstr "" + +#: shortbow.xml:585 +msgid "chaos shortbow" +msgstr "" + +#: shortbow.xml:621 +msgid "fairy bow" +msgstr "" + +#: staff.xml:5 staff.xml:36 staff.xml:67 +msgid "spruce staff" +msgstr "" + +#: staff.xml:100 staff.xml:131 staff.xml:162 +msgid "apprentice staff" +msgstr "" + +#: staff.xml:195 staff.xml:225 staff.xml:256 +msgid "novice staff" +msgstr "" + +#: staff.xml:289 staff.xml:320 staff.xml:351 +msgid "hermit staff" +msgstr "" + +#: staff.xml:383 +msgid "rock staff" +msgstr "" + +#: staff.xml:420 staff.xml:451 staff.xml:482 +msgid "alder staff" +msgstr "" + +#: staff.xml:515 staff.xml:546 staff.xml:577 +msgid "bard's staff" +msgstr "" + +#: staff.xml:610 staff.xml:640 staff.xml:671 +msgid "magus staff" +msgstr "" + +#: staff.xml:704 staff.xml:735 staff.xml:766 +msgid "silver staff" +msgstr "" + +#: staff.xml:798 +msgid "inferno staff" +msgstr "" + +#: staff.xml:830 +msgid "oak staff" +msgstr "" + +#: staff.xml:862 +msgid "phenix staff" +msgstr "" + +#: staff.xml:894 +msgid "frost staff" +msgstr "" + +#: staff.xml:926 +msgid "thunder staff" +msgstr "" + +#: staff.xml:958 +msgid "ash staff" +msgstr "" + +#: staff.xml:990 +msgid "summoner staff" +msgstr "" + +#: staff.xml:1022 +msgid "master staff" +msgstr "" + +#: staff.xml:1054 +msgid "necromancer staff" +msgstr "" + +#: staff.xml:1086 +msgid "demon staff" +msgstr "" + +#: staff.xml:1118 +msgid "fairy staff" +msgstr "" + +#: staff.xml:1154 +msgid "ifreet staff" +msgstr "" + +#: staff.xml:1186 +msgid "icewitch staff" +msgstr "" + +#: staff.xml:1218 +msgid "sylph staff" +msgstr "" + +#: staff.xml:1251 +msgid "archmage staff" +msgstr "" + +#: swords1h.xml:4 +msgid "dagger" +msgstr "" + +#: swords1h.xml:40 +msgid "shortsword" +msgstr "" + +#: swords1h.xml:76 +msgid "bronzesword" +msgstr "" + +#: swords1h.xml:112 +msgid "sabre" +msgstr "" + +#: swords1h.xml:150 +msgid "legion blade" +msgstr "" + +#: swords1h.xml:186 +msgid "long sword" +msgstr "" + +#: swords1h.xml:222 +msgid "sword of the coast" +msgstr "" + +#: swords1h.xml:258 +msgid "council sabre" +msgstr "" + +#: swords1h.xml:294 +msgid "scimitar" +msgstr "" + +#: swords1h.xml:330 +msgid "barbarian sword" +msgstr "" + +#: swords1h.xml:366 +msgid "northlings blade" +msgstr "" + +#: swords1h.xml:404 +msgid "steel sword" +msgstr "" + +#: swords1h.xml:440 +msgid "assassins blade" +msgstr "" + +#: swords1h.xml:476 +msgid "diamont sword" +msgstr "" + +#: swords1h.xml:512 +msgid "dwarfsteel sword" +msgstr "" + +#: swords1h.xml:548 +msgid "demon blade" +msgstr "" + +#: swords1h.xml:586 +msgid "hero blade" +msgstr "" + +#: swords1h.xml:622 +msgid "angel blade" +msgstr "" + +#: swords1h.xml:658 +msgid "gods blade" +msgstr "" + +#: swords2h.xml:4 +msgid "farmer sword" +msgstr "" + +#: swords2h.xml:42 +msgid "mercenary blade" +msgstr "" + +#: swords2h.xml:80 +msgid "two handed steel sword" +msgstr "" + +#: swords2h.xml:118 +msgid "smash sword" +msgstr "" + +#: swords2h.xml:156 +msgid "horse killer" +msgstr "" + +#: swords2h.xml:194 +msgid "bastard sword" +msgstr "" + +#: swords2h.xml:232 +msgid "ogre dagger" +msgstr "" + +#: swords2h.xml:270 +msgid "goblinkiller" +msgstr "" + +#: swords2h.xml:308 +msgid "executioner's sword" +msgstr "" + +#: swords2h.xml:346 +msgid "two handed guardsman sword" +msgstr "" + +#: swords2h.xml:384 +msgid "flamberg" +msgstr "" + +#: swords2h.xml:424 +msgid "aisener battle sword" +msgstr "" + +#: swords2h.xml:462 +msgid "monster sword" +msgstr "" + +#: swords2h.xml:500 +msgid "tear sword" +msgstr "" + +#: swords2h.xml:538 +msgid "deathwind" +msgstr "" + +#: swords2h.xml:578 +msgid "dread sword" +msgstr "" + +#: swords2h.xml:616 +msgid "great sword" +msgstr "" + +#: swords2h.xml:654 +msgid "angel sword" +msgstr "" + +#: testregions.xml:47 +msgid "maptest" +msgstr "" + +#: testregions.xml:67 +msgid "sandbox" +msgstr "" + +#: testregions.xml:199 +msgid "spawnAbyss" +msgstr "" + +#: testregions.xml:217 +msgid "benchmarkBox" +msgstr "" + +#: testregions.xml:435 +msgid "region0" +msgstr "" + +#: testregions.xml:611 +msgid "testregion" +msgstr "" + +#: testregions.xml:624 +msgid "region1" +msgstr "" + +#: theFissure.xml +msgid "Unknown Lich" +msgstr "" + +#: tutorial.xml +msgid "" +"I have to find an energy source and a cog before that thing will work again." +msgstr "" + +#: undeadEqu.xml:3 +msgid "broken shield" +msgstr "" + +#: undeadEqu.xml:33 +msgid "old sword" +msgstr "" + +#: undeadStats.xml:5 +msgid "Guardian Skeleton" +msgstr "" + +#: undeadStats.xml:57 +msgid "Zombie" +msgstr "" + +#: undeadStats.xml:112 +msgid "Maylon" +msgstr "" + +#: undeadStats.xml:205 undeadStats.xml:364 undeadStats.xml:416 +#: undeadStats.xml:982 undeadStats.xml:1030 undeadStats.xml:1082 +#: undeadStats.xml:1133 undeadStats.xml:1184 +msgid "Skeleton" +msgstr "" + +#: undeadStats.xml:258 +msgid "Giant Skeleton" +msgstr "" + +#: undeadStats.xml:312 +msgid "Skeleton Archer" +msgstr "" + +#: undeadStats.xml:469 undeadStats.xml:1553 +msgid "Skeleton Shadow Archer" +msgstr "" + +#: undeadStats.xml:522 +msgid "Frostbone" +msgstr "" + +#: undeadStats.xml:577 undeadStats.xml:837 undeadStats.xml:1291 +#: undeadStats.xml:1342 undeadStats.xml:1394 +msgid "Burning Skeleton" +msgstr "" + +#: undeadStats.xml:685 +msgid "Undead Scythe" +msgstr "" + +#: undeadStats.xml:738 undeadStats.xml:939 +msgid "Necromancer" +msgstr "" + +#: undeadStats.xml:785 +msgid "Worker Skeleton" +msgstr "" + +#: undeadStats.xml:889 +msgid "Lich" +msgstr "" + +#: undeadStats.xml:1236 +msgid "Huge Skeleton" +msgstr "" + +#: undeadStats.xml:1446 +msgid "Frost Skeleton" +msgstr "" + +#: undeadStats.xml:1499 +msgid "Frost Skeleton Archer" +msgstr "" + +#: undeadStats.xml:1605 +msgid "Chilling Death" +msgstr "" + +#: undeadStats.xml:1660 +msgid "Savage Skeleton" +msgstr "" + +#: undeadStats.xml:1715 +msgid "Boney Brothers" +msgstr "" + +#: undeadStats.xml:1771 +msgid "Icemage" +msgstr "" + +#: undeadStats.xml:1817 +msgid "Frostmage" +msgstr "" + +#: undeadStats.xml:1865 +msgid "Neivan the Frostbringer" +msgstr "" + +#: undeadStats.xml:1917 undeadStats.xml:2317 +msgid "Blackmage" +msgstr "" + +#: undeadStats.xml:1963 +msgid "Black Raven" +msgstr "" + +#: undeadStats.xml:2366 +msgid "Ice Obelisk" +msgstr "" + +#: undead_ablt.xml:2 undead_ablt.xml:20 undead_ablt.xml:39 undead_ablt.xml:58 +#: undead_ablt.xml:78 unique_ablt.xml:70 +msgid "Creates a skeleton." +msgstr "" + +#: undead_ablt.xml:2 undead_ablt.xml:20 undead_ablt.xml:39 undead_ablt.xml:58 +#: undead_ablt.xml:78 unique_ablt.xml:70 +msgid "Summon Skeleton" +msgstr "" + +#: unique_ablt.xml:3 +msgid "melee attack with ice damage of Nar'Asoroth" +msgstr "" + +#: unique_ablt.xml:27 unique_ablt.xml:49 +msgid "An icicle hunting the nearest target. The Nar'Asoroth-version." +msgstr "" + +#: unique_ablt.xml:95 +msgid "a ball of ice that will hunt it's victim and explode" +msgstr "" + +#: unique_ablt.xml:117 +msgid "" +"Nar'Asoroth conjures a wave of ice, that damages enemies in a circle around " +"him." +msgstr "" + +#: unique_ablt.xml:144 +msgid "Creates a obelisk of ice." +msgstr "" + +#: unique_ablt.xml:144 +msgid "Summon Ice Obelisk" +msgstr "" + +#: unique_ablt.xml:163 +msgid "Summon meteor" +msgstr "" + +#: unique_ablt.xml:185 +msgid "Army of Darkness" +msgstr "" + +#: unique_ablt.xml:185 +msgid "Nar'Asoroth raises a group of skeletons." +msgstr "" + +#: wands.xml:4 wands.xml:35 wands.xml:66 +msgid "spruce wand" +msgstr "" + +#: wands.xml:99 wands.xml:130 wands.xml:161 +msgid "apprentice wand" +msgstr "" + +#: wands.xml:194 wands.xml:224 wands.xml:255 +msgid "novice wand" +msgstr "" + +#: wands.xml:288 wands.xml:317 wands.xml:346 +msgid "hermit wand" +msgstr "" + +#: wands.xml:376 +msgid "rock wand" +msgstr "" + +#: wands.xml:411 wands.xml:440 wands.xml:469 +msgid "alder wand" +msgstr "" + +#: wands.xml:499 wands.xml:530 wands.xml:561 +msgid "bard's wand" +msgstr "" + +#: wands.xml:594 wands.xml:622 wands.xml:651 +msgid "magus wand" +msgstr "" + +#: wands.xml:681 wands.xml:709 wands.xml:738 wands.xml:768 +msgid "silver wand" +msgstr "" + +#: wands.xml:798 +msgid "oak wand" +msgstr "" + +#: wands.xml:828 +msgid "phenix wand" +msgstr "" + +#: wands.xml:858 +msgid "frost wand" +msgstr "" + +#: wands.xml:888 +msgid "thunder wand" +msgstr "" + +#: wands.xml:918 +msgid "ash wand" +msgstr "" + +#: wands.xml:948 +msgid "summoner wand" +msgstr "" + +#: wands.xml:978 +msgid "master wand" +msgstr "" + +#: wands.xml:1008 +msgid "necromancer wand" +msgstr "" + +#: wands.xml:1038 +msgid "demon wand" +msgstr "" + +#: wands.xml:1068 +msgid "fairy wand" +msgstr "" + +#: wands.xml:1101 +msgid "archmage wand" +msgstr "" + +#: warrior_ablt.xml:2 +msgid "Barbarian anger" +msgstr "" + +#: warrior_ablt.xml:2 +msgid "" +"The warrior sets himself in the state of berserk, attacking his enemies with " +"vicious blows, while completely neglecting his defence." +msgstr "" + +#: warrior_ablt.xml:47 +msgid "Bash" +msgstr "" + +#: warrior_ablt.xml:69 +msgid "Battlecry" +msgstr "" + +#: warrior_ablt.xml:69 +msgid "" +"The warrior releases a mighty cry that causes his enemies to lose " +"concentration, ultimatly reducing their defence and slowing them down." +msgstr "" + +#: warrior_ablt.xml:85 +msgid "" +"The warriors mastery of shields and weapons allows him to block damage at an " +"increased rate." +msgstr "" + +#: warrior_ablt.xml:94 +msgid "Charge" +msgstr "" + +#: warrior_ablt.xml:94 +msgid "" +"Launches an assault at an enemy with increasing speed. The faster the " +"warrior is, the more damage a charge inflicts." +msgstr "" + +#: warrior_ablt.xml:117 +msgid "Causes surrounding monsters to attack the warrior more likely." +msgstr "" + +#: warrior_ablt.xml:117 +msgid "Taunt" +msgstr "" + +#: warrior_ablt.xml:141 +msgid "" +"The warrior has become used to the ways of the battlefield to a point, where " +"he can regenerate his abilities faster than normal." +msgstr "" + +#: warrior_ablt.xml:141 +msgid "Warmaster" +msgstr "" + +#: warrior_ablt.xml:151 +msgid "Fire and sword" +msgstr "" + +#: warrior_ablt.xml:151 +msgid "" +"The warrior calls the spirits of fire upon his weapon, causing it to deal " +"firedamage. The damage depends on the warriors spellpower." +msgstr "" + +#: warrior_ablt.xml:196 +msgid "Pact of flames" +msgstr "" + +#: warrior_ablt.xml:196 +msgid "" +"The warrior calls upon the fires of hell, causing his weapon to deal " +"firedamage for a significant time. His enemies might catch fire when hit." +msgstr "" + +#: warrior_ablt.xml:217 +msgid "" +"The warrior becomes even more bloodthirsty, launching at his enemies with " +"increased attackspeed and damage in a berserk state. Even while neglecting " +"his defence, the impact is not as big as with the barbarian anger." +msgstr "" + +#: warrior_ablt.xml:217 +msgid "barbarian power" +msgstr "" + +#: warrior_ablt.xml:264 +msgid "Attacks an enemy with a chance to inflict silence." +msgstr "" + +#: warrior_ablt.xml:264 +msgid "Silencer" +msgstr "" + +#: warrior_ablt.xml:285 +msgid "" +"For each monster the warrior kills, his strength increases for a short " +"amount of time." +msgstr "" + +#: warrior_ablt.xml:285 +msgid "Monster hunter" +msgstr "" + +#: warrior_ablt.xml:295 +msgid "Monster slayer" +msgstr "" + +#: warrior_ablt.xml:295 +msgid "" +"The warrior has become the worst nightmare of monsters, with every one of " +"them falling at his feet increasing his strength and attackspeed for a short " +"amount of time." +msgstr "" + +#: warrior_ablt.xml:305 +msgid "Regeneration" +msgstr "" + +#: warrior_ablt.xml:305 +msgid "" +"The warrior regains up to 50 percent hitpoints of his total hitpoints " +"through the sheer power of his will." +msgstr "" + +#: warrior_ablt.xml:324 +msgid "Defiances" +msgstr "" + +#: warrior_ablt.xml:324 +msgid "" +"Nearby monsters will attack the warrior, if they are able to. Some will run " +"away in fear. The warriors defence is increased. " +msgstr "" + +#: warrior_ablt.xml:379 +msgid "Perseverance" +msgstr "" + +#: warrior_ablt.xml:379 +msgid "" +"The warriors defence increases proportional to the cuts and bruises he " +"receives in combat. The more serious the wounds, the more difficult he is to " +"kill." +msgstr "" + +#: warrior_ablt.xml:389 +msgid "Charge scythe" +msgstr "" + +#: warrior_ablt.xml:389 +msgid "Launches an even stronger charge attack, that may inflict stun." +msgstr "" + +#: warrior_ablt.xml:412 +msgid "" +"The battle hardened warrior's scream slows down his opponents, sometimes " +"confusing them as well." +msgstr "" + +#: warrior_ablt.xml:412 +msgid "Warcry" +msgstr "" + +#: warrior_ablt.xml:436 +msgid "" +"The warriors mastery of weapons increases the damage of his basic attacks by " +"20%." +msgstr "" + +#: warrior_ablt.xml:436 +msgid "Weaponmaster" +msgstr "" + +#: warrior_ablt.xml:446 +msgid "Attacks every enemy in weapon range with a triple sweeping strike." +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/testquest.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,127 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: testquest.xml:2 +msgid "Fenor Marken" +msgstr "" + +#: testquest.xml:3 +msgid "Test" +msgstr "" + +#: testquest.xml:9 +msgid "This is a Test" +msgstr "" + +#: testquest.xml:50 +msgid "afraid" +msgstr "" + +#: testquest.xml:55 +msgid "again a test" +msgstr "" + +#: testquest.xml:19 +msgid "amused" +msgstr "" + +#: testquest.xml:54 +msgid "and yet another Test" +msgstr "" + +#: testquest.xml:41 +msgid "angry" +msgstr "" + +#: testquest.xml:53 +msgid "being disgusted" +msgstr "" + +#: testquest.xml:25 +msgid "bored" +msgstr "" + +#: testquest.xml:49 +msgid "deadly injured" +msgstr "" + +#: testquest.xml:21 +msgid "excited" +msgstr "" + +#: testquest.xml:45 +msgid "exhausted" +msgstr "" + +#: testquest.xml:35 +msgid "grin" +msgstr "" + +#: testquest.xml:16 +msgid "happy" +msgstr "" + +#: testquest.xml:23 +msgid "in love" +msgstr "" + +#: testquest.xml:51 +msgid "in panic" +msgstr "" + +#: testquest.xml:47 +msgid "injured" +msgstr "" + +#: testquest.xml:37 +msgid "offended" +msgstr "" + +#: testquest.xml:31 +msgid "pain" +msgstr "" + +#: testquest.xml:52 +msgid "putting up a distance" +msgstr "" + +#: testquest.xml:29 +msgid "sad" +msgstr "" + +#: testquest.xml:43 +msgid "shouting a warcry" +msgstr "" + +#: testquest.xml:33 +msgid "sneer" +msgstr "" + +#: testquest.xml:11 +msgid "surprised" +msgstr "" + +#: testquest.xml:2 +msgid "testquest" +msgstr "" + +#: testquest.xml:13 +msgid "thoughtful" +msgstr "" + +#: testquest.xml:39 +msgid "threatening" +msgstr "" + +#: testquest.xml:27 +msgid "unhappy" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/the_ambush.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,114 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: theAmbush.xml:7 +msgid "" +"A female council-mage by the name of Ireana of Northborough seems to be in " +"trouble west of Dwarfenwall. Nothing a Branded One couldn't solve. If she " +"survives long enough..." +msgstr "" + +#: theAmbush.xml:136 theAmbush.xml:147 +msgid "Alright already, safe your breath!" +msgstr "" + +#: theAmbush.xml:135 theAmbush.xml:146 +msgid "Argh! Do I have to-" +msgstr "" + +#: theAmbush.xml:120 theAmbush.xml:123 +msgid "Don't start to argue and help her! She needs your help!" +msgstr "" + +#: theAmbush.xml:29 +msgid "Dwarfenwall is in that direction. I shouldn't go this way yet." +msgstr "" + +#: theAmbush.xml:105 +msgid "I am making haste, alright?" +msgstr "" + +#: theAmbush.xml:117 +msgid "" +"I thought she was one of your fancy elementalist amazones. Can't she look " +"after herself?" +msgstr "" + +#: theAmbush.xml:128 theAmbush.xml:140 +msgid "I'm not sure..." +msgstr "" + +#: theAmbush.xml:5 +msgid "" +"Ireana survived and, as a token of her gratitude, provided our next job. I " +"always knew the councilmen only wanted an exterminator." +msgstr "" + +#: theAmbush.xml:2 +msgid "The Ambush" +msgstr "" + +#: theAmbush.xml:113 +msgid "The archmage Ireana of Northborough" +msgstr "" + +#: theAmbush.xml:149 +msgid "The firefighters are on the way." +msgstr "" + +#: theAmbush.xml:111 +msgid "The prince's fiancé is in danger." +msgstr "" + +#: theAmbush.xml:104 +msgid "Wait!" +msgstr "" + +#: theAmbush.xml:108 +msgid "We are making haste, alright?" +msgstr "" + +#: theAmbush.xml:130 theAmbush.xml:143 +msgid "Well, it couldn't really hurt..." +msgstr "" + +#: theAmbush.xml:138 +msgid "What do you think, friends, do we want to bail someone out?" +msgstr "" + +#: theAmbush.xml:126 +msgid "What do you think? Shall we bail someone out?" +msgstr "" + +#: theAmbush.xml:116 +msgid "What?" +msgstr "" + +#: theAmbush.xml:112 +msgid "Who?" +msgstr "" + +#: theAmbush.xml:114 +msgid "Will that be payed extra?" +msgstr "" + +#: theAmbush.xml:133 theAmbush.xml:145 +msgid "Will that be payed extra??" +msgstr "" + +#: theAmbush.xml:106 theAmbush.xml:109 +msgid "You have to go into the western woods right now." +msgstr "" + +#: theAmbush.xml:11 +msgid "aisWolfstones" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/the_ambush_of_the_undead.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,579 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: theFissure.xml:543 +msgid "((Such an opportunity may never occur again.))" +msgstr "" + +#: theFissure.xml:122 +msgid "*urgh*" +msgstr "" + +#: theFissure.xml:420 +msgid "..." +msgstr "" + +#: theFissure.xml:828 +msgid "Alright, Windclaw, I'm done here." +msgstr "" + +#: theFissure.xml:830 +msgid "Alright, Windclaw, We are done here." +msgstr "" + +#: theFissure.xml:712 theFissure.xml:714 +msgid "Alright, go!" +msgstr "" + +#: theFissure.xml:879 +msgid "" +"And after I took a careful look around I sadly had to notice the way south " +"was blocked." +msgstr "" + +#: theFissure.xml:588 +msgid "And that is for your own good." +msgstr "" + +#: theFissure.xml:375 +msgid "" +"As long as that city stands, the entry to the lands of the undead is blocked." +msgstr "" + +#: theFissure.xml:556 +msgid "Attack the lich immediately?" +msgstr "" + +#: theFissure.xml:716 +msgid "Blow this passage to smithereens!" +msgstr "" + +#: theFissure.xml:376 +msgid "But I fear they must have found a way around the citywalls." +msgstr "" + +#: theFissure.xml:904 +msgid "But business is business." +msgstr "" + +#: theFissure.xml:893 +msgid "But short ago, there was a notable magical explosion in this place." +msgstr "" + +#: theFissure.xml:883 +msgid "But since you are here there is still hope." +msgstr "" + +#: theFissure.xml:887 +msgid "But since you are here, appreciated friends, there is still hope." +msgstr "" + +#: theFissure.xml:365 +msgid "Come off it!" +msgstr "" + +#: theFissure.xml:547 theFissure.xml:551 theFissure.xml:553 +msgid "Come on, this is our chance!" +msgstr "" + +#: theFissure.xml:900 +msgid "Curse you, Windclaw!" +msgstr "" + +#: theFissure.xml:843 +msgid "Does he have any idea how painful this always is?" +msgstr "" + +#: theFissure.xml:402 +msgid "Don't you want to give them some backup?" +msgstr "" + +#: theFissure.xml:400 +msgid "Find the way the undead came here and render it useless." +msgstr "" + +#: theFissure.xml:901 +msgid "Fine. Then we do it the hard way." +msgstr "" + +#: theFissure.xml:741 +msgid "Get out, quick!" +msgstr "" + +#: theFissure.xml:423 +msgid "Good luck!" +msgstr "" + +#: theFissure.xml:630 +msgid "Harvest!" +msgstr "" + +#: theFissure.xml:170 +msgid "He he. Harvest!" +msgstr "" + +#: theFissure.xml:390 +msgid "He is on our side." +msgstr "" + +#: theFissure.xml:865 +msgid "Hopefully there is an exit in this direction." +msgstr "" + +#: theFissure.xml:875 +msgid "How by Harad's eyes did you get here?" +msgstr "" + +#: theFissure.xml:361 +msgid "How could it even come to this?" +msgstr "" + +#: theFissure.xml:316 +msgid "How is the archmage?" +msgstr "" + +#: theFissure.xml:525 +msgid "How is the work proceeding?" +msgstr "" + +#: theFissure.xml:869 +msgid "How nice to see a familiar face." +msgstr "" + +#: theFissure.xml:871 +msgid "How nice to see familiar faces." +msgstr "" + +#: theFissure.xml:403 +msgid "I can do what I want!" +msgstr "" + +#: theFissure.xml:587 +msgid "I don't understand." +msgstr "" + +#: theFissure.xml:381 +msgid "I have a feeling what's going to come in a moment..." +msgstr "" + +#: theFissure.xml:308 +msgid "I have never seen someone fight like you before." +msgstr "" + +#: theFissure.xml:424 +msgid "I hope we meet again soon." +msgstr "" + +#: theFissure.xml:413 +msgid "I know of a cave system north of here." +msgstr "" + +#: theFissure.xml:878 +msgid "" +"I wanted to take a short cut through the mountains when suddenly the ground " +"was caving in." +msgstr "" + +#: theFissure.xml:884 theFissure.xml:888 +msgid "I will just wait until the road is clear." +msgstr "" + +#: theFissure.xml:410 +msgid "I'm sure the undead found a hidden cave." +msgstr "" + +#: theFissure.xml:596 +msgid "If I kill him now his army will fall to dust." +msgstr "" + +#: theFissure.xml:378 +msgid "" +"If those monsters could avoid Dwarfenwall they would advance into Aisen " +"before one week is gone." +msgstr "" + +#: theFissure.xml:600 theFissure.xml:603 theFissure.xml:606 +msgid "If we destroy him now his army will fall apart with him!" +msgstr "" + +#: theFissure.xml:902 +msgid "" +"If you need something let me know. I discovered some potions back there, and " +"I would part with them for a small amount of gold." +msgstr "" + +#: theFissure.xml:842 +msgid "In that case you can always tear yourselves apart. That would work." +msgstr "" + +#: theFissure.xml:580 +msgid "Isn't the tunnel supposed to be ready for the attack?" +msgstr "" + +#: theFissure.xml:412 +msgid "It surely will be useful." +msgstr "" + +#: theFissure.xml:379 +msgid "It was exceedingly careless of you to leave with so few men." +msgstr "" + +#: theFissure.xml:369 +msgid "" +"It was not the best idea, but the streets are not safe these days and thus " +"we wanted to travel concealed." +msgstr "" + +#: theFissure.xml:362 +msgid "It's very dangerous to travel so far from the roads." +msgstr "" + +#: theFissure.xml:386 theFissure.xml:396 +msgid "Let it go." +msgstr "" + +#: theFissure.xml:325 theFissure.xml:330 theFissure.xml:344 +msgid "Let me see." +msgstr "" + +#: theFissure.xml:578 +msgid "Let them rest from time to time." +msgstr "" + +#: theFissure.xml:584 +msgid "Let those aisen dogs burn their backup troops there." +msgstr "" + +#: theFissure.xml:563 theFissure.xml:609 +msgid "Let's go then!" +msgstr "" + +#: theFissure.xml:841 +msgid "" +"Let's go. If we are lucky the passage is blocked too and we can all take a " +"break." +msgstr "" + +#: theFissure.xml:383 +msgid "Listen, Branded One!" +msgstr "" + +#: theFissure.xml:393 +msgid "Listen, Branded Ones!" +msgstr "" + +#: theFissure.xml:408 +msgid "Mages have to be naturally patient." +msgstr "" + +#: theFissure.xml:526 +msgid "Nar'Asoroth, my lord." +msgstr "" + +#: theFissure.xml:558 +msgid "No" +msgstr "" + +#: theFissure.xml:372 +msgid "No wonder, this is a combat area." +msgstr "" + +#: theFissure.xml:374 +msgid "No, Dwarfenwall hasn't fallen yet." +msgstr "" + +#: theFissure.xml:366 +msgid "No, no, it's the truth." +msgstr "" + +#: theFissure.xml:582 +msgid "No, the city is unimportant in the big picture." +msgstr "" + +#: theFissure.xml:874 +msgid "Not so fast, peddler!" +msgstr "" + +#: theFissure.xml:589 +msgid "Now back to work." +msgstr "" + +#: theFissure.xml:404 +msgid "Of course..." +msgstr "" + +#: theFissure.xml:867 +msgid "" +"Oh by the gods, if some of them have their eyes on this unpleasent piece of " +"land right now." +msgstr "" + +#: theFissure.xml:877 +msgid "Oh! Well, you see..." +msgstr "" + +#: theFissure.xml:407 +msgid "Only now?" +msgstr "" + +#: theFissure.xml:586 +msgid "Only the crystal counts." +msgstr "" + +#: theFissure.xml:164 +msgid "Please help us, the mage is badly injured!" +msgstr "" + +#: theFissure.xml:411 +msgid "Please take this explosion spell." +msgstr "" + +#: theFissure.xml:388 +msgid "She is on our side." +msgstr "" + +#: theFissure.xml:416 +msgid "Should that frighten me?" +msgstr "" + +#: theFissure.xml:418 +msgid "Should that frighten us?" +msgstr "" + +#: theFissure.xml:405 +msgid "Slowly he's getting to me..." +msgstr "" + +#: theFissure.xml:846 +msgid "Stop bickering and get moving!" +msgstr "" + +#: theFissure.xml:371 +msgid "Surprise!" +msgstr "" + +#: theFissure.xml:360 +msgid "Thank you. That was a close call for a rescue." +msgstr "" + +#: theFissure.xml:422 +msgid "Thanks for your help." +msgstr "" + +#: theFissure.xml:595 +msgid "That has to be the lich attacking Dwarfenwall." +msgstr "" + +#: theFissure.xml:385 +msgid "That's a Branded One?" +msgstr "" + +#: theFissure.xml:599 theFissure.xml:602 theFissure.xml:605 +msgid "That's a lich." +msgstr "" + +#: theFissure.xml:844 +msgid "That's impossible. Otherwise he wouldn't give such a stupid suggestion." +msgstr "" + +#: theFissure.xml:880 +msgid "That's why I'm here." +msgstr "" + +#: theFissure.xml:2 +msgid "The ambush of the undead" +msgstr "" + +#: theFissure.xml:585 +msgid "" +"The army passing through this tunnel has nothing to do with Dwarfenwall." +msgstr "" + +#: theFissure.xml:380 +msgid "The city needs every man it can get!" +msgstr "" + +#: theFissure.xml:8 +msgid "" +"The good news: No one will come through that tunnel anymore. The bad news: " +"The way back has caved in, too. Hopefully there is another exit." +msgstr "" + +#: theFissure.xml:534 +msgid "" +"The stone is solid,but if I let the skeletons work any faster they will " +"break apart!" +msgstr "" + +#: theFissure.xml:10 +msgid "" +"The undead found a way under the Grey Skyladder enabling them to bypass " +"Dwarfenwall. Because this threatens the kingdom of Aisen directly it has to " +"be shut as fast as possible. The passage in the Cursed Caves has to be found " +"and the destroyed with the explosion spell of Ireana of Northborough." +msgstr "" + +#: theFissure.xml:708 +msgid "Then I shall blow this crevice to smithereens." +msgstr "" + +#: theFissure.xml:881 +msgid "There is a cave in the east, too, but that was a bit fishy." +msgstr "" + +#: theFissure.xml:845 +msgid "There really are better employers." +msgstr "" + +#: theFissure.xml:370 +msgid "These undead layed an ambush for us here." +msgstr "" + +#: theFissure.xml:397 +msgid "They are on our side." +msgstr "" + +#: theFissure.xml:414 +msgid "They say it's cursed." +msgstr "" + +#: theFissure.xml:579 +msgid "They should be able to fight, too." +msgstr "" + +#: theFissure.xml:395 +msgid "Those are Branded Ones?" +msgstr "" + +#: theFissure.xml:502 +msgid "Unknown Lich" +msgstr "" + +#: theFissure.xml:318 +msgid "Very bad, I'm afraid." +msgstr "" + +#: theFissure.xml:573 theFissure.xml:575 +msgid "Wait, we may learn something useful." +msgstr "" + +#: theFissure.xml:377 +msgid "We mustn't allow this." +msgstr "" + +#: theFissure.xml:892 +msgid "" +"Well, that would work normally and I would gladly offer you a grand price " +"for the help." +msgstr "" + +#: theFissure.xml:632 +msgid "" +"What do you know. There are rats everywhere. Kill them and bring me their " +"bones!" +msgstr "" + +#: theFissure.xml:833 +msgid "What now?" +msgstr "" + +#: theFissure.xml:384 theFissure.xml:394 +msgid "What?!?" +msgstr "" + +#: theFissure.xml:866 +msgid "Who goes there?" +msgstr "" + +#: theFissure.xml:401 +msgid "Will that be payed extra?" +msgstr "" + +#: theFissure.xml:158 +msgid "Wow, she's gorgeous." +msgstr "" + +#: theFissure.xml:557 +msgid "Yes" +msgstr "" + +#: theFissure.xml:837 theFissure.xml:840 +msgid "You are needed in Dwarfenwall!" +msgstr "" + +#: theFissure.xml:162 +msgid "You can stare at her later, we have to erase some undead." +msgstr "" + +#: theFissure.xml:313 +msgid "You developed splendid since the last time we met, didn't you?" +msgstr "" + +#: theFissure.xml:311 +msgid "You developed splendid since the last time we met, didn't you? ##solo" +msgstr "" + +#: theFissure.xml:309 +msgid "You don't get out very often, do you." +msgstr "" + +#: theFissure.xml:836 +msgid "You fool! Get yourself out of this mountain!" +msgstr "" + +#: theFissure.xml:839 +msgid "You fools! Get yourselves out of this mountain!" +msgstr "" + +#: theFissure.xml:903 +msgid "You really ask money for it." +msgstr "" + +#: theFissure.xml:897 +msgid "You will discover that the scrolls take you right here again." +msgstr "" + +#: theFissure.xml:895 +msgid "You will discover that the scrolls take you right here again. ##solo" +msgstr "" + +#: theFissure.xml:885 +msgid "" +"Your distress aside, what makes you so sure I'll not simply vanish with a " +"town portal?" +msgstr "" + +#: theFissure.xml:889 +msgid "" +"Your distress aside, what makes you so sure we'll not simply vanish with a " +"town portal?" +msgstr "" + +#: theFissure.xml:592 +msgid "Your wish is my action." +msgstr "" + +#: theFissure.xml:14 +msgid "aisMounPath" +msgstr "" + +#: theFissure.xml:921 +msgid "greyCurseCaveDep" +msgstr "" + +#: theFissure.xml:446 +msgid "greyCurseCaveFis" +msgstr "" + +#: theFissure.xml:421 +msgid "probably not." +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/the_besieged_farm.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,169 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: besieged_farm.xml:23 +msgid "Ah! Are you feeling like earning the money after all?" +msgstr "" + +#: besieged_farm.xml:135 +msgid "Brons Farm" +msgstr "" + +#: besieged_farm.xml:31 +msgid "But I don't want to complain." +msgstr "" + +#: besieged_farm.xml:115 +msgid "But I will give word to my husband that we are alive and well." +msgstr "" + +#: besieged_farm.xml:144 +msgid "But that shall be of no concern to you." +msgstr "" + +#: besieged_farm.xml:27 +msgid "" +"Don't think I haven't seen you and your friend hanging around back there." +msgstr "" + +#: besieged_farm.xml:29 +msgid "" +"Don't think I haven't seen you and your friends hanging around back there." +msgstr "" + +#: besieged_farm.xml:25 +msgid "Don't think I haven't seen you hanging around back there." +msgstr "" + +#: besieged_farm.xml:145 +msgid "Here's the money." +msgstr "" + +#: besieged_farm.xml:116 +msgid "How so?" +msgstr "" + +#: besieged_farm.xml:33 +msgid "I don't care how you do it, even if you gobble them raw." +msgstr "" + +#: besieged_farm.xml:36 +msgid "I'm on my way." +msgstr "" + +#: besieged_farm.xml:142 +msgid "I've already heard of it." +msgstr "" + +#: besieged_farm.xml:141 +msgid "It's done." +msgstr "" + +#: besieged_farm.xml:34 +msgid "Just kidding." +msgstr "" + +#: besieged_farm.xml:122 besieged_farm.xml:124 +msgid "Let's just go collect the money." +msgstr "" + +#: besieged_farm.xml:143 +msgid "" +"Michel is in the tavern getting plastered - all in honor of your bravery, of " +"course." +msgstr "" + +#: besieged_farm.xml:118 +msgid "Of course. Silly of me." +msgstr "" + +#: besieged_farm.xml:114 +msgid "Our barricade is quite heavy." +msgstr "" + +#: besieged_farm.xml:120 +msgid "Really now, " +msgstr "" + +#: besieged_farm.xml:113 +msgid "Sadly I cannot ask you in." +msgstr "" + +#: besieged_farm.xml:15 besieged_farm.xml:134 +msgid "Sergeant Lutterer" +msgstr "" + +#: besieged_farm.xml:112 +msgid "Thank you very much." +msgstr "" + +#: besieged_farm.xml:88 +msgid "" +"That should have been enough goblins. I better look after Bron's family." +msgstr "" + +#: besieged_farm.xml:2 +msgid "The besieged farm" +msgstr "" + +#: besieged_farm.xml:16 +msgid "The farm" +msgstr "" + +#: besieged_farm.xml:11 +msgid "" +"The farm of a peasant named Michel Bron is besieged by goblins. His family " +"needs help - fast." +msgstr "" + +#: besieged_farm.xml:111 +msgid "The goblins are gone. Are you alright?" +msgstr "" + +#: besieged_farm.xml:9 +msgid "" +"The goblins around Bron's farm are not among the living anymore. I should " +"knock at the door and make sure everything is all right. No peasants, no " +"money." +msgstr "" + +#: besieged_farm.xml:7 +msgid "" +"The peasants are rescued and the goblins slain. It's time to collect the " +"reward for the trouble in Joringsbridge." +msgstr "" + +#: besieged_farm.xml:5 +msgid "" +"The peasants are rescued, the goblins slain, and the service paid. What more " +"can you ask for?" +msgstr "" + +#: besieged_farm.xml:35 +msgid "When you're done, come back to me." +msgstr "" + +#: besieged_farm.xml:117 +msgid "" +"With a crytal of Avearea, of course. It's been handed down in my family for " +"generations." +msgstr "" + +#: besieged_farm.xml:32 +msgid "" +"You know the drill: Get to the Northern Meadow and drive away the goblins " +"around Bron's farm." +msgstr "" + +#: besieged_farm.xml:42 +msgid "aisNorthMeadow" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/the_goblinslayer.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,95 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: goblins.xml:36 +msgid "Accept the quest?" +msgstr "" + +#: goblins.xml:19 +msgid "Goblins" +msgstr "" + +#: goblins.xml:43 +msgid "Goblins (reward)" +msgstr "" + +#: goblins.xml:61 +msgid "Have fun then." +msgstr "" + +#: goblins.xml:26 +msgid "I have killed them all." +msgstr "" + +#: goblins.xml:34 +msgid "If you kill 10 of 'em, I'll give you a precious reward." +msgstr "" + +#: goblins.xml:35 +msgid "Interested?" +msgstr "" + +#: goblins.xml:30 +msgid "Leave me alone and kill some more goblins." +msgstr "" + +#: goblins.xml:60 +msgid "Nearly done." +msgstr "" + +#: goblins.xml:38 +msgid "No" +msgstr "" + +#: goblins.xml:50 +msgid "Of course!" +msgstr "" + +#: goblins.xml:9 +msgid "Quest finished" +msgstr "" + +#: goblins.xml:2 +msgid "The goblinslayer" +msgstr "" + +#: goblins.xml:51 +msgid "Then I'll give you this goblin club. Be happy." +msgstr "" + +#: goblins.xml:33 +msgid "There are some stupid goblins pissing me off." +msgstr "" + +#: goblins.xml:27 +msgid "Wow... you're a real hero, aren't ya?" +msgstr "" + +#: goblins.xml:37 +msgid "Yes" +msgstr "" + +#: goblins.xml:49 +msgid "You want a second reward?" +msgstr "" + +#: goblins.xml:18 +msgid "peasant" +msgstr "" + +#: goblins.xml:90 +msgid "region1" +msgstr "" + +#: goblins.xml:12 +msgid "you killed enough goblins" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/the_poolmonster.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,103 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: scene7.xml:53 +msgid "*Roar!*" +msgstr "" + +#: scene7.xml:29 +msgid "..." +msgstr "" + +#: scene7.xml:23 +msgid "... Der Anblick hat mich nur an mein Leben" +msgstr "" + +#: scene7.xml:25 +msgid "... only dimly" +msgstr "" + +#: scene7.xml:28 +msgid "... only externally." +msgstr "" + +#: scene7.xml:22 +msgid "Are you getting sentimental now?" +msgstr "" + +#: scene7.xml:33 +msgid "Do you really think that it" +msgstr "" + +#: scene7.xml:24 +msgid "Du kannst dich an dein Leben vor der" +msgstr "" + +#: scene7.xml:34 +msgid "Even the great" +msgstr "" + +#: scene7.xml:35 +msgid "I hope you have" +msgstr "" + +#: scene7.xml:27 +msgid "I know enough people," +msgstr "" + +#: scene7.xml:41 +msgid "Just a moment please." +msgstr "" + +#: scene7.xml:43 +msgid "Looks like a..." +msgstr "" + +#: scene7.xml:11 +msgid "Quest description" +msgstr "" + +#: scene7.xml:9 +msgid "Quest finished" +msgstr "" + +#: scene7.xml:26 +msgid "Sometimes I wish," +msgstr "" + +#: scene7.xml:15 +msgid "Soren Windclaw" +msgstr "" + +#: scene7.xml:2 +msgid "The Poolmonster" +msgstr "" + +#: scene7.xml:40 +msgid "We have to go now." +msgstr "" + +#: scene7.xml:42 +msgid "Whats that on the water over there?" +msgstr "" + +#: scene7.xml:36 +msgid "Why has it really" +msgstr "" + +#: scene7.xml:21 +msgid "Wow, thats beautiful." +msgstr "" + +#: scene7.xml:59 +msgid "greyCurseLake" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/the_trader.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,424 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: theTrader.xml:199 +msgid "" +" A common skill. Any sell-sword that wants to avoid a quick and meaningless " +"death knows of it." +msgstr "" + +#: theTrader.xml:76 +msgid "A moment, dear ladies." +msgstr "" + +#: theTrader.xml:71 +msgid "A moment, dear madam." +msgstr "" + +#: theTrader.xml:74 +msgid "A moment, dear sir." +msgstr "" + +#: theTrader.xml:78 +msgid "A moment, dear sirs." +msgstr "" + +#: theTrader.xml:80 +msgid "A moment, ladies and gentlemen." +msgstr "" + +#: theTrader.xml:7 +msgid "A strange trader offered me to sell Empty Scrolls." +msgstr "" + +#: theTrader.xml:197 +msgid "A useful skill." +msgstr "" + +#: theTrader.xml:151 +msgid "Actually not, regrettably." +msgstr "" + +#: theTrader.xml:161 +msgid "Allow me to give you an Empty Scroll as a gift." +msgstr "" + +#: theTrader.xml:205 +msgid "Alternatively you can select the number of the belt slot it is in." +msgstr "" + +#: theTrader.xml:177 +msgid "And how do we use them?" +msgstr "" + +#: theTrader.xml:152 +msgid "" +"As reported, I invested badly in the Empty Scrolls and have no available " +"capital." +msgstr "" + +#: theTrader.xml:190 +msgid "" +"At the bottom you have the small items tab, click on it to access the three " +"rows of your small items inventory." +msgstr "" + +#: theTrader.xml:145 +msgid "Be wary, it is not as safe around Medair as it used to be." +msgstr "" + +#: theTrader.xml:155 +msgid "But I can supply you with scrolls for a long time. That's a promise." +msgstr "" + +#: theTrader.xml:137 +msgid "Clearly you are in the wrong line of work." +msgstr "" + +#: theTrader.xml:134 +msgid "" +"Click on one of these symbols, and your body will rematerialize at your " +"destination, as fast as the wind." +msgstr "" + +#: theTrader.xml:100 +msgid "Didn't you hear the capital letters?" +msgstr "" + +#: theTrader.xml:146 +msgid "" +"Even travelling the roads may prove to be dangerous. Particularly if you are " +"heading north." +msgstr "" + +#: theTrader.xml:179 +msgid "Explain the belt?" +msgstr "" + +#: theTrader.xml:117 +msgid "Explain the waypoint system?" +msgstr "" + +#: theTrader.xml:128 +msgid "Fear not, they will not harm you in any way, honest." +msgstr "" + +#: theTrader.xml:116 +msgid "" +"Furthermore, a scroll's power is depleted quickly and limited only to one " +"person." +msgstr "" + +#: theTrader.xml:148 +msgid "Goblins and other beasts have stolen quite a lot recently." +msgstr "" + +#: theTrader.xml:162 +msgid "Grace me with your presence again soon, if you please." +msgstr "" + +#: theTrader.xml:135 +msgid "Hmm. You seem to know a great deal about this, for a trader." +msgstr "" + +#: theTrader.xml:172 +msgid "How about: \"town portal\"?" +msgstr "" + +#: theTrader.xml:307 +msgid "How nice to see you have escaped from the caves." +msgstr "" + +#: theTrader.xml:106 +msgid "I see you are a man of reason!" +msgstr "" + +#: theTrader.xml:108 +msgid "I see you are a woman of reason!" +msgstr "" + +#: theTrader.xml:301 +msgid "I see you have reached dwarfenwall safely." +msgstr "" + +#: theTrader.xml:189 +msgid "I thought so." +msgstr "" + +#: theTrader.xml:153 +msgid "" +"I'm afraid I have insufficient gold to buy assorted wares from treasure " +"hunters and scavengers." +msgstr "" + +#: theTrader.xml:194 +msgid "I'm sure you noticed, right?" +msgstr "" + +#: theTrader.xml:130 +msgid "" +"If you click on a road shrine, your body will be transported through Harad's " +"domain." +msgstr "" + +#: theTrader.xml:133 +msgid "" +"If you have an open portal in the world, that will be shown too, with a red " +"dot." +msgstr "" + +#: theTrader.xml:193 +msgid "If you place a potion there, it appears in the belt row." +msgstr "" + +#: theTrader.xml:204 +msgid "" +"If you want to use a potion you can do so by clicking on it with the right " +"mouse button in the inventory or the belt." +msgstr "" + +#: theTrader.xml:131 +msgid "" +"In your mind's eye you will see a map with all the waypoints you have " +"already visited." +msgstr "" + +#: theTrader.xml:95 theTrader.xml:195 +msgid "Indeed." +msgstr "" + +#: theTrader.xml:86 theTrader.xml:88 +msgid "It seems, you are stuck in Harad's black claws." +msgstr "" + +#: theTrader.xml:178 +msgid "Like a common potion." +msgstr "" + +#: theTrader.xml:196 +msgid "" +"Long years on the battlefield have honed my ability to change potions for " +"similar potions immediately once I have used one." +msgstr "" + +#: theTrader.xml:150 +msgid "Meaning yourself?" +msgstr "" + +#: theTrader.xml:111 +msgid "Much to my regret, an Empty Scroll is only capable of one thing:" +msgstr "" + +#: theTrader.xml:119 theTrader.xml:181 +msgid "No" +msgstr "" + +#: theTrader.xml:308 +msgid "No thanks to you. May I continue to offer you my services?" +msgstr "" + +#: theTrader.xml:173 +msgid "Now, now, honorable customers!" +msgstr "" + +#: theTrader.xml:223 +msgid "Oddball." +msgstr "" + +#: theTrader.xml:215 +msgid "Oh! It's that simple?" +msgstr "" + +#: theTrader.xml:156 +msgid "One reason being; customers are rare in these parts." +msgstr "" + +#: theTrader.xml:5 +msgid "Quest finished" +msgstr "" + +#: theTrader.xml:160 +msgid "" +"Regardless, not many Branded Ones would have listened to me as you have." +msgstr "" + +#: theTrader.xml:157 +msgid "Surely they can be found anywhere, especially in a place like this." +msgstr "" + +#: theTrader.xml:309 +msgid "Surely. Now that I finally have a sound anchor again." +msgstr "" + +#: theTrader.xml:206 +msgid "" +"That is, 1 for the potion on the left, 2 for the second from the left and so " +"on." +msgstr "" + +#: theTrader.xml:2 theTrader.xml:124 theTrader.xml:262 theTrader.xml:300 +msgid "The Trader" +msgstr "" + +#: theTrader.xml:192 +msgid "The top row represents your belt." +msgstr "" + +#: theTrader.xml:132 +msgid "These are shown as small yellow points." +msgstr "" + +#: theTrader.xml:174 +msgid "" +"They were sold to me as Empty Scrolls, but what you call them is entirely up " +"to you!" +msgstr "" + +#: theTrader.xml:207 +msgid "" +"This works for all usable items alike, so naturally for the scrolls, too." +msgstr "" + +#: theTrader.xml:112 +msgid "To establish a way through Harad's black abyss." +msgstr "" + +#: theTrader.xml:113 +msgid "" +"To make it worse only to spots of great magical concentration like that big " +"road shrine over there." +msgstr "" + +#: theTrader.xml:96 +msgid "" +"Unfortunatly I bet on the wrong branch and now I'm stuck with a large " +"contingent of Empty Scrolls." +msgstr "" + +#: theTrader.xml:163 +msgid "Wait! Does this thing have to be called Empty Scroll?" +msgstr "" + +#: theTrader.xml:269 +msgid "" +"Well, I noticed you were headed north, and I thought it would be convenient " +"for you to know I'm nearby." +msgstr "" + +#: theTrader.xml:92 +msgid "Well, I want to say I'd like to lend you my services." +msgstr "" + +#: theTrader.xml:166 +msgid "" +"Well, they were sold to me as Empty Scrolls, but what you call them is " +"entirely up to you." +msgstr "" + +#: theTrader.xml:201 +msgid "Well, whatever." +msgstr "" + +#: theTrader.xml:270 +msgid "Well, you are right, I guess." +msgstr "" + +#: theTrader.xml:187 +msgid "Well, you know about your inventory, right?" +msgstr "" + +#: theTrader.xml:263 +msgid "What are you doing here?" +msgstr "" + +#: theTrader.xml:91 +msgid "What are you trying to say?" +msgstr "" + +#: theTrader.xml:98 +msgid "What do we want with empty scrolls?" +msgstr "" + +#: theTrader.xml:83 +msgid "What is it now?" +msgstr "" + +#: theTrader.xml:170 +msgid "What kind of name is that supposed to be!?" +msgstr "" + +#: theTrader.xml:103 +msgid "What kind of scrolls are they?" +msgstr "" + +#: theTrader.xml:127 +msgid "" +"When you get close to a waypoint, your aura will summon the familiar spirits " +"to ignite the shrine's warning flames." +msgstr "" + +#: theTrader.xml:168 +msgid "Why not \"way to the town\" or something like that?" +msgstr "" + +#: theTrader.xml:165 +msgid "Why not town portal or something like that?" +msgstr "" + +#: theTrader.xml:159 +msgid "With all due respect, nobody wanting to buy scrolls from poor traders." +msgstr "" + +#: theTrader.xml:118 theTrader.xml:180 +msgid "Yes" +msgstr "" + +#: theTrader.xml:94 +msgid "You are a trader?" +msgstr "" + +#: theTrader.xml:129 +msgid "" +"You can be sure that you are able to use the road shrine if you see the " +"flames." +msgstr "" + +#: theTrader.xml:149 +msgid "" +"You may find it convenient to make a short detour to a well-stocked trader." +msgstr "" + +#: theTrader.xml:136 +msgid "" +"You pick these things up in your travels, except for business acumen, " +"apparently." +msgstr "" + +#: theTrader.xml:288 +msgid "dwarfenwall" +msgstr "" + +#: theTrader.xml:11 +msgid "elCnlLobby" +msgstr "" + +#: theTrader.xml:276 +msgid "greyCurseCaveFis" +msgstr "" + +#: theTrader.xml:253 +msgid "joringsbridge" +msgstr "" + +#: theTrader.xml:22 theTrader.xml:237 +msgid "medMercCamp" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/tools.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,368 @@ +# French translations for PACKAGE package. +# Copyright (C) 2014 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# stefan <some.fusion@gmail.com>, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-05-27 20:58+0200\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../../src/gui/contenteditor/contenteditor.cpp:269 +msgid "Render Info" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:273 +msgid "Mesh" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:277 +msgid "Select main mesh:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:281 +msgid "Submeshes" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:285 +msgid "Add Submesh" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:289 +msgid "New submesh:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:293 +msgid "submesh name:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:297 +msgid "Edit submesh:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:301 +msgid "Attach to:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:305 +msgid "at bone:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:309 +msgid "Rotate(x,y,z):" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:313 +msgid "Scale:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:317 +msgid "Offset (x,y,z):" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:321 +msgid "Delete Submesh" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:325 +msgid "Animations" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:329 +#: ../../src/gui/contenteditor/contenteditor.cpp:413 +#: ../../src/gui/contenteditor/contenteditor.cpp:673 +msgid "XML" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:333 +#: ../../src/gui/contenteditor/contenteditor.cpp:417 +#: ../../src/gui/contenteditor/contenteditor.cpp:677 +msgid "Submit XML" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:337 +msgid "FixedObject" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:341 +msgid "Properties" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:345 +msgid "Shape:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:349 +msgid "Circle" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:353 +msgid "Radius:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:357 +#: ../../src/gui/contenteditor/contenteditor.cpp:373 +msgid "Autodetect" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:361 +msgid "Rectangle" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:365 +msgid "Width:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:369 +msgid "Depth:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:377 +msgid "Collision type" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:381 +#: ../../src/gui/contenteditor/contenteditor.cpp:437 +msgid "Copy data from:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:385 +#: ../../src/gui/contenteditor/contenteditor.cpp:441 +msgid "Copy" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:389 +#: ../../src/gui/contenteditor/contenteditor.cpp:393 +msgid "Create Object" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:397 +msgid "Position:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:401 +msgid "Get Player Position" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:405 +msgid "Angle:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:409 +msgid "Delete all objects" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:421 +msgid "Item" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:425 +msgid "General" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:429 +#: ../../src/gui/contenteditor/contenteditor.cpp:533 +msgid "Type:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:433 +msgid "Size:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:445 +msgid "Name:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:449 +msgid "Value:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:453 +msgid "Enchant min:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:457 +msgid "max:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:461 +msgid "Equip" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:465 +#: ../../src/gui/contenteditor/contenteditor.cpp:617 +msgid "Health:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:469 +msgid "Attribute:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:473 +msgid "Strength:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:477 +msgid "Dexterity:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:481 +msgid "Magic Power:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:485 +msgid "Willpower:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:489 +msgid "Resistances:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:493 +#: ../../src/gui/contenteditor/contenteditor.cpp:541 +msgid "Physical:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:497 +#: ../../src/gui/contenteditor/contenteditor.cpp:553 +msgid "Fire:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:501 +#: ../../src/gui/contenteditor/contenteditor.cpp:565 +msgid "Ice:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:505 +#: ../../src/gui/contenteditor/contenteditor.cpp:577 +msgid "Air:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:509 +msgid "Other:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:513 +msgid "Armor:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:517 +msgid "Block:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:521 +#: ../../src/gui/contenteditor/contenteditor.cpp:589 +msgid "Precision:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:525 +#: ../../src/gui/contenteditor/contenteditor.cpp:593 +msgid "Power:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:529 +msgid "Weapon" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:537 +msgid "Damage:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:545 +#: ../../src/gui/contenteditor/contenteditor.cpp:557 +#: ../../src/gui/contenteditor/contenteditor.cpp:569 +#: ../../src/gui/contenteditor/contenteditor.cpp:581 +msgid "-" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:549 +#: ../../src/gui/contenteditor/contenteditor.cpp:561 +#: ../../src/gui/contenteditor/contenteditor.cpp:573 +#: ../../src/gui/contenteditor/contenteditor.cpp:585 +msgid "x" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:597 +msgid "Range:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:601 +msgid "Speed:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:605 +msgid "Twohanded weapon" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:609 +msgid "Crit. Hits:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:613 +msgid "Consume" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:621 +msgid "Status heal and immunity time:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:625 +msgid "Blind:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:629 +msgid "Poisoned:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:633 +msgid "Berserk:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:637 +msgid "Confused:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:641 +msgid "Mute:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:645 +msgid "Paralyzed:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:649 +msgid "Frozen:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:653 +msgid "Burning:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:657 +msgid "Create Item" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:661 +msgid "Enchant:" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:665 +msgid "Create in inventory" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:669 +msgid "Create an drop" +msgstr "" + +#: ../../src/gui/contenteditor/contenteditor.cpp:680 +msgid "Close" +msgstr ""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/translation/fr/tutorial.po Sun Jun 08 11:05:00 2014 +0200 @@ -0,0 +1,1484 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: stefan <some.fusion@gmail.com>\n" +"Language-Team: French\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: 2014-05-27 20:59+0200\n" + +#: tutorial.xml:1845 +msgid "'course. Send the Branded One first.##female" +msgstr "" + +#: tutorial.xml:1847 +msgid "'course. Send the Branded One first.##male" +msgstr "" + +#: tutorial.xml:229 +msgid "*urgh*" +msgstr "" + +#: tutorial.xml:1441 +msgid "..." +msgstr "" + +#: tutorial.xml:773 +msgid "... just back there with all the junk." +msgstr "" + +#: tutorial.xml:787 +msgid "" +"... that the old Firewhirl has a secret door for a direct connection to the " +"kitchen. That could work! But the beasts are not exactly without danger." +msgstr "" + +#: tutorial.xml:2084 +msgid "" +"A Cursed One has to be happy if he has something to kill all along, right?" +msgstr "" + +#: tutorial.xml:306 tutorial.xml:308 +msgid "" +"A splendid question! Short and precise. Maybe one can actually work with " +"that one." +msgstr "" + +#: tutorial.xml:1815 +msgid "" +"After you have used a skill, you cannot use a skill of that group for a " +"while." +msgstr "" + +#: tutorial.xml:1671 +msgid "Again." +msgstr "" + +#: tutorial.xml:765 +msgid "Akeran must truly hate you..." +msgstr "" + +#: tutorial.xml:1466 +msgid "Akeran protects, Akeran guides." +msgstr "" + +#: tutorial.xml:645 +msgid "Akeran!" +msgstr "" + +#: tutorial.xml:714 +msgid "Akeran's Shield! That THING is free! Back everyone! Go, go, go!" +msgstr "" + +#: tutorial.xml:1732 +msgid "Akerans Flaming Eyes, look over there!" +msgstr "" + +#: tutorial.xml:1240 +msgid "All right allready!" +msgstr "" + +#: tutorial.xml:848 +msgid "" +"Alternatively, you can click on the inventory button below in the status bar." +msgstr "" + +#: tutorial.xml:1669 +msgid "And all it takes to get out of here is a walk through the sewers." +msgstr "" + +#: tutorial.xml:1438 +msgid "And if you die here?" +msgstr "" + +#: tutorial.xml:1730 +msgid "And then she says..." +msgstr "" + +#: tutorial.xml:1462 +msgid "And where would one get an energy crystal in these forsaken caves?" +msgstr "" + +#: tutorial.xml:238 +msgid "And who are the other sad characters?" +msgstr "" + +#: tutorial.xml:236 +msgid "And who is the other sad character?" +msgstr "" + +#: tutorial.xml:1361 +msgid "Are you all right down there?" +msgstr "" + +#: tutorial.xml:1349 +msgid "Are you all right down there? ##solo" +msgstr "" + +#: tutorial.xml:754 +msgid "Are you blind? The beast is gigantic!" +msgstr "" + +#: tutorial.xml:302 +msgid "Are you kidding me? Who the hell is this windpaw?" +msgstr "" + +#: tutorial.xml:300 +msgid "Are you kidding us? Who the hell is this windpaw?" +msgstr "" + +#: tutorial.xml:1010 +msgid "Are you looking for trouble, weakling?!" +msgstr "" + +#: tutorial.xml:253 +msgid "Are you looking for trouble? Who is responsible for this mess!?!" +msgstr "" + +#: tutorial.xml:435 +msgid "As you wish, but this room is safe." +msgstr "" + +#: tutorial.xml:1773 +msgid "At least not until I got paid. Seriously paid." +msgstr "" + +#: tutorial.xml:1777 +msgid "At least not until we got paid. Seriously paid." +msgstr "" + +#: tutorial.xml:861 tutorial.xml:885 +msgid "Attack slugs" +msgstr "" + +#: tutorial.xml:1442 +msgid "Be that as it may, but is there another way to get out of here?" +msgstr "" + +#: tutorial.xml:1582 +msgid "Better be careful, though." +msgstr "" + +#: tutorial.xml:1065 +msgid "Better strange than..." +msgstr "" + +#: tutorial.xml:1060 +msgid "Branded Ones use strange phrases indeed." +msgstr "" + +#: tutorial.xml:1058 +msgid "Character class." +msgstr "" + +#: tutorial.xml:851 +msgid "" +"Click on the weapon with the left mouse button. Next click on the weapon " +"field in the equipment above your inventory, and it will be equipped." +msgstr "" + +#: tutorial.xml:359 +msgid "Council? The Council of Summoners?! Is this Aisen?" +msgstr "" + +#: tutorial.xml:2090 +msgid "" +"Cursed Ones have to be happy if they have something to kill all along, right?" +msgstr "" + +#: tutorial.xml:1375 +msgid "Damn them! Not exactly what I would call 'customer service'." +msgstr "" + +#: tutorial.xml:1346 +msgid "Damn this place!" +msgstr "" + +#: tutorial.xml:1055 +msgid "Depending on your... character mass." +msgstr "" + +#: tutorial.xml:1050 +msgid "Depending on your... character mass. ##solo" +msgstr "" + +#: tutorial.xml:399 tutorial.xml:841 tutorial.xml:1111 tutorial.xml:1806 +msgid "Derred" +msgstr "" + +#: tutorial.xml:1781 +msgid "Did you even know just how many escaped slugs you have in the basement?" +msgstr "" + +#: tutorial.xml:1432 +msgid "Do you know how to get out of here?" +msgstr "" + +#: tutorial.xml:1864 tutorial.xml:1880 +msgid "" +"Do you see the shelf in that passage? That is the door. Just move it by " +"clicking on it." +msgstr "" + +#: tutorial.xml:409 +msgid "Do you want to surrender your weapons?" +msgstr "" + +#: tutorial.xml:1829 +msgid "Don't worry, I'm almost feeling fit again." +msgstr "" + +#: tutorial.xml:1831 +msgid "Don't worry, we're almost feeling fit again." +msgstr "" + +#: tutorial.xml:939 +msgid "" +"Don't worry. Even a golem has one. Those things will not be the exception." +msgstr "" + +#: tutorial.xml:339 +msgid "Don't worry. We have strict orders not to kill you." +msgstr "" + +#: tutorial.xml:337 +msgid "Don't worry. We have strict orders not to kill you. ##solo" +msgstr "" + +#: tutorial.xml:650 +msgid "Dont let me die!" +msgstr "" + +#: tutorial.xml:757 +msgid "Er yes... about that..." +msgstr "" + +#: tutorial.xml:785 +msgid "" +"Er, well, yes. Since the main way is currently blocked, we'll have to try to " +"get through the enclosure with the new experiments." +msgstr "" + +#: tutorial.xml:311 +msgid "Er..." +msgstr "" + +#: tutorial.xml:804 +msgid "" +"Er... Lord Master Windclaw feared that there could be a situation in which " +"you had to fall back to, er, force of arms." +msgstr "" + +#: tutorial.xml:910 +msgid "Everyone should equip their weapons first." +msgstr "" + +#: tutorial.xml:778 +msgid "Exactly, only there." +msgstr "" + +#: tutorial.xml:1054 +msgid "" +"Exactly. You can distribute the skill point in the skill window. The Lord " +"Master said that you could choose from three categories." +msgstr "" + +#: tutorial.xml:1049 +msgid "" +"Exactly. You can distribute the skill point in the skill window. The Lord " +"Master said that you could choose from three categories. ##solo" +msgstr "" + +#: tutorial.xml:266 +msgid "Excuse me..." +msgstr "" + +#: tutorial.xml:842 tutorial.xml:874 +msgid "Explain inventory" +msgstr "" + +#: tutorial.xml:818 +msgid "Explain inventory?" +msgstr "" + +#: tutorial.xml:1036 +msgid "Explain level up" +msgstr "" + +#: tutorial.xml:1807 +msgid "Explain skills" +msgstr "" + +#: tutorial.xml:1798 +msgid "Explain skills?" +msgstr "" + +#: tutorial.xml:1425 +msgid "Finally you guards return..." +msgstr "" + +#: tutorial.xml:1667 +msgid "Finally. Now, lets get out of here." +msgstr "" + +#: tutorial.xml:20 +msgid "Find the secret entrance to the library." +msgstr "" + +#: tutorial.xml:350 +msgid "" +"Fine. Now that that's clarified I'd like to ask you all to surrender your " +"weapons." +msgstr "" + +#: tutorial.xml:348 +msgid "" +"Fine. Now that that's clarified I'd like to ask you to surrender your " +"weapons. ##solo" +msgstr "" + +#: tutorial.xml:847 +msgid "" +"First you must open your inventory. By default, you do so with the 'i'-key." +msgstr "" + +#: tutorial.xml:16 +msgid "Follow Tolec and Derred." +msgstr "" + +#: tutorial.xml:494 +msgid "Follow me, please." +msgstr "" + +#: tutorial.xml:434 +msgid "Forget it!" +msgstr "" + +#: tutorial.xml:942 +msgid "Forget it! I'm not going in while those beasts are on the loose." +msgstr "" + +#: tutorial.xml:332 +msgid "Further more your arrival was... somewhat exhausting." +msgstr "" + +#: tutorial.xml:328 +msgid "Further more, your arrival was... somewhat exhausting. ##solo" +msgstr "" + +#: tutorial.xml:920 +msgid "Go in, click on it, kill it. A Branded One wouldn't forget about that." +msgstr "" + +#: tutorial.xml:1927 +msgid "Good, Firewhirl is not here." +msgstr "" + +#: tutorial.xml:14 +msgid "Hand your weapon over to Derred." +msgstr "" + +#: tutorial.xml:231 +msgid "Harad's bones!" +msgstr "" + +#: tutorial.xml:1233 +msgid "Have you ever heard of safety measures?" +msgstr "" + +#: tutorial.xml:1435 +msgid "" +"Have you not thought about what could happen with your pet monsters up there?" +msgstr "" + +#: tutorial.xml:646 tutorial.xml:1987 tutorial.xml:2012 +msgid "Help!" +msgstr "" + +#: tutorial.xml:1018 +msgid "" +"Hm, right. The Lord Master said that something like this could happen. Do " +"you know how to convert this power into proper abilities?" +msgstr "" + +#: tutorial.xml:1618 +msgid "" +"Hm... it's stuck. I think I may have to temper around with this setup a bit " +"more." +msgstr "" + +#: tutorial.xml:2160 +msgid "How many slugs do you have to cut to believe they are slimy?" +msgstr "" + +#: tutorial.xml:257 +msgid "" +"I almost had that damn ogre and suddenly someone's ripping out my guts who's " +"not even near me!" +msgstr "" + +#: tutorial.xml:1772 +msgid "I am NOT doing that again." +msgstr "" + +#: tutorial.xml:1648 +msgid "I am still missing a cog." +msgstr "" + +#: tutorial.xml:789 +msgid "" +"I don't know... I don't feel like being bedridden for three weeks just " +"because of some slimy fire breath." +msgstr "" + +#: tutorial.xml:1237 +msgid "I don't waste my time crawling through kitchen corridors, Cursed One." +msgstr "" + +#: tutorial.xml:1573 +msgid "" +"I guess I would first have to stop whatever is using the crystal right now." +msgstr "" + +#: tutorial.xml:1579 +msgid "I guess not." +msgstr "" + +#: tutorial.xml:1584 +msgid "" +"I guess we would first have to stop whatever is using the crystal right now." +msgstr "" + +#: tutorial.xml:1652 +msgid "" +"I have to find an energy source and a cog before that thing will work again." +msgstr "" + +#: tutorial.xml:1881 +msgid "I hope nothing explodes." +msgstr "" + +#: tutorial.xml:937 +msgid "I just hope they have a soul." +msgstr "" + +#: tutorial.xml:293 +msgid "I see!" +msgstr "" + +#: tutorial.xml:1458 +msgid "I sent one of my workers to get a cog earlier." +msgstr "" + +#: tutorial.xml:1456 +msgid "I suppose as you suggested this plan, you have a way of repairing it?" +msgstr "" + +#: tutorial.xml:2088 +msgid "I truly am the exterminator here." +msgstr "" + +#: tutorial.xml:649 +msgid "I will work twice as hard!" +msgstr "" + +#: tutorial.xml:1062 +msgid "I wonder why this Soren knows so much about the Branded Ones..." +msgstr "" + +#: tutorial.xml:775 +msgid "I wouldn't necessarily call that 'junk'." +msgstr "" + +#: tutorial.xml:1930 +msgid "I wouldn't put it past him." +msgstr "" + +#: tutorial.xml:1571 +msgid "I'd better be careful, though." +msgstr "" + +#: tutorial.xml:261 +msgid "I'll show you the endurance capacities of magic squirters!" +msgstr "" + +#: tutorial.xml:2085 +msgid "I'm a Branded One! That is far worse than being cursed." +msgstr "" + +#: tutorial.xml:1428 +msgid "I'm someone who is stuck down here, that's who." +msgstr "" + +#: tutorial.xml:1929 +msgid "" +"I'm sure there's more to it than meets the eye. An apple elemental for " +"example." +msgstr "" + +#: tutorial.xml:363 +msgid "" +"I'm very sorry, but before that we cannot release any of you of the safety " +"area." +msgstr "" + +#: tutorial.xml:366 +msgid "" +"I'm very sorry, but before that we cannot release you of the safety area. " +"##solo" +msgstr "" + +#: tutorial.xml:1459 +msgid "" +"If he hasn't been eaten by the slugs out there, he should be back any minute " +"now." +msgstr "" + +#: tutorial.xml:1348 +msgid "" +"If it goes to pieces completely I will be trapped down here because of what " +"they've done to me." +msgstr "" + +#: tutorial.xml:1351 +msgid "" +"If it goes to pieces completely we will be trapped down here because of what " +"they've done to us." +msgstr "" + +#: tutorial.xml:1439 +msgid "If that's how it is decided, we will work here until our time comes." +msgstr "" + +#: tutorial.xml:1355 +msgid "If there is a way out of here, we'll find it." +msgstr "" + +#: tutorial.xml:2181 +msgid "" +"If they hadn't all those needless balustrades into the void, they wouldn't " +"have to mop escaped sluglings from the floor." +msgstr "" + +#: tutorial.xml:1789 +msgid "In fact, have you thought of using your powerful skills?" +msgstr "" + +#: tutorial.xml:1786 +msgid "In fact, have you thought of using your powerful skills?##solo" +msgstr "" + +#: tutorial.xml:849 +msgid "In the inventory you'll see your items. They are ordered by their size." +msgstr "" + +#: tutorial.xml:764 +msgid "Instead you can resurrect where you want after your body is destroyed." +msgstr "" + +#: tutorial.xml:753 +msgid "Is this thing really that bad?" +msgstr "" + +#: tutorial.xml:784 +msgid "It can't be all too healthy to be this smart." +msgstr "" + +#: tutorial.xml:1437 +msgid "It is through the Council's will and Akeran's wisdom." +msgstr "" + +#: tutorial.xml:782 +msgid "It is time I speak with this Windclaw. He seems to be a smart toad." +msgstr "" + +#: tutorial.xml:780 +msgid "It is time we speak with this Windclaw. He seems to be a smart toad." +msgstr "" + +#: tutorial.xml:320 +msgid "It may well be your last." +msgstr "" + +#: tutorial.xml:423 +msgid "It seems I have no choice..." +msgstr "" + +#: tutorial.xml:273 +msgid "" +"It seems someone here has greater knowledge of how Harad is keeping me alive " +"and moves me." +msgstr "" + +#: tutorial.xml:275 +msgid "" +"It seems someone here has greater knowledge of how Harad is keeping us alive " +"and moves us." +msgstr "" + +#: tutorial.xml:421 +msgid "It seems we have no choice..." +msgstr "" + +#: tutorial.xml:1783 +msgid "It still hurts being hurt, you know?" +msgstr "" + +#: tutorial.xml:1454 +msgid "It was damaged by falling rocks earlier." +msgstr "" + +#: tutorial.xml:1782 +msgid "It's not like they could kill you." +msgstr "" + +#: tutorial.xml:788 +msgid "It's only those sluglings." +msgstr "" + +#: tutorial.xml:1931 +msgid "Joking aside! We must go on." +msgstr "" + +#: tutorial.xml:1469 +msgid "" +"Just ask the master of the laboratory and he will surely give you one, if " +"you're found worthy of Akeran's blessing." +msgstr "" + +#: tutorial.xml:1813 +msgid "" +"Just click with the same mouse button you would like to use the skill with " +"on the skill icon." +msgstr "" + +#: tutorial.xml:1268 +msgid "Just great!" +msgstr "" + +#: tutorial.xml:438 +msgid "" +"Just tell us by clicking on one of us, when you change your mind. ##solo" +msgstr "" + +#: tutorial.xml:441 +msgid "Just tell us by clicking on one of us, when you change your minds." +msgstr "" + +#: tutorial.xml:313 +msgid "Keep your head, my son. Take your time to think the answer over." +msgstr "" + +#: tutorial.xml:18 +msgid "Kill all of the Fire Slugs in the enclosure." +msgstr "" + +#: tutorial.xml:22 +msgid "Kill every spawn of the behemoth." +msgstr "" + +#: tutorial.xml:352 +msgid "Kindly ask." +msgstr "" + +#: tutorial.xml:857 +msgid "Let us know when you're ready." +msgstr "" + +#: tutorial.xml:1482 +msgid "Let's just get the crystal. I'm sure we will get Akeran's blessing." +msgstr "" + +#: tutorial.xml:1581 +msgid "Let's just take it." +msgstr "" + +#: tutorial.xml:1530 +msgid "Let's just try it out." +msgstr "" + +#: tutorial.xml:934 tutorial.xml:936 +msgid "Let's put the fear of Harad into these experiments!" +msgstr "" + +#: tutorial.xml:1365 +msgid "Like hell I am! How do I get out of here?" +msgstr "" + +#: tutorial.xml:1367 +msgid "Like hell we are! How do we get out of here?" +msgstr "" + +#: tutorial.xml:1816 +msgid "" +"Look at the picture in the status bar to know if a skill is ready for use." +msgstr "" + +#: tutorial.xml:1467 +msgid "Look for a connection to a laboratory on the upper level." +msgstr "" + +#: tutorial.xml:756 +msgid "" +"Looks like a departure ticket to me. It can't be more painful than the " +"arrival." +msgstr "" + +#: tutorial.xml:294 +msgid "Lord" +msgstr "" + +#: tutorial.xml:278 +msgid "Lots of money could appease me again." +msgstr "" + +#: tutorial.xml:1063 +msgid "Mages are exceedingly strange... Every single one of them." +msgstr "" + +#: tutorial.xml:295 +msgid "Master" +msgstr "" + +#: tutorial.xml:1373 +msgid "Maybe they can help. We will wait here." +msgstr "" + +#: tutorial.xml:762 +msgid "Measures?" +msgstr "" + +#: tutorial.xml:1231 +msgid "More of those beasts?" +msgstr "" + +#: tutorial.xml:1416 +msgid "Move it you lazy maggots! This place is not building itself." +msgstr "" + +#: tutorial.xml:411 tutorial.xml:820 tutorial.xml:1029 tutorial.xml:1800 +msgid "No" +msgstr "" + +#: tutorial.xml:926 +msgid "No idea, but the Lord Master said that he speaks like this." +msgstr "" + +#: tutorial.xml:924 +msgid "No idea, but the Lord Master said that she speaks like this." +msgstr "" + +#: tutorial.xml:929 +msgid "No idea, but the Lord Master said that they speak like this." +msgstr "" + +#: tutorial.xml:1353 +msgid "No matter." +msgstr "" + +#: tutorial.xml:1780 +msgid "No thanks to you guys." +msgstr "" + +#: tutorial.xml:267 +msgid "No, Tolec. You must say that with much more authority." +msgstr "" + +#: tutorial.xml:440 +msgid "None of you will leave it until you surrender your weapons." +msgstr "" + +#: tutorial.xml:652 +msgid "Noo!" +msgstr "" + +#: tutorial.xml:1650 +msgid "Now all I need is the energy source." +msgstr "" + +#: tutorial.xml:1457 +msgid "Of course I have a plan." +msgstr "" + +#: tutorial.xml:1465 +msgid "Of course. So, where?" +msgstr "" + +#: tutorial.xml:695 +msgid "Oh Akeran! Close the gates!" +msgstr "" + +#: tutorial.xml:260 +msgid "Oh yes! The miraculous mental abilities of club swingers." +msgstr "" + +#: tutorial.xml:1059 +msgid "Oh, right!" +msgstr "" + +#: tutorial.xml:2046 +msgid "Oops" +msgstr "" + +#: tutorial.xml:1112 tutorial.xml:1141 +msgid "Open hatch" +msgstr "" + +#: tutorial.xml:1855 tutorial.xml:1871 +msgid "Open secret door" +msgstr "" + +#: tutorial.xml:1614 +msgid "Ouch, I burnt my hands!" +msgstr "" + +#: tutorial.xml:2170 +msgid "Philistine." +msgstr "" + +#: tutorial.xml:1129 +msgid "Please distribute your attribute points first." +msgstr "" + +#: tutorial.xml:283 +msgid "" +"Please excuse your somewhat unpleasant arrival. Lord Master Soren Windclaw " +"requests your presence." +msgstr "" + +#: tutorial.xml:281 +msgid "" +"Please excuse your somewhat unpleasant arrival. Lord Master Soren Windclaw " +"requests your presence. ##solo" +msgstr "" + +#: tutorial.xml:651 +msgid "Please!" +msgstr "" + +#: tutorial.xml:1444 +msgid "Preferably today." +msgstr "" + +#: tutorial.xml:24 +msgid "Quest description" +msgstr "" + +#: tutorial.xml:1105 +msgid "Quickly distribute your new points, and then let's get out of here!" +msgstr "" + +#: tutorial.xml:1792 +msgid "Really?" +msgstr "" + +#: tutorial.xml:370 +msgid "Safety area?! This is a goddamn prison!" +msgstr "" + +#: tutorial.xml:648 +msgid "Save me!" +msgstr "" + +#: tutorial.xml:755 +msgid "Size isn't everything." +msgstr "" + +#: tutorial.xml:1814 +msgid "Skills are distinguished into two groups." +msgstr "" + +#: tutorial.xml:808 +msgid "Slowly you're getting to me." +msgstr "" + +#: tutorial.xml:1566 +msgid "So, this really is the lab, and that should be the crystal" +msgstr "" + +#: tutorial.xml:769 +msgid "So? I didn't wish for this ability." +msgstr "" + +#: tutorial.xml:767 +msgid "So? None of us wished for this ability." +msgstr "" + +#: tutorial.xml:647 +msgid "Someone!" +msgstr "" + +#: tutorial.xml:2081 +msgid "Something unwritten in the book of the omniscient airpaw?" +msgstr "" + +#: tutorial.xml:1234 +msgid "Somewhere back there has to be the secret door." +msgstr "" + +#: tutorial.xml:1433 +msgid "Sorry, no. The stairway collapsed earlier." +msgstr "" + +#: tutorial.xml:2087 +msgid "Spare me your elementalist drivel and get out of my way!" +msgstr "" + +#: tutorial.xml:2093 +msgid "Spare us your elementalist drivel and get out of our way!" +msgstr "" + +#: tutorial.xml:325 +msgid "Spill it! Where are we, and who has the nerve to cross Branded Ones?!" +msgstr "" + +#: tutorial.xml:806 +msgid "" +"Surely you understand that you cannot run around here with unchecked weapons." +msgstr "" + +#: tutorial.xml:400 tutorial.xml:452 +msgid "Surrender weapons" +msgstr "" + +#: tutorial.xml:2162 +msgid "Take a look around. That stuff has to be worth a fortune!" +msgstr "" + +#: tutorial.xml:1104 +msgid "That blasted thing! I hope the walls hold out." +msgstr "" + +#: tutorial.xml:1611 +msgid "" +"That felt like standing on a single mountaintop during a thunderstorm... and " +"the energy source still won't come of." +msgstr "" + +#: tutorial.xml:342 +msgid "That guy seems to know what he's doing." +msgstr "" + +#: tutorial.xml:2164 +msgid "That stuff must be worth a fortune!" +msgstr "" + +#: tutorial.xml:232 +msgid "That was at least as nasty as the first years in hell! Where am I?" +msgstr "" + +#: tutorial.xml:1238 +msgid "" +"That's correct, Branded One. You wouldn't want to be called `harvest' now, " +"would you?" +msgstr "" + +#: tutorial.xml:805 +msgid "That's why he gave us these." +msgstr "" + +#: tutorial.xml:759 +msgid "" +"The Lord Master Windclaw feared that you would kill yourself after your " +"arrival in order to escape, so he took... measures." +msgstr "" + +#: tutorial.xml:2080 +msgid "The Lord Master didn't say anything about that..." +msgstr "" + +#: tutorial.xml:1790 +msgid "" +"The Lord Master thought that you could do considerably more than dully beat " +"your enemies." +msgstr "" + +#: tutorial.xml:1787 +msgid "" +"The Lord Master thought that you could do considerably more than dully beat " +"your enemies.##solo" +msgstr "" + +#: tutorial.xml:371 +msgid "The choice is yours." +msgstr "" + +#: tutorial.xml:2092 +msgid "The mighty Akeran truly punished them dearly." +msgstr "" + +#: tutorial.xml:2086 +msgid "The mighty Akeran truly punished you dearly." +msgstr "" + +#: tutorial.xml:1370 +msgid "The path is blocked from our side and we can't get to you." +msgstr "" + +#: tutorial.xml:850 +msgid "" +"The weapon you just obtained is a mid-sized item and thus is found in the " +"middle field." +msgstr "" + +#: tutorial.xml:932 +msgid "Then I shall put the fear of Harad into these experiments!" +msgstr "" + +#: tutorial.xml:1569 +msgid "Then he can't have any objections, can he?" +msgstr "" + +#: tutorial.xml:1372 +msgid "There should be workers down there." +msgstr "" + +#: tutorial.xml:786 +msgid "There's a back door for feeding, and word is..." +msgstr "" + +#: tutorial.xml:1434 +msgid "There's only one way down here?!" +msgstr "" + +#: tutorial.xml:1463 +msgid "These halls are not forsaken!" +msgstr "" + +#: tutorial.xml:1464 +msgid "" +"They are filled with the unfathomable wisdom of Akeran and will soon be one " +"of the greatest works in his name." +msgstr "" + +#: tutorial.xml:1376 +msgid "They better have some serious coin for all this trouble." +msgstr "" + +#: tutorial.xml:1778 +msgid "They made it!" +msgstr "" + +#: tutorial.xml:1572 +msgid "This doesn't look like I can simply take it." +msgstr "" + +#: tutorial.xml:1583 +msgid "This doesn't look like you can simply take it." +msgstr "" + +#: tutorial.xml:1436 +msgid "This is not for me to decide." +msgstr "" + +#: tutorial.xml:344 +msgid "This is not the right time to be impressed." +msgstr "" + +#: tutorial.xml:2167 +msgid "This junk?" +msgstr "" + +#: tutorial.xml:1516 +msgid "This looks like it could be a way up." +msgstr "" + +#: tutorial.xml:1470 +msgid "This man is beginning to test my patience." +msgstr "" + +#: tutorial.xml:794 +msgid "" +"To Harad! That's impossible to put up with. Give me my weapon and I'll take " +"care of that." +msgstr "" + +#: tutorial.xml:792 +msgid "" +"To Harad! That's impossible to put up with. Give us our weapons and we'll " +"take care of that." +msgstr "" + +#: tutorial.xml:451 tutorial.xml:873 tutorial.xml:1035 tutorial.xml:1140 +#: tutorial.xml:1870 +msgid "Tolec" +msgstr "" + +#: tutorial.xml:2 +msgid "Tutorial" +msgstr "" + +#: tutorial.xml:11 +msgid "Tutorial finished" +msgstr "" + +#: tutorial.xml:1232 +msgid "" +"Urk! They seem to have broken out somehow. I hope they don't breed in the " +"crevices." +msgstr "" + +#: tutorial.xml:427 +msgid "Very well. Follow me, please." +msgstr "" + +#: tutorial.xml:941 +msgid "Very well. Just cover our backs while we try to open the hatch. " +msgstr "" + +#: tutorial.xml:1835 +msgid "Very well. The secret door is here." +msgstr "" + +#: tutorial.xml:1011 +msgid "Wait a sec, Derred. They somehow seem stronger." +msgstr "" + +#: tutorial.xml:1836 +msgid "Wait a second. What if the old geezer has attached a trap to it?" +msgstr "" + +#: tutorial.xml:1426 +msgid "Wait, who are you?" +msgstr "" + +#: tutorial.xml:1440 +msgid "We all think alike here." +msgstr "" + +#: tutorial.xml:1776 +msgid "We are NOT doing that again." +msgstr "" + +#: tutorial.xml:1430 +msgid "We are people who are stuck down here, that's who." +msgstr "" + +#: tutorial.xml:752 +msgid "We can't pass there. What do we do now?" +msgstr "" + +#: tutorial.xml:356 +msgid "We cannot take any risks, and inside the council you are safe." +msgstr "" + +#: tutorial.xml:354 +msgid "We cannot take any risks, and inside the council you are safe. ##solo" +msgstr "" + +#: tutorial.xml:2094 +msgid "We truly are the exterminators here." +msgstr "" + +#: tutorial.xml:812 +msgid "" +"We were told that the first minutes are like one taking a step for the first " +"time." +msgstr "" + +#: tutorial.xml:2091 +msgid "We're Branded Ones! That is far worse than being cursed." +msgstr "" + +#: tutorial.xml:772 +msgid "" +"Well, as you are now, you can only do that at places of great magical " +"concentrations. In other words..." +msgstr "" + +#: tutorial.xml:298 +msgid "Well, if you would follow us, please?" +msgstr "" + +#: tutorial.xml:331 +msgid "" +"Well, the Lord Master has affirmed that he will explain everything in detail " +"to you." +msgstr "" + +#: tutorial.xml:327 +msgid "" +"Well, the Lord Master has affirmed that he will explain everything in detail " +"to you. ##solo" +msgstr "" + +#: tutorial.xml:1446 +msgid "Well, there might be." +msgstr "" + +#: tutorial.xml:763 +msgid "Well, we don't understand much, but it seems you don't die like us." +msgstr "" + +#: tutorial.xml:796 +msgid "Well, you're right about that..." +msgstr "" + +#: tutorial.xml:2079 +msgid "What a day. Did you know that thing could spit little monsters?" +msgstr "" + +#: tutorial.xml:264 +msgid "" +"What a disgusting ambiance. I did not desire to be here... and I had just " +"found a nice and safe place. " +msgstr "" + +#: tutorial.xml:809 +msgid "What didn't he take into consideration? He is clearly paranoid." +msgstr "" + +#: tutorial.xml:921 +msgid "What does this 'click on it' mean, anyway?" +msgstr "" + +#: tutorial.xml:335 +msgid "What have you done, you bastards?!" +msgstr "" + +#: tutorial.xml:365 +msgid "What if I don't feel like surrendering my weapons?" +msgstr "" + +#: tutorial.xml:362 +msgid "What if we don't feel like surrendering our weapons?" +msgstr "" + +#: tutorial.xml:1928 +msgid "" +"What is he researching here all the time? All those flowers can hardly be " +"for the purpose of the Council and Akeran." +msgstr "" + +#: tutorial.xml:801 +msgid "What is this supposed to be?" +msgstr "" + +#: tutorial.xml:1009 +msgid "What kind of sissy are you?" +msgstr "" + +#: tutorial.xml:536 +msgid "" +"What's keeping you? Has the transport afflicted you so much that you don't " +"even know how to walk anymore? Just click with the left mouse button at a " +"place on the ground. Then it will all come back to you on its own." +msgstr "" + +#: tutorial.xml:758 +msgid "What?" +msgstr "" + +#: tutorial.xml:802 +msgid "Where is my weapon?" +msgstr "" + +#: tutorial.xml:1784 +msgid "While we are on the topic..." +msgstr "" + +#: tutorial.xml:277 +msgid "" +"Whoever the head honcho is here: He'd better know what he's gotten himself " +"into." +msgstr "" + +#: tutorial.xml:297 +msgid "Why didn't you say so in the first place?" +msgstr "" + +#: tutorial.xml:1460 +msgid "Why don't you get an energy crystal in the meantime?" +msgstr "" + +#: tutorial.xml:2082 +msgid "Windclaw, heretic!" +msgstr "" + +#: tutorial.xml:296 +msgid "Windclaw." +msgstr "" + +#: tutorial.xml:1934 +msgid "" +"With all the damn beasts roaming around here freely, I almost think they " +"just want me as an exterminator." +msgstr "" + +#: tutorial.xml:1936 +msgid "" +"With all the damn beasts roaming around here freely, I almost think they " +"just want us as exterminators." +msgstr "" + +#: tutorial.xml:1812 +msgid "" +"With the 't'-key you open the skill window. Here you can choose a skill." +msgstr "" + +#: tutorial.xml:1461 +msgid "Without it the whole crane is useless." +msgstr "" + +#: tutorial.xml:2159 +msgid "Wow! They really believe in orderly and thorough research." +msgstr "" + +#: tutorial.xml:1357 +msgid "Yeah, even if we have to use our teeth." +msgstr "" + +#: tutorial.xml:410 tutorial.xml:819 tutorial.xml:1028 tutorial.xml:1799 +msgid "Yes" +msgstr "" + +#: tutorial.xml:360 +msgid "Yes, but that's neither here nor there!" +msgstr "" + +#: tutorial.xml:797 +msgid "" +"Yes. Considering the difficult circumstances we can do that, I guess. Here " +"you go." +msgstr "" + +#: tutorial.xml:1053 +msgid "" +"Yes. That was the thing with the big plus in the lower left corner. Just " +"click on it and distribute your attribute points." +msgstr "" + +#: tutorial.xml:1048 +msgid "" +"Yes. That was the thing with the big plus in the lower left corner. Just " +"click on it and distribute your attribute points. ##solo" +msgstr "" + +#: tutorial.xml:1609 +msgid "Yikes, it's freezing!" +msgstr "" + +#: tutorial.xml:918 +msgid "You all still know how to fight, don't you?" +msgstr "" + +#: tutorial.xml:1468 +msgid "You can go there and... borrow one, if you're lucky." +msgstr "" + +#: tutorial.xml:1052 +msgid "" +"You can upgrade your attributes every time, and sometimes you even have " +"enough energy for a new skill." +msgstr "" + +#: tutorial.xml:1047 +msgid "" +"You can upgrade your attributes every time, and sometimes you even have " +"enough energy for a new skill. ##solo" +msgstr "" + +#: tutorial.xml:1455 +msgid "" +"You could use it to get to the sewer tunnels that connect the different " +"levels of this most magnificent construction." +msgstr "" + +#: tutorial.xml:1774 +msgid "You made it!" +msgstr "" + +#: tutorial.xml:1447 +msgid "You see that crane over there?" +msgstr "" + +#: tutorial.xml:908 +msgid "You should equip your weapon first." +msgstr "" + +#: tutorial.xml:333 +msgid "You shouldn't be able to pose a threat to us at the moment." +msgstr "" + +#: tutorial.xml:329 +msgid "You shouldn't be able to pose a threat to us at the moment. ##solo" +msgstr "" + +#: tutorial.xml:916 +msgid "You still know how to fight, don't you? ##solo" +msgstr "" + +#: tutorial.xml:437 +msgid "You will not leave it until you surrender your weapon. ##solo" +msgstr "" + +#: tutorial.xml:1865 +msgid "You'd better hope there's no trap." +msgstr "" + +#: tutorial.xml:1017 +msgid "You'd better think about who you're calling `weakling' here!" +msgstr "" + +#: tutorial.xml:1371 +msgid "You'll have to find another way out." +msgstr "" + +#: tutorial.xml:1235 +msgid "You're not even sure it's there?" +msgstr "" + +#: tutorial.xml:1838 +msgid "" +"You're right. It's best if you do it, Branded One. At least nothing lasting " +"can happen that way.##female" +msgstr "" + +#: tutorial.xml:1840 +msgid "" +"You're right. It's best if you do it, Branded One. At least nothing lasting " +"can happen that way.##male" +msgstr "" + +#: tutorial.xml:1842 +msgid "" +"You're right. It's best if you do it, Branded Ones. At least nothing lasting " +"can happen that way." +msgstr "" + +#: tutorial.xml:811 +msgid "You... can still remember how to use a weapon, right?" +msgstr "" + +#: tutorial.xml:1013 +msgid "" +"Your witch stuff may have weakened me, but I take some of the power from " +"every being I kill and become stronger." +msgstr "" + +#: tutorial.xml:1015 +msgid "" +"Your witch stuff may have weakened us, but we take some of the power from " +"every being we kill and become stronger." +msgstr "" + +#: tutorial.xml:1008 +msgid "Yuck! Those things are really disgusting." +msgstr "" + +#: tutorial.xml:1568 +msgid "but there is no oh-so-blessed master here." +msgstr "" + +#: tutorial.xml:28 tutorial.xml:463 tutorial.xml:952 tutorial.xml:1079 +#: tutorial.xml:1153 tutorial.xml:1543 tutorial.xml:1709 tutorial.xml:1886 +#: tutorial.xml:2136 +msgid "elCnlLobby" +msgstr "" + +#: tutorial.xml:379 tutorial.xml:1316 tutorial.xml:1626 +msgid "elCnlLowerCaves" +msgstr ""
--- a/src/core/damage.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/damage.h Sun Jun 08 11:05:00 2014 +0200 @@ -25,7 +25,7 @@ /** * \enum AIMods - * \brief Modifikationen fuer die AI + * \brief AI modifications */ enum AIMods { @@ -35,7 +35,7 @@ /** * \struct Damage - * \brief Parameter fuer ausgeteilten Schaden + * \brief Parameter for the damage dealt */ struct Damage { @@ -43,80 +43,80 @@ /** * \var m_min_damage[4] - * \brief Gibt den minimalen Schaden fuer die vier verschiedenen Schadensarten an. + * \brief Holds the minimum damage for each of the four damage types. */ float m_min_damage[4]; /** * \var m_max_damage[4] - * \brief Gibt den maximalen Schaden fuer die vier verschiedenen Schadensarten an. + * \brief Holds the maximum damage for each of the four damage types. */ float m_max_damage[4]; /** * \var m_multiplier[4] - * \brief Multiplikatoren fuer die einzelnen Schadensarten + * \brief Multiplier for the each damage type. */ float m_multiplier[4]; /** * \var m_attack - * \brief Gibt den Attackwert an. Der Attackewert beeinflusst Trefferchance. + * \brief Specifies the attack value. The attack value influences the hit chance. */ float m_attack; /** * \var m_power - * \brief Gibt die Durchschlagskraft an. Die Durchschlagskraft beeinflusst, wie stark der Schaden durch die Ruestung gemindert wird + * \brief Specifies the piercing power. The power influences how much the damage is reduced by the armor. */ float m_power; /** * \var m_attacker_id - * \brief ID des Angreifers + * \brief ID of the attacker. */ int m_attacker_id; /** * \var Fraction::Id m_attacker_fraction - * \brief Fraktion des Angreifers + * \brief Faction of the attacker */ Fraction::Id m_attacker_fraction; /** * \var float m_crit_perc - * \brief Chance auf kritischen Treffer + * \brief Chance for critical hit */ float m_crit_perc; /** * \var m_status_mod_power - * \brief Gibt fuer alle Statusveraenderungn die Zauberkraft an. Eine Zauberkraft von 0 bedeutet, dass der betreffende Effekt nicht wirksam wird. + * \brief Specifies the spell power for all the status changes. Spell power of 0 means that the effect will have no effect at all to the target. */ short m_status_mod_power[NR_STATUS_MODS]; /** * \var short m_ai_mod_power[NR_AI_MODS] - * \brief Staerke der Einfluesse auf die AI + * \brief Influence of the effect to an AI NPC */ short m_ai_mod_power[NR_AI_MODS]; /** * \var WorldObject::Race m_extra_dmg_race - * \brief Rasse gegen den der Schaden verdreifacht wird + * \brief Specifies the race to whom the spell does tripple damage. */ WorldObject::Race m_extra_dmg_race; /** * \var m_special_flags - * \brief bitkodierte Zusammenfassung besonderer Eigenschaften des Schaden, wie besonderer Schaden gegen bestimmte Typen von Monstern. + * \brief Bitcoded summary of the damage properties. Like extra damage to specified types of monsters. */ short m_special_flags; /** * \enum DamageType - * \brief Aufzaehlung der Schadensarten + * \brief Enumeration of all damage types. */ enum DamageType { @@ -128,7 +128,7 @@ /** * \enum StatusMods - * \brief Aufzaehlung der Statusmodifikationen + * \brief Enumeration of all status mods. */ enum StatusMods { @@ -145,7 +145,7 @@ /** * \enum SpecialFlags - * \brief Aufzaehlung von Spezialeigenschaften des Schadens + * \brief Enumeration of all special properties of a damage type. */ enum SpecialFlags { @@ -158,7 +158,7 @@ /** * \enum Usage - * \brief Verwendung der Beschreibung von Schaden (unterschiedlich ausfuehrlich) + * \brief Usage of the damage description. // Verwendung der Beschreibung von Schaden (unterschiedlich ausfuehrlich) */ enum Usage { @@ -170,70 +170,70 @@ /** * \fn void toString(CharConv* cv) - * \brief Konvertiert das Objekt in einen String und schreibt ihn in der Puffer - * \param cv Ausgabepuffer + * \brief Converts the object into a string and writes it to a given buffer + * \param cv Output buffer */ void toString(CharConv* cv); /** * \fn void fromString(CharConv* cv) - * \brief Erzeugt das Objekt aus einem String - * \param cv Eingabepuffer + * \brief Creates the object from a string + * \param cv Input buffer */ void fromString(CharConv* cv); /** * \fn void init() - * \brief initialisiert die Datenfelder + * \brief Initializes all datafields */ void init(); /** * \fn void normalize() - * \brief rechnet alle Multiplikatoren in die Schadenswerte ein + * \brief Applies all multipliers to the damage values */ void normalize(); /** * \fn Damage() - * \brief Konstruktor. Belegt die Datenfelder mit 0 + * \brief Constructor. Creates all fields with 0. */ Damage(); /** * \fn static std::string getDamageTypeName(DamageType dt) - * \brief Gibt zu einem Schadenstyp den Name als String aus + * \brief Returns damage type name as a string. */ static std::string getDamageTypeName(DamageType dt); /** * \fn static std::string getDamageResistanceName(DamageType dt) - * \brief Gibt zu einem Schadenstyp den Name der Resistenz als String aus + * \brief Returns the resistance name of a damage type as a string. */ static std::string getDamageResistanceName(DamageType dt); /** * \fn static std::string getStatusModName(StatusMods sm) - * \brief Gibt zu einer Statusveraenderung den Name als String aus + * \brief Returns the status change name as a string. */ static std::string getStatusModName(StatusMods sm); /** * \fn float getSumMinDamage() - * \brief Gibt die Summe des Minimalschaden ueber die Schadensarten aus + * \brief Returns the sum of the minimal damage for all damage types. */ float getSumMinDamage(); /** * \fn float getSumMaxDamage() - * \brief Gibt die Summe des Maximalschadens ueber die Schadensarten aus + * \brief Returns the sum of the maximal damage for all damage types. */ float getSumMaxDamage(); /** * \fn std::string getDamageString((Usage usage= NORMAL) - * \brief Erzeugt einen String der den angegebenen Schaden anzeigt - * \param usage Gibt an wofuer die Beschreibung verwendet wird (beeinflusst welche Daten angegeben werden) + * \brief Creates a string which displays the specified damage. + * \param usage Specifies what the string is used for. This influences which data will be returned. * \param rarityColor color used to display magically enhanced values * \param magic_mods bitset with ones set for magically enhanced values (see \ref ItemFactory::ItemMod ) */ @@ -241,21 +241,21 @@ /** * \fn int getValue(std::string valname) - * \brief Schiebt den gewuenschten Attributwert eines Objektes auf den Lua Stack - * \param valname Name des Wertes + * \brief Pushes the value of an attribute to the lua stack + * \param valname Value name */ int getValue(std::string valname); /** * \fn virtual bool setValue(std::string valname) - * \brief Setzt den gewuenschten Attributwert eines Objektes - * \param valname Name des Wertes + * \brief Sets the attribute value of an object + * \param valname Value name */ bool setValue(std::string valname); /** * \fn void operator=(Damage& other) - * \brief Zuweisungsoperator + * \brief Assignment operator overload */ void operator=(Damage& other); };
--- a/src/core/dialogue.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/dialogue.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -37,18 +37,18 @@ { if (m_topics.count(topic) != 0) { - WARNING("duplicate topic %s",topic.c_str()); + WARNING("duplicate topic %s", topic.c_str()); delete m_topics[topic]; m_topics.erase(topic); } - m_topics.insert(std::make_pair(topic,speech)); + m_topics.insert(std::make_pair(topic, speech)); } void TopicList::addStartTopic(TranslatableString text, std::string topic) { - m_start_topics.push_back(std::make_pair(text,topic)); + m_start_topics.push_back(std::make_pair(text, topic)); } Event* TopicList::getSpeakTopic(std::string topic) @@ -57,13 +57,14 @@ it = m_topics.find(topic); if (it == m_topics.end()) + { return 0; + } return it->second; } - void NPCTrade::TradeObject::operator=(TradeObject& other) { m_subtype = other.m_subtype; @@ -86,58 +87,62 @@ bool NPCTrade::checkRefresh(Equipement* &equ) { // update, wenn das Inventar noch garnicht existiert oder zu alt ist - if (equ ==0 || m_refresh_timer.getTime() > m_refresh_time) + if (equ == 0 || m_refresh_timer.getTime() > m_refresh_time) { if (equ == 0) { - equ = new Equipement(100,100,100); + equ = new Equipement(100, 100, 100); } equ->clear(); - Item* itm=0; + Item* itm = 0; Item::Type type; std::list<TradeObject>::iterator it; // Schleife ueber alle handelbaren Objekte for (it = m_trade_objects.begin(); it != m_trade_objects.end(); ++it) { // nicht magische Objekte erzeugen - for (int i=0; i< it->m_number; ++i) + for (int i = 0; i < it->m_number; ++i) { if (Random::random() > it->m_probability) + { continue; - + } + type = ItemFactory::getBaseType(it->m_subtype); - itm = ItemFactory::createItem(type,it->m_subtype); + itm = ItemFactory::createItem(type, it->m_subtype); if (itm != 0) { itm->m_price = (int) (itm->m_price * m_cost_multiplier); // einfuegen und erfolg testen - if (equ->insertItem(itm,false,false) == Equipement::NONE) + if (equ->insertItem(itm, false, false) == Equipement::NONE) { delete itm; } } else { - ERRORMSG("could not create Item %s",it->m_subtype.c_str()); + ERRORMSG("could not create Item %s", it->m_subtype.c_str()); } } // magische Objekte erzeugen float magic; - for (int i=0; i< it->m_number_magical; ++i) + for (int i = 0; i < it->m_number_magical; ++i) { if (Random::random() > it->m_probability) + { continue; - + } + type = ItemFactory::getBaseType(it->m_subtype); magic = Random::randrangef(it->m_min_enchant, it->m_max_enchant); - itm = ItemFactory::createItem(type,it->m_subtype,0,magic,Item::MAGICAL); + itm = ItemFactory::createItem(type, it->m_subtype, 0, magic, Item::MAGICAL); itm->m_price = (int) (itm->m_price * m_cost_multiplier); // einfuegen und erfolg testen - if (equ->insertItem(itm,false,false) == Equipement::NONE) + if (equ->insertItem(itm, false, false) == Equipement::NONE) { delete itm; } @@ -150,10 +155,9 @@ } - -Dialogue::Dialogue(Region* region, std::string topic_base,int id) +Dialogue::Dialogue(Region* region, std::string topic_base, int id) { - if (id ==0) + if (id == 0) { m_id = World::getWorld()->getValidId(); } @@ -171,7 +175,7 @@ m_nr_players =0; m_event_mask = 0; - for (int i=0; i<4; i++) + for (int i = 0; i < 4; i++) { m_active_speaker[i] =0; } @@ -188,7 +192,7 @@ for (it = m_speaker.begin(); it != m_speaker.end(); ++it) { wo = m_region->getObject(it->second); - if (wo !=0 && wo->isCreature()) + if (wo != 0 && wo->isCreature()) { cr = static_cast<Creature*>(wo); cr ->clearSpeakText(); @@ -214,13 +218,15 @@ void Dialogue::addSpeaker(int id, std::string refname, bool force) { - if (id ==0) + if (id == 0) + { return; - + } + // Pruefen, ob die Kreatur existiert WorldObject* wo =0; wo = m_region->getObject(id); - if (wo ==0 || !wo->isCreature()) + if (wo == 0 || !wo->isCreature()) { ERRORMSG("cant add %i: %s to dialogue: not a creature", id, refname.c_str()); return; @@ -679,7 +685,7 @@ { WorldObject* wo =0; wo = m_region->getObject(id); - if (wo ==0 || !wo->isCreature()) + if (wo == 0 || !wo->isCreature()) { ERRORMSG("Speaker %i is not a creature", id); return Dialogue::UNKNOWN; @@ -697,13 +703,24 @@ void Dialogue::setSpeakerPosition(int id, Position pos) { - if (pos<NONE || pos>AUTOMATIC || pos == UNKNOWN || m_speaker_state.count(id) == 0) + // Check for invalid input. + if (pos < NONE || pos > AUTOMATIC || pos == UNKNOWN || m_speaker_state.count(id) == 0) + { return; + } - m_event_mask =1; + m_event_mask = 1; if (pos == AUTOMATIC) + { pos = calcSpeakerPosition(id); + + // After calculation, re-check the output for validity, as it may be set to invalid by the called function. + if (pos <= NONE || pos == UNKNOWN) + { + return; + } + } // Spieler entfernen // bisherige Position ermitteln:
--- a/src/core/document.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/document.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -857,7 +857,6 @@ if (m_temp_player == 0) { // Show a notification. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::FrameWindow* message = (CEGUI::FrameWindow*) CEGUIUtility::getWindow("WarningDialogWindow"); message->setInheritsAlpha(false); message->setVisible(true); @@ -878,7 +877,6 @@ if (m_temp_player == 0) { // Show a notification. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::FrameWindow* message = (CEGUI::FrameWindow*) CEGUIUtility::getWindow("WarningDialogWindow"); message->setInheritsAlpha(false); message->setVisible(true); @@ -1425,7 +1423,7 @@ } else if (dest == SHOW_ITEMLABELS) { - getGUIState()->m_item_labels = true; + getGUIState()->m_item_labels = !getGUIState()->m_item_labels; } else if (dest >=USE_POTION && dest < USE_POTION+10) { @@ -1557,20 +1555,8 @@ bool Document::onKeyRelease(KeyCode key) { - if (m_gui_state.m_pressed_key != 0) - { - m_gui_state.m_pressed_key = 0; - } - - ShortkeyDestination dest = Options::getInstance()->getMappedDestination(key); - if (dest != 0) - { - if (dest == SHOW_ITEMLABELS) - { - getGUIState()->m_item_labels = false; - } - } - return true; + //Currently there's no key that needs to be treated at release action. + return true; } void Document::update(float time) @@ -1991,7 +1977,6 @@ void Document::showWarning (const std::string& textMessage) { // Show a notification. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); if (! CEGUIUtility::isWindowPresent ("WarningDialogWindow")) { SW_DEBUG ("Could not display the warning widget: [WarningDialogWindow]"); @@ -2013,8 +1998,6 @@ void Document::hideWarning () { // Show a notification. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - if (CEGUIUtility::isWindowPresent ("WarningDialogWindow")) { CEGUI::Window* widget = CEGUIUtility::getWindow("WarningDialogWindow"); @@ -2036,7 +2019,6 @@ void Document::showQuestionDialog () { // Show a notification. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::String widgetName = CEGUIUtility::getNameForWidget ("MainMenu/MainMenuRoot/QuestionInfoRoot"); if (! CEGUIUtility::isWindowPresent (widgetName)) { @@ -2058,7 +2040,6 @@ void Document::hideQuestionDialog () { // Show a notification. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::String widgetName = CEGUIUtility::getNameForWidget ("MainMenu/MainMenuRoot/QuestionInfoRoot"); if (CEGUIUtility::isWindowPresent (widgetName)) {
--- a/src/core/document.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/document.h Sun Jun 08 11:05:00 2014 +0200 @@ -653,7 +653,7 @@ /** * \fn bool onKeyRelease(KeyCode key) - * \brief Behandelt loslassen einer Taste + * \brief Treats and releases a key */ bool onKeyRelease(KeyCode key);
--- a/src/core/fixedbase.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/fixedbase.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -40,27 +40,32 @@ elem->SetAttribute("layer","NOCOLLISION"); } + TiXmlNode* linkedNode = NULL; TiXmlElement* geom_node = elem->FirstChildElement("Geometry"); if (geom_node == 0) { geom_node = new TiXmlElement("Geometry"); - elem->LinkEndChild(geom_node); + linkedNode = elem->LinkEndChild(geom_node); } - if (m_shape.m_type == Shape::CIRCLE) - { - geom_node->SetAttribute("shape","CIRCLE"); - geom_node->SetDoubleAttribute("radius",m_shape.m_radius); - geom_node->RemoveAttribute("extent_x"); - geom_node->RemoveAttribute("extent_y"); - } - else - { - geom_node->SetAttribute("shape","RECT"); - geom_node->SetDoubleAttribute("extent_x",m_shape.m_extent.m_x); - geom_node->SetDoubleAttribute("extent_y",m_shape.m_extent.m_y); - geom_node->RemoveAttribute("radius"); - } + if (linkedNode != NULL) + { + // Only use geom_node if it was not deleted (can be deleted when linked). + if (m_shape.m_type == Shape::CIRCLE) + { + geom_node->SetAttribute("shape","CIRCLE"); + geom_node->SetDoubleAttribute("radius",m_shape.m_radius); + geom_node->RemoveAttribute("extent_x"); + geom_node->RemoveAttribute("extent_y"); + } + else + { + geom_node->SetAttribute("shape","RECT"); + geom_node->SetDoubleAttribute("extent_x",m_shape.m_extent.m_x); + geom_node->SetDoubleAttribute("extent_y",m_shape.m_extent.m_y); + geom_node->RemoveAttribute("radius"); + } + } } void FixedObjectData::operator=(const FixedObjectData& other)
--- a/src/core/gettext.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/gettext.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -116,6 +116,7 @@ winLanguageMappings_["ru"] = 0x0419; winLanguageMappings_["uk"] = 0x0422; winLanguageMappings_["es"] = 0xC0A; + winLanguageMappings_["fr"] = 0x40C; #endif }
--- a/src/core/nlfgclientnetwork.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/nlfgclientnetwork.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -124,7 +124,8 @@ return; } - unsigned int rel; + unsigned int rel; + if (reliability == NET_RELIABLE) { rel = RELIABLE;
--- a/src/core/nlfgnetworkpacket.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/nlfgnetworkpacket.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -17,35 +17,42 @@ #include "nlfgnetworkpacket.h" NLFGNetworkPacket::NLFGNetworkPacket() -: m_data(NULL), - m_length(0) + : m_data(NULL), + m_packet(NULL), + m_length(0), + m_timestamp(0) { - m_timestamp = time(NULL); - m_packet = new NLFG_Message; - nlfg_init_packet(m_packet); - - nlfg_writeByte(m_packet, ID_TIMESTAMP); - nlfg_writeInteger(m_packet, m_timestamp); - nlfg_setId(m_packet, ID_USER_PACKET_ENUM); + m_timestamp = time(NULL); + m_packet = new NLFG_Message; + nlfg_init_packet(m_packet); + + nlfg_writeByte(m_packet, ID_TIMESTAMP); + nlfg_writeInteger(m_packet, m_timestamp); + nlfg_setId(m_packet, ID_USER_PACKET_ENUM); } // NLFGNetworkPacket does not copy the data from RakNet packet // direct content from packet is used instead NLFGNetworkPacket::NLFGNetworkPacket(NLFG_Message* packet) { - m_data = packet->data; - m_length = packet->size; + m_data = packet->data; + m_length = packet->size; - if (nlfg_readByte(packet) == ID_TIMESTAMP) - { - m_timestamp = nlfg_readInteger(packet); - } - else - { - m_timestamp = time(NULL); - } - - m_version = nlfg_readInteger(packet); // this is written by Network::createPacket - - m_packet = packet; + if (nlfg_readByte(packet) == ID_TIMESTAMP) + { + m_timestamp = nlfg_readInteger(packet); + } + else + { + m_timestamp = time(NULL); + } + + m_version = nlfg_readInteger(packet); // this is written by Network::createPacket + + m_packet = packet; } + +NLFGNetworkPacket::~NLFGNetworkPacket() +{ + // TODO(Augustin Preda, 2014.04.10): should the m_packet member be deleted? +}
--- a/src/core/nlfgnetworkpacket.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/nlfgnetworkpacket.h Sun Jun 08 11:05:00 2014 +0200 @@ -18,248 +18,271 @@ #define ID_TIMESTAMP 23 +// +// C system headers +// +#include <time.h> + +// +// C++ system headers +// + +// Allow using std::max +#include <algorithm> +#include <string> + +// +// Other libraries' headers +// + +// none + +// +// This project's headers +// + #include "networkpacket.h" #include "nlfg.h" -#include <time.h> #include "network.h" /** * Class for data sent or received with NLFG */ -class NLFGNetworkPacket : public NetworkPacket +class NLFGNetworkPacket + : public NetworkPacket { - public: - /** - * \brief Constructor - * Creates a new packet and writes the current time as timestamp - */ - NLFGNetworkPacket(); + public: + /** + * \brief Constructor + * Creates a new packet and writes the current time as timestamp + */ + NLFGNetworkPacket(); + + /** + * \brief Creates a new packet from a RakNet::Packet + * \param packet RakNet Packet + */ + explicit NLFGNetworkPacket(NLFG_Message* packet); + + /** + * \brief Destructor + */ + virtual ~NLFGNetworkPacket(); - /** - * \brief Creates a new packet from a RakNet::Packet - * \param packet RakNet Packet - */ - NLFGNetworkPacket(NLFG_Message* packet); + /** + * \brief writes raw data to the buffer + * \param data raw data + * \param size length of data in bytes + */ + virtual void toBuffer(const char* data, unsigned int size) + { + nlfg_writeStringWithSize(m_packet, data, size); + } + + /** + * \brief reads raw data from buffer + * \param data output buffer for raw data + * \param size length of data in bytes + */ + virtual void fromBuffer(char* data, unsigned int size) + { + nlfg_readStringWithSize(m_packet, data, size); + } - /** - * \brief writes raw data to the buffer - * \param data raw data - * \param size length of data in bytes - */ - virtual void toBuffer(const char* data, unsigned int size) - { - nlfg_writeStringWithSize(m_packet, data, size); - } + /** + * \brief writes a string to the buffer + * \param s String + */ + virtual void toBuffer(const std::string& s) + { + toBuffer(static_cast<int>(s.size())); + toBuffer(s.data(), s.size()); + } + /** + * \brief reads a string from the buffer + * \param s String + */ + virtual void fromBuffer(std::string& s) + { + int len; + fromBuffer(len); - /** - * \brief reads raw data from buffer - * \param data output buffer for raw data - * \param size length of data in bytes - */ - virtual void fromBuffer(char* data, unsigned int size) - { - nlfg_readStringWithSize(m_packet, data, size); - } + char * data = new char[len]; + fromBuffer(data, len); + s.assign(data, len); + delete [] data; + } - /** - * \brief writes a string to the buffer - * \param s String - */ - virtual void toBuffer(const std::string& s) - { - toBuffer(static_cast<int>(s.size())); - toBuffer(s.data(),s.size()); - } + /** + * \brief writes a double to the buffer + * \param d double + */ + virtual void toBuffer(const double d) + { + nlfg_writeDouble(m_packet, d); + } + /** + * \brief reads a double from the buffer + * \param d double + */ + virtual void fromBuffer(double& d) + { + d = nlfg_readDouble(m_packet); + } - /** - * \brief reads a string from the buffer - * \param s String - */ - virtual void fromBuffer(std::string& s) - { - int len; - fromBuffer(len); + /** + * \brief writes a float to the buffer + * \param f float + */ + virtual void toBuffer(const float f) + { + nlfg_writeFloat(m_packet, f); + } + + /** + * \brief reads a float from the buffer + * \param f float + */ + virtual void fromBuffer(float& f) + { + f = nlfg_readFloat(m_packet); + } - char * data = new char[len]; - fromBuffer(data,len); - s.assign(data,len); - delete [] data; - } + /** + * \brief writes an int to the buffer + * \param i int + */ + virtual void toBuffer(const int i) + { + nlfg_writeInteger(m_packet, i); + } - /** - * \brief writes a double to the buffer - * \param d double - */ - virtual void toBuffer(const double d) - { - nlfg_writeDouble(m_packet, d); - } + /** + * \brief reads an int from the buffer + * \param i int + */ + virtual void fromBuffer(int& i) + { + i = nlfg_readInteger(m_packet); + } + /** + * \brief writes a short to the buffer + * \param s short + */ + virtual void toBuffer(const short s) + { + nlfg_writeShort(m_packet, s); + } - /** - * \brief reads a double from the buffer - * \param d double - */ - virtual void fromBuffer(double& d) - { - d = nlfg_readDouble(m_packet); - } + /** + * \brief reads a short from the buffer + * \param s short + */ + virtual void fromBuffer(short& s) + { + s = nlfg_readShort(m_packet); + } - /** - * \brief writes a float to the buffer - * \param f float - */ - virtual void toBuffer(const float f) - { - nlfg_writeFloat(m_packet, f); - } + /** + * \brief writes a char to the buffer + * \param c char + */ + virtual void toBuffer(const char c) + { + nlfg_writeByte(m_packet, c); + } + + /** + * \brief reads a char from the buffer + * \param c char + */ + virtual void fromBuffer(char& c) + { + c = nlfg_readByte(m_packet); + } + /** + * \brief writes a char to the buffer + * \param c char + */ + virtual void toBuffer(const unsigned char c) + { + nlfg_writeByte(m_packet, c); + } - /** - * \brief reads a float from the buffer - * \param f float - */ - virtual void fromBuffer(float& f) - { - f = nlfg_readFloat(m_packet); - } + /** + * \brief reads a char from the buffer + * \param c char + */ + virtual void fromBuffer(unsigned char& c) + { + c = nlfg_readByte(m_packet); + } - /** - * \brief writes an int to the buffer - * \param i int - */ - virtual void toBuffer(const int i) - { - nlfg_writeInteger(m_packet, i); - } + /** + * \brief returns the number of bits read from stream so far + */ + virtual int readBits() + { + // the offset is for counteracting prepended internal data + return nlfg_getPosition(m_packet) - 13; + } - /** - * \brief reads an int from the buffer - * \param i int - */ - virtual void fromBuffer(int& i) - { - i = nlfg_readInteger(m_packet); - } - - /** - * \brief writes a short to the buffer - * \param s short - */ - virtual void toBuffer(const short s) - { - nlfg_writeShort(m_packet, s); - } - - - /** - * \brief reads a short from the buffer - * \param s short - */ - virtual void fromBuffer(short& s) - { - s = nlfg_readShort(m_packet); - } + /** + * \brief returns the number of bits written to stream so far + */ + virtual int writeBits() + { + // the offset is for counteracting prepended internal data + return nlfg_getPosition(m_packet) - 9; + } - /** - * \brief writes a char to the buffer - * \param c char - */ - virtual void toBuffer(const char c) - { - nlfg_writeByte(m_packet, c); - } - - - /** - * \brief reads a char from the buffer - * \param c char - */ - virtual void fromBuffer(char& c) - { - c = nlfg_readByte(m_packet); - } - - /** - * \brief writes a char to the buffer - * \param c char - */ - virtual void toBuffer(const unsigned char c) - { - nlfg_writeByte(m_packet, c); - } - + /** + * \brief returns the delay of the packet in milliseconds + */ + virtual float getDelay() + { + return std::max( + 0.0f, + static_cast<float>(time(NULL)) - static_cast<float>(m_timestamp)); + } - /** - * \brief reads a char from the buffer - * \param c char - */ - virtual void fromBuffer(unsigned char& c) - { - c = nlfg_readByte(m_packet); - } + /** + * \brief Returns the NLFG packet that was used to create the object + */ + NLFG_Message* getPacket() const + { + return m_packet; + } - /** - * \brief returns the number of bits read from stream so far - */ - virtual int readBits() - { - // the offset is for counteracting prepended internal data - return nlfg_getPosition(m_packet) - 13; - } - - - /** - * \brief returns the number of bits written to stream so far - */ - virtual int writeBits() - { - // the offset is for counteracting prepended internal data - return nlfg_getPosition(m_packet) - 9; - } + /** + * \brief Returns the underlying bitstream (for internal use only) + */ + char* getData() + { + return m_packet->data; + } - /** - * \brief returns the delay of the packet in milliseconds - */ - virtual float getDelay() - { - return std::max(0.0f,static_cast<float>(time(NULL))-static_cast<float>(m_timestamp)); - } - - /** - * \brief Returns the NLFG packet that was used to create the object - */ - NLFG_Message* getPacket() const - { - return m_packet; - } + private: + /** + * \brief stream for reading and writing the data + */ + char *m_data; + int m_length; - /** - * \brief Returns the underlying bitstream (for internal use only) - */ - char* getData() - { - return m_packet->data; - } - private: - /** - * \brief stream for reading and writing the data - */ - char *m_data; - int m_length; + /** + * \brief Time when the packet was created + */ + unsigned int m_timestamp; - /** - * \brief Time when the packet was created - */ - unsigned int m_timestamp; - - /** - * \brief Pointer to the RakNet Packet that was used to create this object - */ - NLFG_Message* m_packet; + /** + * \brief Pointer to the RakNet Packet that was used to create this object + */ + NLFG_Message* m_packet; }; -#endif // __SUMWARS_CORE_NLFGNETWORKPACKET_H__ +#endif // __SUMWARS_CORE_NLFGNETWORKPACKET_H__
--- a/src/core/options.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/options.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -104,7 +104,8 @@ m_default_savegame = ""; - // Also set this in the initialization. In case the options file is edited and no section with these settings is found, the defaults are loaded here. + // Also set this in the initialization. In case the options file is edited and no section with + // these settings is found, the defaults are loaded here. setCeguiSkin ("SWB"); setCeguiCursorSkin ("SWBCursors"); @@ -120,15 +121,15 @@ { init(); - // shortkeys that may be changed - m_shortkey_map[OIS::KC_I] = SHOW_INVENTORY ; - m_shortkey_map[OIS::KC_C] = SHOW_CHARINFO; - m_shortkey_map[OIS::KC_T] = SHOW_SKILLTREE; - m_shortkey_map[OIS::KC_P] = SHOW_PARTYMENU; - m_shortkey_map[OIS::KC_M] = SHOW_MINIMAP; - m_shortkey_map[OIS::KC_B] = SHOW_CHATBOX; - m_shortkey_map[OIS::KC_Q] = SHOW_QUESTINFO; - m_shortkey_map[OIS::KC_W] = SWAP_EQUIP; + // Shortkeys that may be changed + m_shortkey_map[OIS::KC_I] = SHOW_INVENTORY; + m_shortkey_map[OIS::KC_C] = SHOW_CHARINFO; + m_shortkey_map[OIS::KC_T] = SHOW_SKILLTREE; + m_shortkey_map[OIS::KC_P] = SHOW_PARTYMENU; + m_shortkey_map[OIS::KC_M] = SHOW_MINIMAP; + m_shortkey_map[OIS::KC_B] = SHOW_CHATBOX; + m_shortkey_map[OIS::KC_Q] = SHOW_QUESTINFO; + m_shortkey_map[OIS::KC_W] = SWAP_EQUIP; m_shortkey_map[OIS::KC_LMENU] = SHOW_ITEMLABELS; @@ -162,7 +163,7 @@ { for ( child = root->FirstChild(); child != 0; child = child->NextSibling()) { - if (child->Type()==TiXmlNode::TINYXML_ELEMENT) + if (child->Type() == TiXmlNode::TINYXML_ELEMENT) { attr.parseElement(child->ToElement()); @@ -170,13 +171,13 @@ { for ( child2 = child->FirstChild(); child2 != 0; child2 = child2->NextSibling()) { - if (child2->Type()==TiXmlNode::TINYXML_ELEMENT && !strcmp(child2->Value(), "Shortkey")) + if (child2->Type() == TiXmlNode::TINYXML_ELEMENT && !strcmp(child2->Value(), "Shortkey")) { attr.parseElement(child2->ToElement()); int key, target; - attr.getInt("key",key); - attr.getInt("target",target); + attr.getInt("key", key); + attr.getInt("target", target); if (key != 0 && target != 0) { setShortkey(key, (ShortkeyDestination) target); @@ -199,16 +200,16 @@ else if (!strcmp(child->Value(), "Language")) { std::string locale; - attr.getString("locale",locale); + attr.getString("locale", locale); setLocale(locale); } else if (!strcmp(child->Value(), "Gameplay")) { int diff; - attr.getInt("difficulty",diff); + attr.getInt("difficulty", diff); setDifficulty( static_cast<Difficulty>(diff)); float text_speed; - attr.getFloat("text_speed",text_speed); + attr.getFloat("text_speed", text_speed); setTextSpeed( text_speed); int showConsoleWindow; @@ -220,9 +221,9 @@ std::string host; int port; int max_players; - attr.getString("host",host,"127.0.0.1"); - attr.getInt("port",port,5331); - attr.getInt("max_players",max_players,8); + attr.getString("host", host, "127.0.0.1"); + attr.getInt("port", port, 5331); + attr.getInt("max_players", max_players, 8); setPort(port); setServerHost(host); @@ -280,9 +281,9 @@ } setCeguiCursorSkin (ceguiCursorSkin); } - else if (child->Type()!=TiXmlNode::TINYXML_COMMENT) + else if (child->Type() != TiXmlNode::TINYXML_COMMENT) { - WARNING("unexpected element in options.xml: %s",child->Value()); + WARNING("unexpected element in options.xml: %s", child->Value()); } } } @@ -309,73 +310,118 @@ TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "UTF-8", "" ); doc.LinkEndChild( decl ); + TiXmlNode* linkedNode = NULL; + TiXmlElement* root; root = new TiXmlElement("Options"); - doc.LinkEndChild(root); + linkedNode = doc.LinkEndChild(root); + + if (linkedNode == NULL) + { + // Failed to link the root item. + return false; + } - TiXmlElement * element; - element = new TiXmlElement( "Shortkeys" ); - root->LinkEndChild(element); + TiXmlElement* element; + element = new TiXmlElement("Shortkeys"); + linkedNode = root->LinkEndChild(element); + + if (linkedNode != NULL) + { + // element is not destroyed - TiXmlElement * subele; - ShortkeyMap::iterator it; - for (it = m_shortkey_map.begin(); it != m_shortkey_map.end(); ++it) - { - subele = new TiXmlElement("Shortkey"); - subele->SetAttribute("key",it->first); - subele->SetAttribute("target",it->second); - element->LinkEndChild(subele); - } + TiXmlElement * subele; + ShortkeyMap::iterator it; + for (it = m_shortkey_map.begin(); it != m_shortkey_map.end(); ++it) + { + subele = new TiXmlElement("Shortkey"); + subele->SetAttribute("key", it->first); + subele->SetAttribute("target", it->second); + element->LinkEndChild(subele); + } + } + + element = new TiXmlElement("Gameplay"); + linkedNode = root->LinkEndChild(element); - element = new TiXmlElement( "Gameplay" ); - root->LinkEndChild(element); - element->SetAttribute("difficulty",getDifficulty()); - element->SetDoubleAttribute("text_speed",getTextSpeed()); - element->SetAttribute ("showConsoleWindow", getShowConsoleWindow ()); + if (linkedNode != NULL) + { + // element is not destroyed + element->SetAttribute("difficulty", getDifficulty()); + element->SetDoubleAttribute("text_speed", getTextSpeed()); + element->SetAttribute ("showConsoleWindow", getShowConsoleWindow ()); + } - element = new TiXmlElement( "Music" ); - root->LinkEndChild(element); - element->SetDoubleAttribute("volume",getMusicVolume()); + element = new TiXmlElement("Music"); + linkedNode = root->LinkEndChild(element); + if (linkedNode != NULL) + { + // element is not destroyed + element->SetDoubleAttribute("volume", getMusicVolume()); + } - element = new TiXmlElement( "Sound" ); - element->SetDoubleAttribute("volume",getSoundVolume()); + element = new TiXmlElement("Sound"); + element->SetDoubleAttribute("volume", getSoundVolume()); root->LinkEndChild(element); element = new TiXmlElement("Graphic"); - root->LinkEndChild(element); - element->SetAttribute("ehl_color", getEnemyHighlightColor().c_str()); - element->SetAttribute("grabMouseWhenWindowed", getGrabMouseInWindowedMode()); - element->SetAttribute("display_mode", getUsedDisplayMode()); - element->SetAttribute ("shadowMode", getShadowMode ()); - - element = new TiXmlElement( "Language" ); - root->LinkEndChild(element); - element->SetAttribute("locale",getLocale().c_str()); + linkedNode = root->LinkEndChild(element); + if (linkedNode != NULL) + { + // element is not destroyed + element->SetAttribute("ehl_color", getEnemyHighlightColor().c_str()); + element->SetAttribute("grabMouseWhenWindowed", getGrabMouseInWindowedMode()); + element->SetAttribute("display_mode", getUsedDisplayMode()); + element->SetAttribute ("shadowMode", getShadowMode ()); + } + + element = new TiXmlElement("Language"); + linkedNode = root->LinkEndChild(element); + if (linkedNode != NULL) + { + // element is not destroyed + element->SetAttribute("locale", getLocale().c_str()); + } element = new TiXmlElement( "Network" ); - root->LinkEndChild(element); - element->SetAttribute("host",getServerHost().c_str()); - element->SetAttribute("port",getPort()); - element->SetAttribute("max_players",getMaxNumberPlayers()); - - element = new TiXmlElement( "Savegame" ); - root->LinkEndChild(element); - element->SetAttribute("file",getDefaultSavegame().c_str()); + linkedNode = root->LinkEndChild(element); + if (linkedNode != NULL) + { + // element is not destroyed + element->SetAttribute("host", getServerHost().c_str()); + element->SetAttribute("port", getPort()); + element->SetAttribute("max_players", getMaxNumberPlayers()); + } - element = new TiXmlElement( "Internal" ); - root->LinkEndChild(element); - element->SetAttribute("cegui_skin",getCeguiSkin().c_str()); - element->SetAttribute("cegui_cursor_skin",getCeguiCursorSkin().c_str()); + element = new TiXmlElement("Savegame"); + linkedNode = root->LinkEndChild(element); + if (linkedNode != NULL) + { + // element is not destroyed + element->SetAttribute("file", getDefaultSavegame().c_str()); + } + + element = new TiXmlElement("Internal"); + linkedNode = root->LinkEndChild(element); + if (linkedNode != NULL) + { + // element is not destroyed + element->SetAttribute("cegui_skin", getCeguiSkin().c_str()); + element->SetAttribute("cegui_cursor_skin", getCeguiCursorSkin().c_str()); + } if (!m_debug_options.empty()) { - element = new TiXmlElement( "Debug" ); - root->LinkEndChild(element); - std::map<std::string, std::string>::iterator it; - for(it = m_debug_options.begin(); it != m_debug_options.end(); ++it) - { - element->SetAttribute(it->first.c_str(), it->second.c_str()); - } + element = new TiXmlElement("Debug"); + linkedNode = root->LinkEndChild(element); + if (linkedNode) + { + std::map<std::string, std::string>::iterator it; + for (it = m_debug_options.begin(); it != m_debug_options.end(); ++it) + { + element->SetAttribute(it->first.c_str(), it->second.c_str()); + } + } } doc.SaveFile( filename.c_str()); @@ -385,7 +431,7 @@ KeyCode Options::getMappedKey(ShortkeyDestination sd) { std::map<KeyCode, ShortkeyDestination>::iterator it; - for (it=m_shortkey_map.begin(); it!= m_shortkey_map.end();++it) + for (it = m_shortkey_map.begin(); it != m_shortkey_map.end(); ++it) { if (it->second == sd) { @@ -402,15 +448,19 @@ it = m_shortkey_map.find(key); if (it != m_shortkey_map.end()) + { return it->second; + } return NO_KEY; } -bool Options:: setShortkey(KeyCode key,ShortkeyDestination dest) +bool Options:: setShortkey(KeyCode key, ShortkeyDestination dest) { if (isSpecialKey(key)) + { return false; + } // key that was mapped to the action dest so far KeyCode oldkey = getMappedKey(dest); @@ -421,7 +471,7 @@ } // create new mapping - m_shortkey_map[key]=dest; + m_shortkey_map[key] = dest; return true; } @@ -462,8 +512,11 @@ { locstr = locale; } + if (locstr == "") + { locstr = "#default#"; + } return locstr; } @@ -480,30 +533,30 @@ { if (valname =="server_host") { - lua_pushstring(EventSystem::getLuaState() , m_server_host.c_str() ); + lua_pushstring(EventSystem::getLuaState(), m_server_host.c_str() ); return 1; } else if (valname =="port") { - lua_pushnumber(EventSystem::getLuaState() , m_port ); + lua_pushnumber(EventSystem::getLuaState(), m_port ); return 1; } else if (valname =="difficulty") { - std::string values[4] = {"easy","normal","hard","insane"}; - lua_pushstring(EventSystem::getLuaState() , values[m_difficulty- EASY].c_str() ); + std::string values[4] = {"easy", "normal", "hard", "insane"}; + lua_pushstring(EventSystem::getLuaState(), values[m_difficulty- EASY].c_str() ); return 1; } else if (valname =="text_speed") { - lua_pushnumber(EventSystem::getLuaState() , m_text_speed ); + lua_pushnumber(EventSystem::getLuaState(), m_text_speed ); return 1; } else { if (m_debug_options.count(valname)) { - lua_pushstring(EventSystem::getLuaState() , m_debug_options[valname].c_str() ); + lua_pushstring(EventSystem::getLuaState(), m_debug_options[valname].c_str()); return 1; } } @@ -514,36 +567,48 @@ { if (valname =="server_host") { - m_server_host = lua_tostring(EventSystem::getLuaState() ,-1); + m_server_host = lua_tostring(EventSystem::getLuaState(), -1); lua_pop(EventSystem::getLuaState(), 1); return true; } else if (valname =="port") { - m_port = lua_tonumber(EventSystem::getLuaState() ,-1); + m_port = lua_tonumber(EventSystem::getLuaState(), -1); lua_pop(EventSystem::getLuaState(), 1); return true; } else if (valname =="difficulty") { - std::string diffstr = lua_tostring(EventSystem::getLuaState() ,-1); - if (diffstr == "easy") m_difficulty = EASY; - if (diffstr == "normal") m_difficulty = NORMAL; - if (diffstr == "hard") m_difficulty = HARD; - if (diffstr == "insane") m_difficulty = INSANE; + std::string diffstr = lua_tostring(EventSystem::getLuaState(), -1); + if (diffstr == "easy") + { + m_difficulty = EASY; + } + else if (diffstr == "normal") + { + m_difficulty = NORMAL; + } + else if (diffstr == "hard") + { + m_difficulty = HARD; + } + else if (diffstr == "insane") + { + m_difficulty = INSANE; + } lua_pop(EventSystem::getLuaState(), 1); return true; } else if (valname =="text_speed") { - m_text_speed = lua_tonumber(EventSystem::getLuaState() ,-1); + m_text_speed = lua_tonumber(EventSystem::getLuaState(), -1); lua_pop(EventSystem::getLuaState(), 1); return true; } else { - std::string value = lua_tostring(EventSystem::getLuaState() ,-1); + std::string value = lua_tostring(EventSystem::getLuaState(), -1); m_debug_options[valname] = value; }
--- a/src/core/world.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/core/world.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -2969,7 +2969,7 @@ s2.m_center.m_y += dir[d][1]; // solange Richtung weiterdrehen bis ein Punkt im Suchraum gefunden wird - while ((d<=10) && (s2.m_center.m_x<c1.m_x || s2.m_center.m_y<c1.m_y || + while ((d <= 10) && (s2.m_center.m_x < c1.m_x || s2.m_center.m_y<c1.m_y || s2.m_center.m_x>c2.m_x || s2.m_center.m_y>c2.m_y)) { d++; @@ -2978,9 +2978,10 @@ DEBUGX("trying %f %f",s2.m_center.m_x,s2.m_center.m_y); } - if (d==10) + if (d >= 10) + { break; - + } if (wos->intersects(s2)) { @@ -3006,16 +3007,17 @@ { // Suchrichtung solange weiter drehen bis ein zulaessiger Punkt im Objekt gefunden wurde DEBUGX("not intersecting: %i %i %f %f",is+idir[d][0],js+idir[d][1],s2.m_center.m_x,s2.m_center.m_y); - do - { + + while (d < 10 && (s2.m_center.m_x < c1.m_x || s2.m_center.m_y < c1.m_y || + s2.m_center.m_x > c2.m_x || s2.m_center.m_y > c2.m_y || !wos->intersects(s2))) + { d++; - s2.m_center.m_x = x+dir[d][0]; - s2.m_center.m_y = y+dir[d][1]; - } while (d<=10 && (s2.m_center.m_x<c1.m_x || s2.m_center.m_y<c1.m_y || - s2.m_center.m_x>c2.m_x || s2.m_center.m_y>c2.m_y || !wos->intersects(s2))); - + s2.m_center.m_x = x + dir[d][0]; + s2.m_center.m_y = y + dir[d][1]; + } } - if (d<10) + + if (d < 10) { // Hindernis eintragen DEBUGX("d: %i",d);
--- a/src/gui/application.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/application.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -407,8 +407,6 @@ SW_DEBUG("update time was %f",t); } - float musicUpdateTimer = frametime; - timer2.reset(); // run the message pump Ogre::WindowEventUtilities::messagePump(); @@ -561,7 +559,7 @@ SW_DEBUG ("Currently selected video mode: %s", opt_it->second.currentValue.c_str ()); returnValue = opt_it->second.currentValue; std::string sLeft, sRight; - int nPos = returnValue.find (" "); + size_t nPos = returnValue.find (" "); if (nPos == std::string::npos) { // some error...
--- a/src/gui/ceguiutility.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/ceguiutility.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -773,7 +773,7 @@ return injectKeyUp (CEGUI::System::getSingletonPtr(), myKey); } - +//Alerts CEGUI about a keyup action and the key itself bool CEGUIUtility::injectKeyUp (CEGUI::System* sys, OIS::KeyCode myKey) { if (!sys)
--- a/src/gui/charcreate.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/charcreate.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -33,8 +33,6 @@ SW_DEBUG ("CharCreate window created with cegui skin [%s]", m_ceguiSkinName.c_str ()); // Create GUI Elements - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // Rahmen fuer das Menue Savegame auswaehlen CEGUI::FrameWindow* char_create = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile ("charcreate.layout"); m_window = char_create; @@ -83,7 +81,6 @@ void CharCreate::update() { // aktuell gewaehlte Klasse ermitteln - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::String widgetName = CEGUIUtility::getNameForWidget("ClassList"); CEGUI::Listbox* classlist = static_cast<CEGUI::Listbox*> (CEGUIUtility::getWindowForLoadedLayoutEx(m_window, widgetName)); CEGUI::ListboxItem * itm = classlist->getFirstSelectedItem(); @@ -110,7 +107,6 @@ void CharCreate::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::Window* widget; CEGUI::String widgetName; @@ -134,7 +130,6 @@ void CharCreate::updateClassList() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::String widgetName = CEGUIUtility::getNameForWidget("ClassList"); CEGUI::Listbox* classlist = static_cast<CEGUI::Listbox*> (CEGUIUtility::getWindowForLoadedLayoutEx(m_window, widgetName)); classlist->resetList(); @@ -157,7 +152,6 @@ bool CharCreate::onClassSelected(const CEGUI::EventArgs& evt) { SW_DEBUG ("CharCreate::onClassSelected"); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::String widgetName = CEGUIUtility::getNameForWidget("ClassList"); CEGUI::Listbox* classlist = static_cast<CEGUI::Listbox*> (CEGUIUtility::getWindowForLoadedLayoutEx(m_window, widgetName)); CEGUI::ListboxItem * itm = classlist->getFirstSelectedItem(); @@ -185,7 +179,6 @@ bool CharCreate::onLookSelected(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::String widgetName = CEGUIUtility::getNameForWidget("LookList"); CEGUI::Listbox* classlist = static_cast<CEGUI::Listbox*> (CEGUIUtility::getWindowForLoadedLayoutEx(m_window, widgetName)); CEGUI::ListboxItem * itm = classlist->getFirstSelectedItem(); @@ -222,7 +215,6 @@ bool CharCreate::onButtonAbort(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Editbox* namebox; SoundHelper::playAmbientSoundGroup ("main_menu_click_item"); @@ -237,7 +229,6 @@ bool CharCreate::onButtonCharCreate(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Editbox* namebox; CEGUI::String widgetName;
--- a/src/gui/charinfo.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/charinfo.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -22,19 +22,17 @@ CharInfo::CharInfo (Document* doc) : Window(doc) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // The CharInfo window and holder CEGUI::FrameWindow* char_info = (CEGUI::FrameWindow*) (CEGUIUtility::loadLayoutFromFile ("characterscreen.layout")); if (!char_info) { - SW_DEBUG ("WARNING: Failed to load [%s]", "characterscreen.layout"); + SW_DEBUG("WARNING: Failed to load [%s]", "characterscreen.layout"); } CEGUI::Window* char_info_holder = CEGUIUtility::loadLayoutFromFile ("characterscreen_holder.layout"); if (!char_info_holder) { - SW_DEBUG ("WARNING: Failed to load [%s]", "characterscreen_holder.layout"); + SW_DEBUG("WARNING: Failed to load [%s]", "characterscreen_holder.layout"); } CEGUI::Window* wndHolder = CEGUIUtility::getWindowForLoadedLayoutEx (char_info_holder, "CharInfo_Holder"); @@ -45,8 +43,15 @@ } else { - if (!wndHolder) SW_DEBUG ("ERROR: Unable to get the window holder for char screen."); - if (!wndCharInfo) SW_DEBUG ("ERROR: Unable to get the window for char screen."); + if (!wndHolder) + { + SW_DEBUG ("ERROR: Unable to get the window holder for char screen."); + } + + if (!wndCharInfo) + { + SW_DEBUG ("ERROR: Unable to get the window for char screen."); + } } m_window = char_info_holder; @@ -201,8 +206,6 @@ CEGUI::String ttext=""; // Fenstermanager - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::PushButton* btn; CEGUI::Window* label; std::ostringstream out_stream; @@ -230,7 +233,7 @@ out_stream.str(""); } - if (label->getText()!= (CEGUI::utf8*) out_stream.str().c_str()) + if (label->getText() != (CEGUI::utf8*) out_stream.str().c_str()) { SW_DEBUG("set class label"); label->setText((CEGUI::utf8*) out_stream.str().c_str()); @@ -619,7 +622,6 @@ void CharInfo::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; label = CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "CharInfo");
--- a/src/gui/chatline.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/chatline.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -77,8 +77,6 @@ void ChatLine::setHistoryLine() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - //CEGUI::Editbox* line = static_cast<CEGUI::Editbox*>(CEGUIUtility::getWindow ("Chatline")); CEGUI::Editbox* line = static_cast<CEGUI::Editbox*>(m_window); if (m_history_line == 0)
--- a/src/gui/contenteditor/contenteditor.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/contenteditor.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,12 +13,20 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "contenteditor.h" #include "OgreRoot.h" #include "debug.h" #include "config.h" +#ifdef CEGUI_07 #include "CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h" +#else +#include "CEGUI/RendererModules/Ogre/Renderer.h" +#endif + #include <OgreHardwarePixelBuffer.h> #include <OgreMeshManager.h> #include <OISMouse.h> @@ -40,30 +48,49 @@ void ContentEditor::init(bool visible) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - //CEGUI::System* guiSystem = System::getSingletonPtr(); CEGUI::WindowManager* winManager = WindowManager::getSingletonPtr(); - CEGUI::Window* gameScreen = winManager->getWindow("GameScreen"); + CEGUI::Window* gameScreen = CEGUIUtility::getWindow("GameScreen"); m_lastVisibilitySwitch = 0; m_rootWindow = winManager->createWindow("TaharezLook/FrameWindow", "ContentEditor"); m_rootWindow->setPosition(UVector2(UDim(0.025f, 0.0f), UDim(0.025f, 0.0f))); - m_rootWindow->setSize(UVector2(UDim(0.9f, 0.0f), UDim(0.85f, 0.0f))); + CEGUIUtility::setWidgetSizeRel(m_rootWindow, 0.9f, 0.85f); m_rootWindow->setText((CEGUI::utf8*)"Content Editor"); - gameScreen->addChildWindow(m_rootWindow); + CEGUIUtility::addChildWidget (gameScreen, m_rootWindow); CEGUI::Window* rootWindow; - rootWindow = CEGUI::WindowManager::getSingleton().loadWindowLayout("contenteditor.layout"); + rootWindow = CEGUIUtility::loadLayoutFromFile ("contenteditor.layout"); rootWindow->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - rootWindow->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); - m_rootWindow->addChildWindow(rootWindow); + CEGUIUtility::setWidgetSizeRel(rootWindow, 1.0f, 1.0f); + CEGUIUtility::addChildWidget (m_rootWindow, rootWindow); + CEGUIUtility::dumpFullWindowToLog(rootWindow); + // initialisation of the selected tabs for more intuitive use - static_cast<CEGUI::TabControl*>(win_mgr.getWindow("ObjectInfoTabControl"))->setSelectedTab("RenderInfoTab"); - static_cast<CEGUI::TabControl*>(win_mgr.getWindow("RenderInfoTabControl"))->setSelectedTab("RITab/BasicMesh"); - static_cast<CEGUI::TabControl*>(win_mgr.getWindow("FixedObjectTabControl"))->setSelectedTab("FOTab/Properties"); - static_cast<CEGUI::TabControl*>(win_mgr.getWindow("MonsterTabControl"))->setSelectedTab("MonsterTab/Properties"); + CEGUI::TabControl* widget = static_cast<CEGUI::TabControl*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, "Root/ObjectInfoTabControl")); + if (widget) + { + widget->setSelectedTab("RenderInfoTab"); + } + + widget = static_cast<CEGUI::TabControl*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl")); + if (widget) + { + widget->setSelectedTab("BasicMesh"); + } + + widget = static_cast<CEGUI::TabControl*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl")); + if (widget) + { + widget->setSelectedTab("Properties"); + } + + widget = static_cast<CEGUI::TabControl*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl")); + if (widget) + { + widget->setSelectedTab("Properties"); + } // create SceneManager for renderering images for the content editor Ogre::SceneManager* editor_scene_mng = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC,"EditorSceneManager"); @@ -96,35 +123,68 @@ editor_view->setBackgroundColour(Ogre::ColourValue(0,0,0,1.0) ); editor_rt->update(); + // get the OgreRenderer from CEGUI and create a CEGUI texture from the Ogre texture + CEGUI::OgreRenderer* renderer_ptr = static_cast<CEGUI::OgreRenderer*>(CEGUI::System::getSingleton().getRenderer()); + CEGUI::String imageName("editor_img"); + +#ifdef CEGUI_07 // create a CEGUI Image from the Texture - CEGUI::Texture& editor_ceguiTex = static_cast<CEGUI::OgreRenderer*>(CEGUI::System::getSingleton().getRenderer())->createTexture(editor_texture); + CEGUI::Texture& editor_ceguiTex = renderer_ptr->createTexture(editor_texture); CEGUI::Imageset& editor_textureImageSet = CEGUI::ImagesetManager::getSingleton().create("editor_imageset", editor_ceguiTex); - editor_textureImageSet.defineImage( "editor_img", + editor_textureImageSet.defineImage( + imageName, CEGUI::Point( 0.0f, 0.0f ), CEGUI::Size( editor_ceguiTex.getSize().d_width, editor_ceguiTex.getSize().d_height ), CEGUI::Point( 0.0f, 0.0f ) ); - +#else + CEGUI::Texture &editor_cegui_texture = renderer_ptr->createTexture (editor_texture->getName (), editor_texture); + { + CEGUI::TextureTarget* d_textureTarget; + CEGUI::BasicImage* d_textureTargetImage; + d_textureTarget = renderer_ptr->createTextureTarget(); + d_textureTargetImage = static_cast<CEGUI::BasicImage*>(&CEGUI::ImageManager::getSingleton().create("BasicImage", imageName)); + d_textureTargetImage->setTexture(&editor_cegui_texture); + d_textureTargetImage->setArea( + CEGUI::Rectf( + 0, + 0, + editor_cegui_texture.getSize ().d_width, + editor_cegui_texture.getSize ().d_height)); + } +#endif + // place the image in a the CEGUI label - CEGUI::Window* label = win_mgr.getWindow("RITab/BM/meshPreview"); - label->setProperty("Image", "set:editor_imageset image:editor_img"); + CEGUI::Window* label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/meshPreview"); + + CEGUI::String content_editor_image_name("editor_img"); + label->setProperty("Image", content_editor_image_name); // prev: "set:editor_imageset image:editor_img" label->subscribeEvent(CEGUI::Window::EventMouseButtonDown, CEGUI::Event::Subscriber(&ContentEditor::onPreviewWindowMouseDown, this)); - label->subscribeEvent(CEGUI::Window::EventMouseLeaves, CEGUI::Event::Subscriber(&ContentEditor::onPreviewWindowMouseUp, this)); + label->subscribeEvent(CEGUIUtility::EventMouseLeavesWindowArea(), CEGUI::Event::Subscriber(&ContentEditor::onPreviewWindowMouseUp, this)); label->subscribeEvent(CEGUI::Window::EventMouseButtonUp, CEGUI::Event::Subscriber(&ContentEditor::onPreviewWindowMouseUp, this)); label->subscribeEvent(CEGUI::Window::EventMouseWheel, CEGUI::Event::Subscriber(&ContentEditor::onPreviewWindowScrollWheel, this)); - CEGUI::PushButton* closebutton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("CloseButton")); + CEGUI::PushButton* closebutton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, "Root/CloseButton")); closebutton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&ContentEditor::onClose, this)); closebutton = static_cast<CEGUI::FrameWindow*>(m_rootWindow)->getCloseButton(); closebutton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&ContentEditor::onClose, this)); + SW_DEBUG("Content Editor: creating fixed object editor"); m_components["FOEditor"] = new FixedObjectEditor(); + + SW_DEBUG("Content Editor: creating render info editor"); m_components["RIEditor"] = new RenderInfoEditor(); + + SW_DEBUG("Content Editor: creating item editor"); m_components["ItemEditor"] = new ItemEditor(); + + SW_DEBUG("Content Editor: creating monster editor"); m_components["MonsterEditor"] = new MonsterEditor(); - m_components["GameInfoTab"] = new GameInfoTab(); + + SW_DEBUG("Content Editor: creating game info tab"); + m_components["GameInfoTab"] = new GameInfoTab(); std::map<std::string, ContentEditorTab*>::iterator it; for (it = m_components.begin(); it != m_components.end(); ++it) @@ -133,7 +193,9 @@ } if(!visible) + { m_rootWindow->setVisible(visible); + } updateTranslation(); } @@ -171,7 +233,9 @@ } if(keyboard->isKeyDown(OIS::KC_LCONTROL) && keyboard->isKeyDown(OIS::KC_K)) + { toggleVisibility(); + } std::map<std::string, ContentEditorTab*>::iterator it; for (it = m_components.begin(); it != m_components.end(); ++it) @@ -196,321 +260,423 @@ void ContentEditor::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; textdomain("tools"); - label = win_mgr.getWindow("RenderInfoTab"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab"); label->setText((CEGUI::utf8*) gettext("Render Info")); - label = win_mgr.getWindow("RITab/BasicMesh"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl"); label->setText((CEGUI::utf8*) gettext("Mesh")); - label = win_mgr.getWindow("RITab/BM/MainMeshLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/BasicMesh/MainMeshLabel"); label->setText((CEGUI::utf8*) gettext("Select main mesh:")); - label = win_mgr.getWindow("RITab/SubMesh"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh"); label->setText((CEGUI::utf8*) gettext("Submeshes")); - label = win_mgr.getWindow("RITab/SubMesh/AddSubMeshButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AddSubMeshButton"); label->setText((CEGUI::utf8*) gettext("Add Submesh")); - label = win_mgr.getWindow("RITab/SM/NewSubmeshLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/NewSubmeshLabel"); label->setText((CEGUI::utf8*) gettext("New submesh:")); - label = win_mgr.getWindow("RITab/SM/NewSMNameLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/NewSMNameLabel"); label->setText((CEGUI::utf8*) gettext("submesh name:")); - label = win_mgr.getWindow("RITab/SM/EditSMLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/EditSMLabel"); label->setText((CEGUI::utf8*) gettext("Edit submesh:")); - label = win_mgr.getWindow("RITab/SM/AttachMeshLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachMeshLabel"); label->setText((CEGUI::utf8*) gettext("Attach to:")); - label = win_mgr.getWindow("RITab/SM/BoneLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/BoneLabel"); label->setText((CEGUI::utf8*) gettext("at bone:")); - label = win_mgr.getWindow("RITab/SM/RotateLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/RotateLabel"); label->setText((CEGUI::utf8*) gettext("Rotate(x,y,z):")); - label = win_mgr.getWindow("RITab/SM/ScaleLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/ScaleLabel"); label->setText((CEGUI::utf8*) gettext("Scale:")); - label = win_mgr.getWindow("RITab/SM/OffsetLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/OffsetLabel"); label->setText((CEGUI::utf8*) gettext("Offset (x,y,z):")); - label = win_mgr.getWindow("RITab/SubMesh/DelSubMeshButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/DelSubMeshButton"); label->setText((CEGUI::utf8*) gettext("Delete Submesh")); - label = win_mgr.getWindow("RITab/Animations"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/Animations"); label->setText((CEGUI::utf8*) gettext("Animations")); - label = win_mgr.getWindow("RITab/XML"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/XML"); label->setText((CEGUI::utf8*) gettext("XML")); - label = win_mgr.getWindow("RITab/XML/SubmitButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/XML/SubmitButton"); label->setText((CEGUI::utf8*) gettext("Submit XML")); - label = win_mgr.getWindow("FixedObjectTab"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab"); label->setText((CEGUI::utf8*) gettext("FixedObject")); - label = win_mgr.getWindow("FOTab/Properties"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties"); label->setText((CEGUI::utf8*) gettext("Properties")); - label = win_mgr.getWindow("FOTab/Prop/ShapeLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/ShapeLabel"); label->setText((CEGUI::utf8*) gettext("Shape:")); - label = win_mgr.getWindow("FOTab/Prop/CircleLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CircleLabel"); label->setText((CEGUI::utf8*) gettext("Circle")); - label = win_mgr.getWindow("FOTab/Prop/RadiusLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RadiusLabel"); label->setText((CEGUI::utf8*) gettext("Radius:")); - label = win_mgr.getWindow("FOTab/Prop/DetectCircleButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DetectCircleButton"); label->setText((CEGUI::utf8*) gettext("Autodetect")); - label = win_mgr.getWindow("FOTab/Prop/RectangleLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RectangleLabel"); label->setText((CEGUI::utf8*) gettext("Rectangle")); - label = win_mgr.getWindow("FOTab/Prop/WidthLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/WidthLabel"); label->setText((CEGUI::utf8*) gettext("Width:")); - label = win_mgr.getWindow("FOTab/Prop/DepthLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DepthLabel"); label->setText((CEGUI::utf8*) gettext("Depth:")); - label = win_mgr.getWindow("FOTab/Prop/DetectRectButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DetectRectButton"); label->setText((CEGUI::utf8*) gettext("Autodetect")); - label = win_mgr.getWindow("FOTab/Prop/CollisionLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CollisionLabel"); label->setText((CEGUI::utf8*) gettext("Collision type")); - label = win_mgr.getWindow("FOTab/Properties/CopyDataLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CopyDataLabel"); label->setText((CEGUI::utf8*) gettext("Copy data from:")); - label = win_mgr.getWindow("FOTab/Properties/CopyDataButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CopyDataButton"); label->setText((CEGUI::utf8*) gettext("Copy")); - label = win_mgr.getWindow("FOTab/Create"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create"); label->setText((CEGUI::utf8*) gettext("Create Object")); - label = win_mgr.getWindow("FOTab/XML/CreateButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/CreateButton"); label->setText((CEGUI::utf8*) gettext("Create Object")); - label = win_mgr.getWindow("FOTab/Create/PosLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/PosLabel"); label->setText((CEGUI::utf8*) gettext("Position:")); - label = win_mgr.getWindow("FOTab/Create/GetPlPosButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/GetPlPosButton"); label->setText((CEGUI::utf8*) gettext("Get Player Position")); - label = win_mgr.getWindow("FOTab/Create/AngleLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/AngleLabel"); label->setText((CEGUI::utf8*) gettext("Angle:")); - label = win_mgr.getWindow("FOTab/Create/DelAllButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/DelAllButton"); label->setText((CEGUI::utf8*) gettext("Delete all objects")); - label = win_mgr.getWindow("FOTab/XML"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/XML"); label->setText((CEGUI::utf8*) gettext("XML")); - label = win_mgr.getWindow("FOTab/XML/SubmitButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/XML/SubmitButton"); label->setText((CEGUI::utf8*) gettext("Submit XML")); - label = win_mgr.getWindow("ItemTab"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab"); label->setText((CEGUI::utf8*) gettext("Item")); - label = win_mgr.getWindow("ItemTab/General"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General"); label->setText((CEGUI::utf8*) gettext("General")); - label = win_mgr.getWindow("ItemTab/Properties/TypeLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeLabel"); label->setText((CEGUI::utf8*) gettext("Type:")); - label = win_mgr.getWindow("ItemTab/Properties/SizeLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/SizeLabel"); label->setText((CEGUI::utf8*) gettext("Size:")); - label = win_mgr.getWindow("ItemTab/Properties/CopyDataLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/CopyDataLabel"); label->setText((CEGUI::utf8*) gettext("Copy data from:")); - label = win_mgr.getWindow("ItemTab/Properties/CopyDataButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/CopyDataButton"); label->setText((CEGUI::utf8*) gettext("Copy")); - label = win_mgr.getWindow("ItemTab/General/NameLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/NameLabel"); label->setText((CEGUI::utf8*) gettext("Name:")); - label = win_mgr.getWindow("ItemTab/General/PriceLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/PriceLabel"); label->setText((CEGUI::utf8*) gettext("Value:")); - label = win_mgr.getWindow("ItemTab/General/EnchantRangeLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/EnchantRangeLabel"); label->setText((CEGUI::utf8*) gettext("Enchant min:")); - label = win_mgr.getWindow("ItemTab/General/EnchantMaxLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/EnchantMaxLabel"); label->setText((CEGUI::utf8*) gettext("max:")); - label = win_mgr.getWindow("ItemTab/Equip"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip"); label->setText((CEGUI::utf8*) gettext("Equip")); - label = win_mgr.getWindow("ItemTab/Equip/HealthLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/HealthLabel"); label->setText((CEGUI::utf8*) gettext("Health:")); - label = win_mgr.getWindow("ItemTab/Equip/AttrLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AttrLabel"); label->setText((CEGUI::utf8*) gettext("Attribute:")); - label = win_mgr.getWindow("ItemTab/Equip/StrengthLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/StrengthLabel"); label->setText((CEGUI::utf8*) gettext("Strength:")); - label = win_mgr.getWindow("ItemTab/Equip/DexterityLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/DexterityLabel"); label->setText((CEGUI::utf8*) gettext("Dexterity:")); - label = win_mgr.getWindow("ItemTab/Equip/MagicPowerLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/MagicPowerLabel"); label->setText((CEGUI::utf8*) gettext("Magic Power:")); - label = win_mgr.getWindow("ItemTab/Equip/WillpowerLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/WillpowerLabel"); label->setText((CEGUI::utf8*) gettext("Willpower:")); - label = win_mgr.getWindow("ItemTab/Equip/ResistancesLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/ResistancesLabel"); label->setText((CEGUI::utf8*) gettext("Resistances:")); - label = win_mgr.getWindow("ItemTab/Equip/PhysResLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PhysResLabel"); label->setText((CEGUI::utf8*) gettext("Physical:")); - label = win_mgr.getWindow("ItemTab/Equip/FireResLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/FireResLabel"); label->setText((CEGUI::utf8*) gettext("Fire:")); - label = win_mgr.getWindow("ItemTab/Equip/IceResLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/IceResLabel"); label->setText((CEGUI::utf8*) gettext("Ice:")); - label = win_mgr.getWindow("ItemTab/Equip/AirResLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AirResLabel"); label->setText((CEGUI::utf8*) gettext("Air:")); - label = win_mgr.getWindow("ItemTab/Equip/OtherLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/OtherLabel"); label->setText((CEGUI::utf8*) gettext("Other:")); - label = win_mgr.getWindow("ItemTab/Equip/ArmorLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/ArmorLabel"); label->setText((CEGUI::utf8*) gettext("Armor:")); - label = win_mgr.getWindow("ItemTab/Equip/BlockLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/BlockLabel"); label->setText((CEGUI::utf8*) gettext("Block:")); - label = win_mgr.getWindow("ItemTab/Equip/AttackLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AttackLabel"); label->setText((CEGUI::utf8*) gettext("Precision:")); - label = win_mgr.getWindow("ItemTab/Equip/PowerLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PowerLabel"); label->setText((CEGUI::utf8*) gettext("Power:")); - label = win_mgr.getWindow("ItemTab/Weapon"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon"); label->setText((CEGUI::utf8*) gettext("Weapon")); - label = win_mgr.getWindow("ItemTab/Weapon/TypeLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/TypeLabel"); label->setText((CEGUI::utf8*) gettext("Type:")); - label = win_mgr.getWindow("ItemTab/Weapon/DamageLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/DamageLabel"); label->setText((CEGUI::utf8*) gettext("Damage:")); - label = win_mgr.getWindow("ItemTab/Weapon/PhysLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysLabel"); label->setText((CEGUI::utf8*) gettext("Physical:")); - label = win_mgr.getWindow("ItemTab/Weapon/PhysToLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysToLabel"); label->setText((CEGUI::utf8*) gettext("-")); - label = win_mgr.getWindow("ItemTab/Weapon/PhysMultLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMultLabel"); label->setText((CEGUI::utf8*) gettext("x")); - label = win_mgr.getWindow("ItemTab/Weapon/FireLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireLabel"); label->setText((CEGUI::utf8*) gettext("Fire:")); - label = win_mgr.getWindow("ItemTab/Weapon/FireToLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireToLabel"); label->setText((CEGUI::utf8*) gettext("-")); - label = win_mgr.getWindow("ItemTab/Weapon/FireMultLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMultLabel"); label->setText((CEGUI::utf8*) gettext("x")); - label = win_mgr.getWindow("ItemTab/Weapon/IceLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceLabel"); label->setText((CEGUI::utf8*) gettext("Ice:")); - label = win_mgr.getWindow("ItemTab/Weapon/IceToLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceToLabel"); label->setText((CEGUI::utf8*) gettext("-")); - label = win_mgr.getWindow("ItemTab/Weapon/IceMultLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMultLabel"); label->setText((CEGUI::utf8*) gettext("x")); - label = win_mgr.getWindow("ItemTab/Weapon/AirLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirLabel"); label->setText((CEGUI::utf8*) gettext("Air:")); - label = win_mgr.getWindow("ItemTab/Weapon/AirToLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirToLabel"); label->setText((CEGUI::utf8*) gettext("-")); - label = win_mgr.getWindow("ItemTab/Weapon/AirMultLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMultLabel"); label->setText((CEGUI::utf8*) gettext("x")); - label = win_mgr.getWindow("ItemTab/Weapon/PrecisionLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PrecisionLabel"); label->setText((CEGUI::utf8*) gettext("Precision:")); - label = win_mgr.getWindow("ItemTab/Weapon/PowerLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PowerLabel"); label->setText((CEGUI::utf8*) gettext("Power:")); - label = win_mgr.getWindow("ItemTab/Weapon/RangeLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/RangeLabel"); label->setText((CEGUI::utf8*) gettext("Range:")); - label = win_mgr.getWindow("ItemTab/Weapon/SpeedLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/SpeedLabel"); label->setText((CEGUI::utf8*) gettext("Speed:")); - label = win_mgr.getWindow("ItemTab/Weapon/TwohandedLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/TwohandedLabel"); label->setText((CEGUI::utf8*) gettext("Twohanded weapon")); - label = win_mgr.getWindow("ItemTab/Weapon/CritPercentLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/CritPercentLabel"); label->setText((CEGUI::utf8*) gettext("Crit. Hits:")); - label = win_mgr.getWindow("ItemTab/Consume"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume"); label->setText((CEGUI::utf8*) gettext("Consume")); - label = win_mgr.getWindow("ItemTab/Consume/TypeLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/TypeLabel"); label->setText((CEGUI::utf8*) gettext("Health:")); - label = win_mgr.getWindow("ItemTab/Consume/CureLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/CureLabel"); label->setText((CEGUI::utf8*) gettext("Status heal and immunity time:")); - label = win_mgr.getWindow("ItemTab/Consume/BlindLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BlindLabel"); label->setText((CEGUI::utf8*) gettext("Blind:")); - label = win_mgr.getWindow("ItemTab/Consume/PoisonedLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/PoisonedLabel"); label->setText((CEGUI::utf8*) gettext("Poisoned:")); - label = win_mgr.getWindow("ItemTab/Consume/BerserkLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BerserkLabel"); label->setText((CEGUI::utf8*) gettext("Berserk:")); - label = win_mgr.getWindow("ItemTab/Consume/ConfusedLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ConfusedLabel"); label->setText((CEGUI::utf8*) gettext("Confused:")); - label = win_mgr.getWindow("ItemTab/Consume/MuteLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/MuteLabel"); label->setText((CEGUI::utf8*) gettext("Mute:")); - label = win_mgr.getWindow("ItemTab/Consume/ParalyzedLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ParalyzedLabel"); label->setText((CEGUI::utf8*) gettext("Paralyzed:")); - label = win_mgr.getWindow("ItemTab/Consume/FrozenLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/FrozenLabel"); label->setText((CEGUI::utf8*) gettext("Frozen:")); - label = win_mgr.getWindow("ItemTab/Consume/BurningLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BurningLabel"); label->setText((CEGUI::utf8*) gettext("Burning:")); - label = win_mgr.getWindow("ItemTab/Create"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Create"); label->setText((CEGUI::utf8*) gettext("Create Item")); - label = win_mgr.getWindow("ItemTab/Create/EnchantLabel"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Create/EnchantLabel"); label->setText((CEGUI::utf8*) gettext("Enchant:")); - label = win_mgr.getWindow("ItemTab/Create/CreateInventoryButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Create/CreateInventoryButton"); label->setText((CEGUI::utf8*) gettext("Create in inventory")); - label = win_mgr.getWindow("ItemTab/Create/CreateDropButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Create/CreateDropButton"); label->setText((CEGUI::utf8*) gettext("Create an drop")); - label = win_mgr.getWindow("ItemTab/XML"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/XML"); label->setText((CEGUI::utf8*) gettext("XML")); - label = win_mgr.getWindow("ItemTab/XML/SubmitButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/XML/SubmitButton"); label->setText((CEGUI::utf8*) gettext("Submit XML")); - label = win_mgr.getWindow("CloseButton"); + label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, "Root/CloseButton"); label->setText((CEGUI::utf8*) gettext("Close")); textdomain("menu");
--- a/src/gui/contenteditor/contenteditortab.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/contenteditortab.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -19,11 +19,14 @@ #include "contenteditortab.h" +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + void ContentEditorTab::setWindowText(std::string windowname, std::string text) { CEGUI::utf8* str = (CEGUI::utf8*) (text.c_str()); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Window* win = win_mgr.getWindow(windowname); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::Window* win = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname); if (win != 0) { @@ -36,8 +39,8 @@ std::string ContentEditorTab::getWindowText(std::string windowname, std::string def) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Window* win = win_mgr.getWindow(windowname); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::Window* win = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname); if (win != 0) { @@ -48,8 +51,8 @@ void ContentEditorTab::setSpinnerValue(std::string windowname, double value) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Spinner* spinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow(windowname)); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::Spinner* spinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname)); if (spinner != 0) { @@ -62,8 +65,8 @@ double ContentEditorTab::getSpinnerValue(std::string windowname, double def) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Spinner* spinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow(windowname)); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::Spinner* spinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname)); if (spinner != 0) { @@ -74,8 +77,8 @@ void ContentEditorTab::setCheckboxSelected(std::string windowname, bool state) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Checkbox* box = static_cast<CEGUI::Checkbox*>(win_mgr.getWindow(windowname)); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUIUtility::ToggleButton* box = static_cast<CEGUIUtility::ToggleButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname)); if (box != 0) { @@ -88,8 +91,8 @@ bool ContentEditorTab::getCheckboxSelected(std::string windowname) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Checkbox* box = static_cast<CEGUI::Checkbox*>(win_mgr.getWindow(windowname)); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUIUtility::ToggleButton* box = static_cast<CEGUIUtility::ToggleButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname)); if (box != 0) { @@ -100,8 +103,8 @@ std::string ContentEditorTab::getComboboxSelection(std::string windowname, std::string def) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Combobox* box = static_cast<CEGUI::Combobox*>(win_mgr.getWindow(windowname)); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::Combobox* box = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname)); if (box != 0) { @@ -116,8 +119,8 @@ void ContentEditorTab::setComboboxSelection(std::string windowname, std::string selection) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Combobox* box = static_cast<CEGUI::Combobox*>(win_mgr.getWindow(windowname)); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::Combobox* box = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname)); if (box != 0) { @@ -133,8 +136,8 @@ void ContentEditorTab::setMultiLineEditboxCursor(std::string windowname, int row, int col) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow(windowname)); + //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, windowname)); if (editor != 0) { @@ -163,8 +166,8 @@ pos++; } - editor->setCaratIndex(pos); - editor->ensureCaratIsVisible(); + editor->setCaretIndex(pos); + editor->ensureCaretIsVisible(); editor->activate(); } }
--- a/src/gui/contenteditor/contenteditortab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/contenteditortab.h Sun Jun 08 11:05:00 2014 +0200 @@ -35,6 +35,7 @@ virtual void init(CEGUI::Window* parent) { m_no_cegui_events = false; + m_rootWindow = parent; } /** @@ -134,6 +135,13 @@ * \brief marks that underlying game data should be reloaded */ bool m_update_base_content; + + /** + * \var CEGUI::Window *m_rootWindow; + * \brief Pointer to the root window of this panel + */ + CEGUI::Window* m_rootWindow; + };
--- a/src/gui/contenteditor/contenttab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/contenttab.h Sun Jun 08 11:05:00 2014 +0200 @@ -16,7 +16,12 @@ #ifndef CONTENTTAB_H #define CONTENTTAB_H +#ifdef CEGUI_07 #include <CEGUI/CEGUIString.h> +#else +#include "CEGUI/String.h" +#endif + class ContentTab {
--- a/src/gui/contenteditor/fixedobjecteditor.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/fixedobjecteditor.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,6 +13,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" #include "graphicmanager.h" @@ -25,18 +27,24 @@ void FixedObjectEditor::init(CEGUI::Window* parent) { ContentEditorTab::init(parent); - - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + m_rootWindow = parent; - CEGUI::PushButton* detectCircleButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/Prop/DetectCircleButton")); - CEGUI::PushButton* detectRectButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/Prop/DetectRectButton")); + CEGUI::PushButton* detectCircleButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DetectCircleButton")); + CEGUI::PushButton* detectRectButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DetectRectButton"/*"FOTab/Prop/DetectRectButton"*/)); - CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/RadiusSpinner")); - CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/WidthSpinner")); - CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/DepthSpinner")); + CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RadiusSpinner")); + CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/WidthSpinner")); + CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DepthSpinner")); - CEGUI::RadioButton* circleButton = static_cast<CEGUI::RadioButton*>(win_mgr.getWindow("FOTab/Prop/CircleCheckbox")); - CEGUI::RadioButton* rectButton = static_cast<CEGUI::RadioButton*>(win_mgr.getWindow("FOTab/Prop/RectangleCheckbox")); + CEGUI::RadioButton* circleButton = static_cast<CEGUI::RadioButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CircleCheckbox")); + CEGUI::RadioButton* rectButton = static_cast<CEGUI::RadioButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RectangleCheckbox")); radiusSpinner->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&FixedObjectEditor::onFixedObjectModified, this)); widthSpinner->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&FixedObjectEditor::onFixedObjectModified, this)); @@ -49,7 +57,8 @@ detectCircleButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&FixedObjectEditor::onFixedObjectAutodetectSize, this)); detectRectButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&FixedObjectEditor::onFixedObjectAutodetectSize, this)); - CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("FOTab/Prop/LayerSelector")); + CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/LayerSelector")); layerSelector->addItem(new CEGUI::ListboxTextItem("Normal")); layerSelector->addItem(new CEGUI::ListboxTextItem("Base")); layerSelector->addItem(new CEGUI::ListboxTextItem("Air")); @@ -57,26 +66,37 @@ layerSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&FixedObjectEditor::onFixedObjectModified, this)); - CEGUI::PushButton* xmlsubmitButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/XML/SubmitButton")); + CEGUI::PushButton* xmlsubmitButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/XML/SubmitButton")); xmlsubmitButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&FixedObjectEditor::onFixedObjectXMLModified, this)); - CEGUI::PushButton* createFOButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/XML/CreateButton")); + CEGUI::PushButton* createFOButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/CreateButton")); createFOButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&FixedObjectEditor::onFixedObjectCreate, this)); - CEGUI::PushButton* delallFOButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/Create/DelAllButton")); + CEGUI::PushButton* delallFOButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/DelAllButton")); delallFOButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&FixedObjectEditor::onDelAllObjects, this)); - CEGUI::PushButton* getplayerButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/Create/GetPlPosButton")); + CEGUI::PushButton* getplayerButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/GetPlPosButton")); getplayerButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&FixedObjectEditor::onGetPlayerPosition, this)); // init the internal data + TiXmlNode* linkedNode = NULL; TiXmlElement * fixed_root = new TiXmlElement("Object"); - m_fixed_object_xml.LinkEndChild( fixed_root ); - fixed_root->SetAttribute("subtype","EditorFixedObject"); + linkedNode = m_fixed_object_xml.LinkEndChild(fixed_root); + if (linkedNode == NULL) + { + // Failed to link the root item. + return; + } + + fixed_root->SetAttribute("subtype", "EditorFixedObject"); TiXmlElement * fixed_ri = new TiXmlElement("RenderInfo"); - fixed_ri->SetAttribute("name","EditorRenderInfo"); + fixed_ri->SetAttribute("name", "EditorRenderInfo"); fixed_root->LinkEndChild(fixed_ri); m_update_base_content = true; @@ -106,9 +126,8 @@ void FixedObjectEditor::updateAllFixedObjectList() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - CEGUI::Combobox* copyfoSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("FOTab/Properties/CopyDataBox")); + CEGUI::Combobox* copyfoSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/Properties/CopyDataBox")); // Fill list of all FixedObjects const std::map<GameObject::Subtype, FixedObjectData*>& all_fo = ObjectFactory::getAllFixedObjectData(); @@ -118,14 +137,13 @@ copyfoSelector->addItem(new CEGUI::ListboxTextItem(it->first.c_str())); } - CEGUI::PushButton* copyfoButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/Properties/CopyDataButton")); + CEGUI::PushButton* copyfoButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/Properties/CopyDataButton")); copyfoButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&FixedObjectEditor::onCopyData, this)); } void FixedObjectEditor::updateFixedObjectXML() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // update the XML representation m_edited_fixed_object.writeToXML(m_fixed_object_xml.FirstChildElement()); @@ -133,7 +151,8 @@ TiXmlPrinter printer; m_fixed_object_xml.Accept(&printer); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("FOTab/XML/FOXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/XML/FOXMLEditbox")); editor->setText(printer.CStr()); } @@ -141,16 +160,20 @@ { m_no_cegui_events = true; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("FOTab/Prop/LayerSelector")); + CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/LayerSelector")); - CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/RadiusSpinner")); - CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/WidthSpinner")); - CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/DepthSpinner")); + CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RadiusSpinner")); + CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/WidthSpinner")); + CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DepthSpinner")); - CEGUI::RadioButton* circleButton = static_cast<CEGUI::RadioButton*>(win_mgr.getWindow("FOTab/Prop/CircleCheckbox")); - CEGUI::RadioButton* rectButton = static_cast<CEGUI::RadioButton*>(win_mgr.getWindow("FOTab/Prop/RectangleCheckbox")); + CEGUI::RadioButton* circleButton = static_cast<CEGUI::RadioButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CircleCheckbox")); + CEGUI::RadioButton* rectButton = static_cast<CEGUI::RadioButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RectangleCheckbox")); // adjust the spinner values if (m_edited_fixed_object.m_shape.m_type == Shape::CIRCLE) @@ -168,11 +191,17 @@ // set the layer combobox std::string layer = "Normal"; if (m_edited_fixed_object.m_layer == WorldObject::LAYER_BASE) + { layer = "Base"; + } else if (m_edited_fixed_object.m_layer == WorldObject::LAYER_AIR) + { layer = "Air"; + } else if (m_edited_fixed_object.m_layer == WorldObject::LAYER_NOCOLLISION) + { layer == "NoCollision"; + } CEGUI::ListboxItem* selection = layerSelector->findItemWithText(CEGUI::String(layer),0); if (selection != 0) @@ -189,18 +218,24 @@ bool FixedObjectEditor::onFixedObjectModified(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; + } - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::RadioButton* CircleButton = static_cast<CEGUI::RadioButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CircleCheckbox")); + //CEGUI::RadioButton* RectButton = static_cast<CEGUI::RadioButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + //"Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RectangleCheckbox")); - CEGUI::RadioButton* CircleButton = static_cast<CEGUI::RadioButton*>(win_mgr.getWindow("FOTab/Prop/CircleCheckbox")); - //CEGUI::RadioButton* RectButton = static_cast<CEGUI::RadioButton*>(win_mgr.getWindow("FOTab/Prop/RectangleCheckbox")); + CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RadiusSpinner")); + CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/WidthSpinner")); + CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DepthSpinner")); - CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/RadiusSpinner")); - CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/WidthSpinner")); - CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/DepthSpinner")); - - CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("FOTab/Prop/LayerSelector")); + CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/LayerSelector")); if (CircleButton->getSelectedButtonInGroup() == CircleButton) { @@ -216,13 +251,21 @@ std::string layer = layerSelector->getText().c_str(); if (layer == "Base") + { m_edited_fixed_object.m_layer = WorldObject::LAYER_BASE; + } else if (layer == "Air") + { m_edited_fixed_object.m_layer = WorldObject::LAYER_AIR; + } else if (layer == "NoCollision") + { m_edited_fixed_object.m_layer = WorldObject::LAYER_NOCOLLISION; + } else + { m_edited_fixed_object.m_layer = WorldObject::LAYER_BASE | WorldObject::LAYER_AIR; + } m_modified_fixed_object = true; @@ -234,24 +277,27 @@ const CEGUI::MouseEventArgs& we = static_cast<const CEGUI::MouseEventArgs&>(evt); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + CEGUI::PushButton* detectCircleButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DetectCircleButton")); + //CEGUI::PushButton* detectRectButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + //"FOTab/Prop/DetectRectButton")); - CEGUI::PushButton* detectCircleButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/Prop/DetectCircleButton")); - //CEGUI::PushButton* detectRectButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("FOTab/Prop/DetectRectButton")); - - CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/RadiusSpinner")); - CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/WidthSpinner")); - CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("FOTab/Prop/DepthSpinner")); + CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/RadiusSpinner")); + CEGUI::Spinner* widthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/WidthSpinner")); + CEGUI::Spinner* depthSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/DepthSpinner")); // calculate the size of the bounding box RenderInfoEditor* ri_editor = dynamic_cast<RenderInfoEditor*>(ContentEditor::getSingleton().getComponent("RIEditor")); Ogre::SceneNode* topnode = ri_editor->getEditedGraphicObject()->getTopNode(); topnode->_updateBounds(); - Ogre::Vector3 bbox_min(1000,1000,1000); - Ogre::Vector3 bbox_max(-1000,-1000,-1000); + Ogre::Vector3 bbox_min(1000, 1000, 1000); + Ogre::Vector3 bbox_max(-1000, -1000, -1000); - getNodeBounds(topnode,bbox_min,bbox_max); + getNodeBounds(topnode, bbox_min, bbox_max); double size_x = bbox_max[0] - bbox_min[0]; double size_z = bbox_max[2] - bbox_min[2]; @@ -273,8 +319,8 @@ bool FixedObjectEditor::onFixedObjectXMLModified(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("FOTab/XML/FOXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/XML/FOXMLEditbox")); // Parse the editor text to XML // use temporary XML document for recovering from errors @@ -292,7 +338,7 @@ m_fixed_object_xml.LinkEndChild(ri_temp_xml.RootElement()->Clone()); // parse the XML to the fixed object data - ObjectLoader::loadObject(m_fixed_object_xml.FirstChildElement(),true); + ObjectLoader::loadObject(m_fixed_object_xml.FirstChildElement(), true); // copy to the local Data structure FixedObjectData* data = ObjectFactory::getFixedObjectData("EditorFixedObject"); if (data != 0) @@ -309,7 +355,7 @@ int err_row = ri_temp_xml.ErrorRow(); int err_col = ri_temp_xml.ErrorCol(); - setMultiLineEditboxCursor("FOTab/XML/FOXMLEditbox",err_row,err_col); + setMultiLineEditboxCursor("Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/XML/FOXMLEditbox", err_row, err_col); } return true; @@ -325,14 +371,16 @@ // temporarily replace the renderinfo name TiXmlElement * fixed_ri = m_fixed_object_xml.RootElement()->FirstChildElement("RenderInfo"); if (fixed_ri == 0) + { return true; + } std::string name = fixed_ri->Attribute("name"); - fixed_ri->SetAttribute("name",unique_ri.c_str()); + fixed_ri->SetAttribute("name", unique_ri.c_str()); - ObjectLoader::loadObject(m_fixed_object_xml.FirstChildElement(),true); + ObjectLoader::loadObject(m_fixed_object_xml.FirstChildElement(), true); - fixed_ri->SetAttribute("name",name.c_str()); + fixed_ri->SetAttribute("name", name.c_str()); Vector pos; float angle; @@ -340,24 +388,29 @@ World* world = World::getWorld(); if (world == 0) + { return true; + } WorldObject* player = world->getLocalPlayer(); if (player == 0) + { return true; + } + Region* region = player->getRegion(); // if the position is set to default, use the player position - pos.m_x = getSpinnerValue("FOTab/Create/PosXSpinner",0); - pos.m_y = getSpinnerValue("FOTab/Create/PosYSpinner",0); - angle = getSpinnerValue("FOTab/Create/AngleSpinner",0); + pos.m_x = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/PosXSpinner", 0); + pos.m_y = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/PosYSpinner", 0); + angle = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/AngleSpinner", 0); if (pos.m_x == 0 && pos.m_y == 0) { pos = player->getShape()->m_center; } // create the object - int id = region->createObject("EditorFixedObject", pos,angle, height,WorldObject::STATE_ACTIVE); + int id = region->createObject("EditorFixedObject", pos, angle, height, WorldObject::STATE_ACTIVE); m_created_objects.push_back(std::make_pair(region->getId(), id)); return false; @@ -365,14 +418,18 @@ bool FixedObjectEditor::onCopyData(const CEGUI::EventArgs& evt) { - std::string objname = getComboboxSelection("FOTab/Properties/CopyDataBox", ""); + std::string objname = getComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Properties/CopyDataBox", ""); if (objname == "") + { return true; + } FixedObjectData* fodata = ObjectFactory::getFixedObjectData(objname); if (fodata == 0) + { return true; - + } + m_edited_fixed_object = *fodata; m_modified_fixed_object = true; @@ -385,17 +442,22 @@ { World* world = World::getWorld(); if (world == 0) + { return true; + } WorldObject* player = world->getLocalPlayer(); if (player == 0) + { return true; + } + //Region* region = player->getRegion(); Vector pos = player->getShape()->m_center; - setSpinnerValue("FOTab/Create/PosXSpinner", pos.m_x); - setSpinnerValue("FOTab/Create/PosYSpinner", pos.m_y); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/PosXSpinner", pos.m_x); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/FixedObjectTab/FixedObjectTabControl/__auto_TabPane__/Create/PosYSpinner", pos.m_y); return true; } @@ -404,17 +466,22 @@ { World* world = World::getWorld(); if (world == 0) + { return true; - - std::list< std::pair<int,int> >::iterator it; + } + + std::list<std::pair<int, int> >::iterator it; for (it = m_created_objects.begin(); it != m_created_objects.end(); ++it) { Region* region = world->getRegion(it->first); if (region == 0) + { continue; + } region->deleteObject(it->second); } + m_created_objects.clear(); return true;
--- a/src/gui/contenteditor/fixedobjecteditor.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/fixedobjecteditor.h Sun Jun 08 11:05:00 2014 +0200 @@ -130,6 +130,11 @@ * The first integer is the region ID, the second is the object ID */ std::list< std::pair<int,int> > m_created_objects; + + /** + * \brief The root window to use when accessing the widgets. + */ + CEGUI::Window* m_rootWindow; };
--- a/src/gui/contenteditor/gameinfotab.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/gameinfotab.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,6 +13,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" #include "gameinfotab.h" #include <sstream> @@ -25,9 +27,10 @@ void GameInfoTab::init(CEGUI::Window* parent) { ContentEditorTab::init(parent); + m_rootWindow = parent; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - m_ShowBox = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("GameInfoTab/TextBox")); + m_ShowBox = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/GameInfoTab/TextBox")); } void GameInfoTab::update()
--- a/src/gui/contenteditor/gameinfotab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/gameinfotab.h Sun Jun 08 11:05:00 2014 +0200 @@ -90,6 +90,11 @@ * @brief holds the world info as string */ std::string m_world_info; + + /** + * \brief The root window to use when accessing the widgets. + */ + CEGUI::Window* m_rootWindow; };
--- a/src/gui/contenteditor/guitabs.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/guitabs.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,6 +13,11 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// +// TODO(Augustin Preda, 2014.03.29): This entire file seems to be unused. +// Verify if needed for anything and (if not used) remove it. +// + #include "guitabs.h" #include "Ogre.h"
--- a/src/gui/contenteditor/guitabs.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/guitabs.h Sun Jun 08 11:05:00 2014 +0200 @@ -1,99 +1,110 @@ -/* - * 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, either version 3 of the License, or - * (at your option) any later version. - * - * 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, see <http://www.gnu.org/licenses/>. - */ - -#ifndef GUITABS_H -#define GUITABS_H - -#include <contenttab.h> -#include <CEGUI/CEGUIWindow.h> -#include "OgreLog.h" - -namespace Ogre -{ - class Root; - class SceneManager; - class Camera; - class RenderTexture; -} - -class GuiTabs : public CEGUI::Window, public ContentTab, public Ogre::LogListener -{ -public: - GuiTabs(const CEGUI::String& type, const CEGUI::String& name); - - virtual void update(); - - virtual void messageLogged (const Ogre::String &message, Ogre::LogMessageLevel lml, bool maskDebug, const Ogre::String &logName); - - /** - * \fn void addTabWindow(CEGUI::Window *tab); - * \brief Adds a tab ContentTab window to the ContentEditor - * \param tab The ContentTab to add - */ - void addTabWindow(std::string name, ContentTab *tab); - - /** - * \param evt CEGUI event arguments - * \brief Called upon selecting a mesh from the combobox - * Updates the content of the editor scene to display the selected mesh. - */ - bool onMeshSelected(const CEGUI::EventArgs& evt); - - /** - * \param evt CEGUI event arguments - * \brief Called upon selecting a mesh from the submesh combobox - */ - bool onSubMeshSelected(const CEGUI::EventArgs& evt); - - /** - * \fn void tabExists(std::string tabName); - * \brief Checks if a ContentTab exists - * \param tabName Name of the ContentTab to check - */ - bool tabExists(std::string tabName); -private: - CEGUI::ListboxTextItem *m_listItem; - CEGUI::ListboxTextItem *m_subMeshListItem; - CEGUI::Window *m_tabLayout; - CEGUI::MultiLineEditbox *m_CapsBox; - CEGUI::PushButton *m_startBenchmarkButton; - Ogre::Log *m_log; - Ogre::Root *m_ogreRoot; - Ogre::SceneManager *m_sceneManager; - /** - * \var CEGUI::Window *m_rootWindow; - * \brief Pointer to the root window of this panel - */ - CEGUI::Window *m_rootWindow; - /** - * \var std::map<std::string, ContentTab*>; - * \brief Holds all registered ContentTabs - */ - std::map<std::string, ContentTab*> m_tabs; - CEGUI::TabControl* m_tabControl; - /** - * \var CEGUI::WindowManager *m_winManager; - * \brief Pointer to the CEGUI::WindowManager - */ - CEGUI::WindowManager *m_winManager; - - void initMeshSelector(); - bool onCloseButton(const CEGUI::EventArgs& evt); - void onAddSubMesh(const CEGUI::EventArgs& evt); -public: - static CEGUI::String WidgetTypeName; -}; - -#endif // GUITABS_H +/* + * 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, either version 3 of the License, or + * (at your option) any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +#ifndef GUITABS_H +#define GUITABS_H + +// +// TODO(Augustin Preda, 2014.03.29): This entire file seems to be unused. +// Verify if needed for anything and (if not used) remove it. +// + +#include <contenttab.h> + +#ifdef CEGUI_07 +#include <CEGUI/CEGUIWindow.h> +#else +#include "CEGUI/Window.h" +#endif + +#include "OgreLog.h" + +namespace Ogre +{ + class Root; + class SceneManager; + class Camera; + class RenderTexture; +} + +class GuiTabs : public CEGUI::Window, public ContentTab, public Ogre::LogListener +{ +public: + GuiTabs(const CEGUI::String& type, const CEGUI::String& name); + + virtual void update(); + + virtual void messageLogged (const Ogre::String &message, Ogre::LogMessageLevel lml, bool maskDebug, const Ogre::String &logName); + + /** + * \fn void addTabWindow(CEGUI::Window *tab); + * \brief Adds a tab ContentTab window to the ContentEditor + * \param tab The ContentTab to add + */ + void addTabWindow(std::string name, ContentTab *tab); + + /** + * \param evt CEGUI event arguments + * \brief Called upon selecting a mesh from the combobox + * Updates the content of the editor scene to display the selected mesh. + */ + bool onMeshSelected(const CEGUI::EventArgs& evt); + + /** + * \param evt CEGUI event arguments + * \brief Called upon selecting a mesh from the submesh combobox + */ + bool onSubMeshSelected(const CEGUI::EventArgs& evt); + + /** + * \fn void tabExists(std::string tabName); + * \brief Checks if a ContentTab exists + * \param tabName Name of the ContentTab to check + */ + bool tabExists(std::string tabName); +private: + CEGUI::ListboxTextItem *m_listItem; + CEGUI::ListboxTextItem *m_subMeshListItem; + CEGUI::Window *m_tabLayout; + CEGUI::MultiLineEditbox *m_CapsBox; + CEGUI::PushButton *m_startBenchmarkButton; + Ogre::Log *m_log; + Ogre::Root *m_ogreRoot; + Ogre::SceneManager *m_sceneManager; + /** + * \var CEGUI::Window *m_rootWindow; + * \brief Pointer to the root window of this panel + */ + CEGUI::Window *m_rootWindow; + /** + * \var std::map<std::string, ContentTab*>; + * \brief Holds all registered ContentTabs + */ + std::map<std::string, ContentTab*> m_tabs; + CEGUI::TabControl* m_tabControl; + /** + * \var CEGUI::WindowManager *m_winManager; + * \brief Pointer to the CEGUI::WindowManager + */ + CEGUI::WindowManager *m_winManager; + + void initMeshSelector(); + bool onCloseButton(const CEGUI::EventArgs& evt); + void onAddSubMesh(const CEGUI::EventArgs& evt); +public: + static CEGUI::String WidgetTypeName; +}; + +#endif // GUITABS_H
--- a/src/gui/contenteditor/itemeditor.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/itemeditor.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,12 +13,35 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h" +// +// Includes +// + +// +// Own header +// +#include "itemeditor.h" + +// +// C++ system headers. +// + +#include <map> +#include <string> + +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + +#ifdef CEGUI_07 +#include "CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h" +#else +#include "CEGUI/RendererModules/Ogre/Renderer.h" +#endif + #include <OgreHardwarePixelBuffer.h> #include <OgreMeshManager.h> #include "graphicmanager.h" -#include "itemeditor.h" #include "renderinfoeditor.h" #include "contenteditor.h" #include "player.h" @@ -26,32 +49,51 @@ void ItemEditor::init(CEGUI::Window* parent) { ContentEditorTab::init(parent); + m_rootWindow = parent; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - CEGUI::PushButton* xmlsubmitButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("ItemTab/XML/SubmitButton")); + CEGUI::PushButton* xmlsubmitButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/XML/SubmitButton")); xmlsubmitButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&ItemEditor::onItemXMLModified, this)); - CEGUI::PushButton* createDropButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("ItemTab/Create/CreateDropButton")); + CEGUI::PushButton* createDropButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/Create/CreateDropButton")); createDropButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&ItemEditor::onItemCreateDrop, this)); - CEGUI::PushButton* createInvButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("ItemTab/Create/CreateInventoryButton")); + CEGUI::PushButton* createInvButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/Create/CreateInventoryButton")); createInvButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&ItemEditor::onItemCreateInInventory, this)); - CEGUI::Spinner* enchantMin = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/General/EnchantMinSpinner")); + CEGUI::Spinner* enchantMin = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/General/EnchantMinSpinner")); enchantMin->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); - CEGUI::Spinner* enchantMax = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/General/EnchantMaxSpinner")); + CEGUI::Spinner* enchantMax = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/General/EnchantMaxSpinner")); enchantMax->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); - CEGUI::Spinner* price = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/General/PriceSpinner")); + CEGUI::Spinner* price = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/General/PriceSpinner")); price->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); - CEGUI::Editbox* nameBox = static_cast<CEGUI::Editbox*>(win_mgr.getWindow("ItemTab/General/NameBox")); + CEGUI::Editbox* nameBox = static_cast<CEGUI::Editbox*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/General/NameBox")); nameBox->subscribeEvent(CEGUI::Editbox::EventTextChanged, CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); - - CEGUI::Combobox* typeSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("ItemTab/Properties/TypeBox")); - typeSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); + + CEGUI::Combobox* typeSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox")); + + typeSelector->subscribeEvent( + CEGUI::Combobox::EventListSelectionAccepted, + CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); + typeSelector->addItem(new CEGUI::ListboxTextItem("Armor")); typeSelector->addItem(new CEGUI::ListboxTextItem("Weapon")); typeSelector->addItem(new CEGUI::ListboxTextItem("Helmet")); @@ -61,118 +103,227 @@ typeSelector->addItem(new CEGUI::ListboxTextItem("Shield")); typeSelector->addItem(new CEGUI::ListboxTextItem("Potion")); typeSelector->setText("Armor"); - typeSelector->setSelection(0,0); + typeSelector->setSelection(0, 0); - CEGUI::Combobox* sizeSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("ItemTab/Properties/SizeBox")); + CEGUI::Combobox* sizeSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/SizeBox")); sizeSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); sizeSelector->addItem(new CEGUI::ListboxTextItem("Big")); sizeSelector->addItem(new CEGUI::ListboxTextItem("Medium")); sizeSelector->addItem(new CEGUI::ListboxTextItem("Small")); sizeSelector->setText("Big"); - sizeSelector->setSelection(0,0); + sizeSelector->setSelection(0, 0); - CEGUI::PushButton* copyfoButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("ItemTab/Properties/CopyDataButton")); + CEGUI::PushButton* copyfoButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/CopyDataButton")); copyfoButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&ItemEditor::onCopyData, this)); // wire weaponattr tab - CEGUI::Editbox* wtype = static_cast<CEGUI::Editbox*>(win_mgr.getWindow("ItemTab/Weapon/TypeBox")); + CEGUI::Editbox* wtype = static_cast<CEGUI::Editbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox")); wtype->subscribeEvent(CEGUI::Editbox::EventTextChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* physMin = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/PhysMinSpinner")); + CEGUI::Spinner* physMin = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMinSpinner")); physMin->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* physMax = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/PhysMaxSpinner")); + CEGUI::Spinner* physMax = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMaxSpinner")); physMax->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* physMult = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/PhysMultSpinner")); + CEGUI::Spinner* physMult = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMultSpinner")); physMult->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* fireMin = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/FireMinSpinner")); + CEGUI::Spinner* fireMin = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMinSpinner")); fireMin->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* fireMax = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/FireMaxSpinner")); + CEGUI::Spinner* fireMax = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMaxSpinner")); fireMax->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onItemModified, this)); - CEGUI::Spinner* fireMult = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/FireMultSpinner")); + CEGUI::Spinner* fireMult = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMultSpinner")); fireMult->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* iceMin = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/IceMinSpinner")); + CEGUI::Spinner* iceMin = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMinSpinner")); iceMin->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* iceMax = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/IceMaxSpinner")); + CEGUI::Spinner* iceMax = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMaxSpinner")); iceMax->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* iceMult = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/IceMultSpinner")); + CEGUI::Spinner* iceMult = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMultSpinner")); iceMult->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* airMin = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/AirMinSpinner")); + CEGUI::Spinner* airMin = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMinSpinner")); airMin->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* airMax = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/AirMaxSpinner")); + CEGUI::Spinner* airMax = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMaxSpinner")); airMax->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* airMult = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/AirMultSpinner")); + CEGUI::Spinner* airMult = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMultSpinner")); airMult->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* precision = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/PrecisionSpinner")); + CEGUI::Spinner* precision = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PrecisionSpinner")); precision->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* power = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/PowerSpinner")); + CEGUI::Spinner* power = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PowerSpinner")); power->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* range = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/RangeSpinner")); + CEGUI::Spinner* range = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/RangeSpinner")); range->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* speed = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/SpeedSpinner")); + CEGUI::Spinner* speed = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/SpeedSpinner")); speed->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Spinner* critperc = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Weapon/CritPercentSpinner")); + CEGUI::Spinner* critperc = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/CritPercentSpinner")); critperc->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); - CEGUI::Checkbox* twohanded = static_cast<CEGUI::Checkbox*>(win_mgr.getWindow("ItemTab/Weapon/TwohandedCheckbox")); - twohanded->subscribeEvent(CEGUI::Checkbox::EventCheckStateChanged, CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); + CEGUIUtility::ToggleButton* twohanded = static_cast<CEGUIUtility::ToggleButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/TwohandedCheckbox")); + twohanded->subscribeEvent(CEGUIUtility::EventToggleButtonStateChanged(), CEGUI::Event::Subscriber(&ItemEditor::onWeaponModified, this)); // Wire the consume tab - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/HealthSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/BlindSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/PoisonedSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/BerserkSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/ConfusedSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/MuteSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/ParalyzedSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/FrozenSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Consume/BurningSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/HealthSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BlindSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/PoisonedSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BerserkSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ConfusedSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/MuteSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ParalyzedSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/FrozenSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BurningSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onConsumeEffectsModified, this)); // wire the equip tab - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/HealthSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/StrengthSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/DexteritySpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/MagicPowerSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/WillpowerSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/PhysResSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/FireResSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/IceResSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/AirResSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/ArmorSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/BlockSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/AttackSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); - static_cast<CEGUI::Spinner*>(win_mgr.getWindow("ItemTab/Equip/PowerSpinner"))-> subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/HealthSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/StrengthSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/DexteritySpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/MagicPowerSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/WillpowerSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PhysResSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/FireResSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/IceResSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AirResSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/ArmorSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/BlockSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AttackSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); + + static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PowerSpinner"))->subscribeEvent( + CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&ItemEditor::onEquipEffectsModified, this)); // init the internal data + TiXmlNode* linkedNode = NULL; TiXmlElement * item_root = new TiXmlElement("Item"); - m_item_xml.LinkEndChild( item_root ); - item_root->SetAttribute("subtype","EditorItem"); + linkedNode = m_item_xml.LinkEndChild(item_root); + if (linkedNode != NULL) + { + // Only use item_root if it was not deleted. + item_root->SetAttribute("subtype", "EditorItem"); + TiXmlElement * item_image = new TiXmlElement("Image"); + item_image->SetAttribute("image", "noMedia.png"); // previously: "set:noMedia.png image:full_image" + item_root->LinkEndChild(item_image); - TiXmlElement * item_image = new TiXmlElement("Image"); - item_image->SetAttribute("image","set:noMedia.png image:full_image"); - item_root->LinkEndChild(item_image); - - TiXmlElement * item_ri = new TiXmlElement("RenderInfo"); - item_ri->SetAttribute("name","EditorRenderInfo"); - item_root->LinkEndChild(item_ri); + TiXmlElement * item_ri = new TiXmlElement("RenderInfo"); + item_ri->SetAttribute("name", "EditorRenderInfo"); + item_root->LinkEndChild(item_ri); + } // init the data m_edited_item.m_subtype = "EditorItem"; @@ -185,8 +336,8 @@ Ogre::Camera* item_camera = editor_scene_mng->createCamera("item_camera"); item_camera->setNearClipDistance(0.1); item_camera->setAspectRatio(1.0); - item_camera->setPosition(Ogre::Vector3(0,1,0)); - item_camera->lookAt(Ogre::Vector3(0,0,0)); + item_camera->setPosition(Ogre::Vector3(0, 1, 0)); + item_camera->lookAt(Ogre::Vector3(0, 0, 0)); m_unique_id = 1; @@ -216,13 +367,14 @@ void ItemEditor::updateAllItemList() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - CEGUI::Combobox* copyItemSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("ItemTab/Properties/CopyDataBox")); + CEGUI::Combobox* copyItemSelector = static_cast<CEGUI::Combobox*>( + CEGUIUtility::getWindowForLoadedLayout( + m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/CopyDataBox")); // Fill list of all FixedObjects - const std::map<Item::Subtype,ItemBasicData*>& all_items = ItemFactory::getAllItemData(); - std::map<Item::Subtype,ItemBasicData*>::const_iterator it; + const std::map<Item::Subtype, ItemBasicData*>& all_items = ItemFactory::getAllItemData(); + std::map<Item::Subtype, ItemBasicData*>::const_iterator it; for (it = all_items.begin(); it != all_items.end(); ++it) { copyItemSelector->addItem(new CEGUI::ListboxTextItem(it->first.c_str())); @@ -232,35 +384,84 @@ bool ItemEditor::onItemModified(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; + } + m_no_cegui_events = true; - m_edited_item.m_price = (int) getSpinnerValue("ItemTab/General/PriceSpinner",1); - m_edited_item.m_min_enchant = getSpinnerValue("ItemTab/General/EnchantMinSpinner",1); - m_edited_item.m_max_enchant = getSpinnerValue("ItemTab/General/EnchantMaxSpinner",1); + m_edited_item.m_price = (int) getSpinnerValue( + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/PriceSpinner", + 1); + + m_edited_item.m_min_enchant = getSpinnerValue( + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/EnchantMinSpinner", + 1); + + m_edited_item.m_max_enchant = getSpinnerValue( + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/EnchantMaxSpinner", + 1); + if (m_edited_item.m_max_enchant < m_edited_item.m_min_enchant) { m_edited_item.m_max_enchant = m_edited_item.m_min_enchant; - setSpinnerValue("ItemTab/General/EnchantMaxSpinner",m_edited_item.m_max_enchant); + setSpinnerValue( + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/EnchantMaxSpinner", + m_edited_item.m_max_enchant); } - m_edited_item.m_name = getWindowText("ItemTab/General/NameBox","EditorItem"); + m_edited_item.m_name = getWindowText("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/NameBox", "EditorItem"); - std::string type = getWindowText("ItemTab/Properties/TypeBox","Weapon"); + std::string type = getWindowText("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Weapon"); m_edited_item.m_type = Item::WEAPON; - if (type == "Armor") m_edited_item.m_type = Item::ARMOR; - else if (type == "Weapon") m_edited_item.m_type = Item::WEAPON; - else if (type == "Helmet") m_edited_item.m_type = Item::HELMET; - else if (type == "Gloves") m_edited_item.m_type = Item::GLOVES; - else if (type == "Ring") m_edited_item.m_type = Item::RING; - else if (type == "Amulet") m_edited_item.m_type = Item::AMULET; - else if (type == "Shield") m_edited_item.m_type = Item::SHIELD; - else if (type == "Potion") m_edited_item.m_type = Item::POTION; + if (type == "Armor") + { + m_edited_item.m_type = Item::ARMOR; + } + else if (type == "Weapon") + { + m_edited_item.m_type = Item::WEAPON; + } + else if (type == "Helmet") + { + m_edited_item.m_type = Item::HELMET; + } + else if (type == "Gloves") + { + m_edited_item.m_type = Item::GLOVES; + } + else if (type == "Ring") + { + m_edited_item.m_type = Item::RING; + } + else if (type == "Amulet") + { + m_edited_item.m_type = Item::AMULET; + } + else if (type == "Shield") + { + m_edited_item.m_type = Item::SHIELD; + } + else if (type == "Potion") + { + m_edited_item.m_type = Item::POTION; + } - std::string size = getWindowText("ItemTab/Properties/SizeBox","Big"); + std::string size = getWindowText( + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Properties/SizeBox", "Big"); + m_edited_item.m_size = Item::BIG; - if (size == "Big") m_edited_item.m_size = Item::BIG; - else if (size == "Medium") m_edited_item.m_size = Item::MEDIUM; - else if (size == "Small") m_edited_item.m_size = Item::SMALL; + if (size == "Big") + { + m_edited_item.m_size = Item::BIG; + } + else if (size == "Medium") + { + m_edited_item.m_size = Item::MEDIUM; + } + else if (size == "Small") + { + m_edited_item.m_size = Item::SMALL; + } m_no_cegui_events = false; m_modified_item = true; @@ -271,7 +472,10 @@ bool ItemEditor::onWeaponModified(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; + } + m_no_cegui_events = true; if (m_edited_item.m_weapon_attr == 0) @@ -279,53 +483,53 @@ m_edited_item.m_weapon_attr = new WeaponAttr; } - m_edited_item.m_weapon_attr->m_weapon_type = getWindowText("ItemTab/Weapon/TypeLabel","sword"); + m_edited_item.m_weapon_attr->m_weapon_type = getWindowText("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/TypeLabel", "sword"); Damage& dmg = m_edited_item.m_weapon_attr->m_damage; - dmg.m_min_damage[Damage::PHYSICAL] = getSpinnerValue("ItemTab/Weapon/PhysMinSpinner",1); - dmg.m_max_damage[Damage::PHYSICAL] = getSpinnerValue("ItemTab/Weapon/PhysMaxSpinner",1); + dmg.m_min_damage[Damage::PHYSICAL] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMinSpinner", 1); + dmg.m_max_damage[Damage::PHYSICAL] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMaxSpinner", 1); if (dmg.m_max_damage[Damage::PHYSICAL] < dmg.m_min_damage[Damage::PHYSICAL]) { dmg.m_max_damage[Damage::PHYSICAL] = dmg.m_min_damage[Damage::PHYSICAL]; - setSpinnerValue("ItemTab/Weapon/PhysMaxSpinner",dmg.m_max_damage[Damage::PHYSICAL]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMaxSpinner", dmg.m_max_damage[Damage::PHYSICAL]); } - dmg.m_multiplier[Damage::PHYSICAL] = getSpinnerValue("ItemTab/Weapon/PhysMultSpinner",1); + dmg.m_multiplier[Damage::PHYSICAL] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMultSpinner", 1); - dmg.m_min_damage[Damage::FIRE] = getSpinnerValue("ItemTab/Weapon/FireMinSpinner",1); - dmg.m_max_damage[Damage::FIRE] = getSpinnerValue("ItemTab/Weapon/FireMaxSpinner",1); + dmg.m_min_damage[Damage::FIRE] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMinSpinner", 1); + dmg.m_max_damage[Damage::FIRE] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMaxSpinner", 1); if (dmg.m_max_damage[Damage::FIRE] < dmg.m_min_damage[Damage::FIRE]) { dmg.m_max_damage[Damage::FIRE] = dmg.m_min_damage[Damage::FIRE]; - setSpinnerValue("ItemTab/Weapon/FireMaxSpinner",dmg.m_max_damage[Damage::FIRE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMaxSpinner", dmg.m_max_damage[Damage::FIRE]); } - dmg.m_multiplier[Damage::FIRE] = getSpinnerValue("ItemTab/Weapon/FireMultSpinner",1); + dmg.m_multiplier[Damage::FIRE] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMultSpinner", 1); - dmg.m_min_damage[Damage::ICE] = getSpinnerValue("ItemTab/Weapon/IceMinSpinner",1); - dmg.m_max_damage[Damage::ICE] = getSpinnerValue("ItemTab/Weapon/IceMaxSpinner",1); + dmg.m_min_damage[Damage::ICE] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMinSpinner", 1); + dmg.m_max_damage[Damage::ICE] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMaxSpinner", 1); if (dmg.m_max_damage[Damage::ICE] < dmg.m_min_damage[Damage::ICE]) { dmg.m_max_damage[Damage::ICE] = dmg.m_min_damage[Damage::ICE]; - setSpinnerValue("ItemTab/Weapon/IceMaxSpinner",dmg.m_max_damage[Damage::ICE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMaxSpinner", dmg.m_max_damage[Damage::ICE]); } - dmg.m_multiplier[Damage::ICE] = getSpinnerValue("ItemTab/Weapon/IceMultSpinner",1); + dmg.m_multiplier[Damage::ICE] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMultSpinner", 1); - dmg.m_min_damage[Damage::AIR] = getSpinnerValue("ItemTab/Weapon/AirMinSpinner",1); - dmg.m_max_damage[Damage::AIR] = getSpinnerValue("ItemTab/Weapon/AirMaxSpinner",1); + dmg.m_min_damage[Damage::AIR] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMinSpinner", 1); + dmg.m_max_damage[Damage::AIR] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMaxSpinner", 1); if (dmg.m_max_damage[Damage::AIR] < dmg.m_min_damage[Damage::AIR]) { dmg.m_max_damage[Damage::AIR] = dmg.m_min_damage[Damage::AIR]; - setSpinnerValue("ItemTab/Weapon/AirMaxSpinner",dmg.m_max_damage[Damage::AIR]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMaxSpinner", dmg.m_max_damage[Damage::AIR]); } - dmg.m_multiplier[Damage::AIR] = getSpinnerValue("ItemTab/Weapon/AirMultSpinner",1); + dmg.m_multiplier[Damage::AIR] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMultSpinner", 1); - dmg.m_attack = getSpinnerValue("ItemTab/Weapon/PrecisionSpinner",1); - dmg.m_power = getSpinnerValue("ItemTab/Weapon/PowerSpinner",1); - dmg.m_crit_perc = 0.01* getSpinnerValue("ItemTab/Weapon/CritPercentSpinner",1); + dmg.m_attack = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PrecisionSpinner", 1); + dmg.m_power = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PowerSpinner", 1); + dmg.m_crit_perc = 0.01* getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/CritPercentSpinner", 1); - m_edited_item.m_weapon_attr->m_attack_range = getSpinnerValue("ItemTab/Weapon/RangeSpinner"); - m_edited_item.m_weapon_attr->m_dattack_speed = (int) getSpinnerValue("ItemTab/Weapon/SpeedSpinner"); - m_edited_item.m_weapon_attr->m_two_handed = getCheckboxSelected("ItemTab/Weapon/TwohandedCheckbox"); + m_edited_item.m_weapon_attr->m_attack_range = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/RangeSpinner"); + m_edited_item.m_weapon_attr->m_dattack_speed = (int) getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/SpeedSpinner"); + m_edited_item.m_weapon_attr->m_two_handed = getCheckboxSelected("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/TwohandedCheckbox"); m_no_cegui_events = false; m_modified_item = true; @@ -336,7 +540,10 @@ bool ItemEditor::onConsumeEffectsModified(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; + } + m_no_cegui_events = true; if (m_edited_item.m_useup_effect == 0) @@ -346,15 +553,15 @@ CreatureDynAttrMod* dynmod = m_edited_item.m_useup_effect; - dynmod->m_dhealth = getSpinnerValue("ItemTab/Consume/HealthSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::BLIND] = getSpinnerValue("ItemTab/Consume/BlindSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::POISONED] = getSpinnerValue("ItemTab/Consume/PoisonedSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::BERSERK] = getSpinnerValue("ItemTab/Consume/BerserkSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::CONFUSED] = getSpinnerValue("ItemTab/Consume/ConfusedSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::MUTE] = getSpinnerValue("ItemTab/Consume/MuteSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::PARALYZED] = getSpinnerValue("ItemTab/Consume/ParalyzedSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::FROZEN] = getSpinnerValue("ItemTab/Consume/FrozenSpinner"); - dynmod->m_dstatus_mod_immune_time[Damage::BURNING] = getSpinnerValue("ItemTab/Consume/BurningSpinner"); + dynmod->m_dhealth = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/HealthSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::BLIND] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BlindSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::POISONED] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/PoisonedSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::BERSERK] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BerserkSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::CONFUSED] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ConfusedSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::MUTE] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/MuteSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::PARALYZED] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ParalyzedSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::FROZEN] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/FrozenSpinner"); + dynmod->m_dstatus_mod_immune_time[Damage::BURNING] = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BurningSpinner"); m_no_cegui_events = false; m_modified_item = true; @@ -365,7 +572,10 @@ bool ItemEditor::onEquipEffectsModified(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; + } + m_no_cegui_events = true; if (m_edited_item.m_equip_effect == 0) @@ -375,22 +585,40 @@ CreatureBaseAttrMod* basemod = m_edited_item.m_equip_effect; - basemod->m_dmax_health = getSpinnerValue("ItemTab/Equip/HealthSpinner"); + basemod->m_dmax_health = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/HealthSpinner"); - basemod->m_dstrength = (int) getSpinnerValue("ItemTab/Equip/StrengthSpinner"); - basemod->m_ddexterity = (int) getSpinnerValue("ItemTab/Equip/DexteritySpinner"); - basemod->m_dmagic_power = (int) getSpinnerValue("ItemTab/Equip/MagicPowerSpinner"); - basemod->m_dwillpower = (int) getSpinnerValue("ItemTab/Equip/WillpowerSpinner"); + basemod->m_dstrength = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/StrengthSpinner")); + + basemod->m_ddexterity = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/DexteritySpinner")); + + basemod->m_dmagic_power = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/MagicPowerSpinner")); + basemod->m_dwillpower = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/WillpowerSpinner")); - basemod->m_dresistances[Damage::PHYSICAL] = (int) getSpinnerValue("ItemTab/Equip/PhysResSpinner"); - basemod->m_dresistances[Damage::FIRE] = (int) getSpinnerValue("ItemTab/Equip/FireResSpinner"); - basemod->m_dresistances[Damage::ICE] = (int) getSpinnerValue("ItemTab/Equip/IceResSpinner"); - basemod->m_dresistances[Damage::AIR] = (int) getSpinnerValue("ItemTab/Equip/AirResSpinner"); + basemod->m_dresistances[Damage::PHYSICAL] = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PhysResSpinner")); + + basemod->m_dresistances[Damage::FIRE] = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/FireResSpinner")); + basemod->m_dresistances[Damage::ICE] = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/IceResSpinner")); + basemod->m_dresistances[Damage::AIR] = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AirResSpinner")); - basemod->m_darmor = (int) getSpinnerValue("ItemTab/Equip/ArmorSpinner"); - basemod->m_dblock = (int) getSpinnerValue("ItemTab/Equip/BlockSpinner"); - basemod->m_dattack = (int) getSpinnerValue("ItemTab/Equip/AttackSpinner"); - basemod->m_dpower = (int) getSpinnerValue("ItemTab/Equip/PowerSpinner"); + basemod->m_darmor = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/ArmorSpinner")); + + basemod->m_dblock = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/BlockSpinner")); + + basemod->m_dattack = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AttackSpinner")); + + basemod->m_dpower = static_cast<int>( + getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PowerSpinner")); m_no_cegui_events = false; @@ -401,8 +629,8 @@ bool ItemEditor::onItemXMLModified(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("ItemTab/XML/ItemXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/XML/ItemXMLEditbox")); // Parse the editor text to XML // use temporary XML document for recovering from errors @@ -421,7 +649,7 @@ m_item_xml.LinkEndChild(item_temp_xml.RootElement()->Clone()); // parse the XML to the fixed object data - std::string subtype = ItemLoader::loadItem(m_item_xml.FirstChildElement(),true); + std::string subtype = ItemLoader::loadItem(m_item_xml.FirstChildElement(), true); // copy to the local Data structure ItemBasicData* data = ItemFactory::getItemBasicData(subtype); if (data != 0) @@ -438,7 +666,9 @@ int err_row = item_temp_xml.ErrorRow(); int err_col = item_temp_xml.ErrorCol(); - setMultiLineEditboxCursor("ItemTab/XML/ItemXMLEditbox",err_row,err_col); + setMultiLineEditboxCursor( + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/XML/ItemXMLEditbox", + err_row, err_col); } return true; @@ -446,7 +676,6 @@ Item* ItemEditor::createItem() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); RenderInfoEditor* ri_editor = dynamic_cast<RenderInfoEditor*>(ContentEditor::getSingleton().getComponent("RIEditor")); // create an item picture @@ -460,10 +689,10 @@ Ogre::SceneNode* topnode = ri_editor->getEditedGraphicObject()->getTopNode(); topnode->_updateBounds(); - Ogre::Vector3 bbox_min(1000,1000,1000); - Ogre::Vector3 bbox_max(-1000,-1000,-1000); + Ogre::Vector3 bbox_min(1000, 1000, 1000); + Ogre::Vector3 bbox_max(-1000, -1000, -1000); - getNodeBounds(topnode,bbox_min,bbox_max); + getNodeBounds(topnode, bbox_min, bbox_max); double size_x = bbox_max[0] - bbox_min[0]; double size_z = bbox_max[2] - bbox_min[2]; @@ -473,10 +702,10 @@ //DEBUG("box %f %f %f - %f %f %f",bbox_min[0],bbox_min[1],bbox_min[2],bbox_max[0],bbox_max[1],bbox_max[2]); - item_camera->setPosition(Ogre::Vector3(center_x, viewsize*sqrt(double(2)),center_z)); + item_camera->setPosition(Ogre::Vector3(center_x, viewsize*sqrt(double(2)), center_z)); // item_camera->setPosition(Ogre::Vector3(center_x, 1,center_z)); //item_camera->setPosition(Ogre::Vector3(0,1,0)); - item_camera->lookAt(Ogre::Vector3(center_x, 0,center_z)); + item_camera->lookAt(Ogre::Vector3(center_x, 0, center_z)); // texture that is created from the camera image Ogre::TexturePtr item_texture = Ogre::TextureManager::getSingleton().createManual( std::string("item_tex_") + idstream.str(), @@ -487,12 +716,14 @@ Ogre::RenderTarget* item_rt = item_texture->getBuffer()->getRenderTarget(); item_rt->setAutoUpdated(false); Ogre::Viewport *item_view = item_rt->addViewport(item_camera ); - item_view->setClearEveryFrame( true ); - item_view->setOverlaysEnabled (false); - item_view->setBackgroundColour(Ogre::ColourValue(0,0,0,1.0) ); + item_view->setClearEveryFrame(true); + item_view->setOverlaysEnabled(false); + item_view->setBackgroundColour(Ogre::ColourValue(0, 0, 0, 1.0) ); +#ifdef CEGUI_07 // create a CEGUI Image from the Texture - CEGUI::Texture& item_ceguiTex = static_cast<CEGUI::OgreRenderer*>(CEGUI::System::getSingleton().getRenderer())->createTexture(item_texture); + CEGUI::Texture& item_ceguiTex = static_cast<CEGUI::OgreRenderer*>( + CEGUI::System::getSingleton().getRenderer())->createTexture(item_texture); CEGUI::Imageset& item_textureImageSet = CEGUI::ImagesetManager::getSingleton().create(std::string("item_imageset_") + idstream.str(), item_ceguiTex); @@ -500,10 +731,30 @@ CEGUI::Point( 0.0f, 0.0f ), CEGUI::Size( item_ceguiTex.getSize().d_width, item_ceguiTex.getSize().d_height ), CEGUI::Point( 0.0f, 0.0f ) ); - +#else + + CEGUI::String imageName ("item_img_"+ idstream.str()); + CEGUI::String textureName ("ItemEditorTexture"); + + if (! CEGUI::System::getSingleton ().getRenderer ()->isTextureDefined (textureName) + && ! CEGUI::ImageManager::getSingleton().isDefined(imageName)) + { + CEGUI::Texture &item_ceguiTex = static_cast<CEGUI::OgreRenderer*> + (CEGUI::System::getSingleton ().getRenderer ())->createTexture (textureName, item_texture); + + CEGUI::OgreRenderer* rendererPtr = static_cast<CEGUI::OgreRenderer*>(CEGUI::System::getSingleton().getRenderer()); + CEGUI::TextureTarget* d_textureTarget; + CEGUI::BasicImage* d_textureTargetImage; + d_textureTarget = rendererPtr->createTextureTarget(); + d_textureTargetImage = static_cast<CEGUI::BasicImage*>(&CEGUI::ImageManager::getSingleton().create("BasicImage", imageName)); + d_textureTargetImage->setTexture(&item_ceguiTex); + d_textureTargetImage->setArea(CEGUI::Rectf(0, 0, item_ceguiTex.getSize ().d_width, item_ceguiTex.getSize ().d_height)); + } +#endif item_rt->update(); - CEGUI::Window* label = win_mgr.getWindow("ItemTab/BM/itemPreview"); + CEGUI::Window* label = CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/BM/itemPreview"); // reparse and update the FixedObject Data // create a unique renderinfo (to avoid that the object is modified by the editor after creation) @@ -511,25 +762,32 @@ // temporarily replace the renderinfo name TiXmlElement * item_ri = m_item_xml.RootElement()->FirstChildElement("RenderInfo"); if (item_ri == 0) + { return 0; + } + std::string name = item_ri->Attribute("name"); - item_ri->SetAttribute("name",unique_ri.c_str()); + item_ri->SetAttribute("name", unique_ri.c_str()); // temporarily replace the image name TiXmlElement * item_image = m_item_xml.RootElement()->FirstChildElement("Image"); if (item_image == 0) - return 0; + { + return 0; + } + std::string image = item_image->Attribute("image"); - if (image == "set:noMedia.png image:full_image") + if (image == "noMedia.png") // previously: "set:noMedia.png image:full_image" { std::stringstream itemimage; - itemimage << "set:item_imageset_" << idstream.str()<< " " << "image:item_img_" << idstream.str(); + //itemimage << "set:item_imageset_" << idstream.str()<< " " << "image:item_img_" << idstream.str(); + itemimage << "item_img_" << idstream.str(); label->setProperty("Image", itemimage.str().c_str()); // itemimage.str(""); // itemimage << "set:editor_imageset image:editor_img"; - item_image->SetAttribute("image",itemimage.str().c_str()); + item_image->SetAttribute("image", itemimage.str().c_str()); } // make the item subtype unique by adding a number @@ -537,16 +795,16 @@ std::stringstream stream; stream << plain_subtype << m_unique_id; m_unique_id++; - m_item_xml.RootElement()->SetAttribute("subtype",stream.str().c_str()); + m_item_xml.RootElement()->SetAttribute("subtype", stream.str().c_str()); - std::string subtype = ItemLoader::loadItem(m_item_xml.FirstChildElement(),true); + std::string subtype = ItemLoader::loadItem(m_item_xml.FirstChildElement(), true); // reset the changed attributes - item_ri->SetAttribute("name",name.c_str()); - m_item_xml.RootElement()->SetAttribute("subtype",plain_subtype.c_str()); - item_image->SetAttribute("image",image.c_str()); + item_ri->SetAttribute("name", name.c_str()); + m_item_xml.RootElement()->SetAttribute("subtype", plain_subtype.c_str()); + item_image->SetAttribute("image", image.c_str()); - float magic = getSpinnerValue("ItemTab/Create/EnchantSpinner",0); + float magic = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Create/EnchantSpinner", 0); Item::Type type = ItemFactory::getBaseType(subtype); Item* item = ItemFactory::createItem(type, subtype, 0, magic); return item; @@ -556,11 +814,16 @@ { World* world = World::getWorld(); if (world == 0) + { return true; + } WorldObject* player = world->getLocalPlayer(); if (player == 0) + { return true; + } + Region* region = player->getRegion(); // if the position is set to default, use the player position @@ -569,8 +832,11 @@ // create the object Item* item = createItem(); if (item == 0) + { return true; - region->dropItem(item,pos); + } + + region->dropItem(item, pos); return true; } @@ -579,29 +845,40 @@ { World* world = World::getWorld(); if (world == 0) + { return true; + } WorldObject* player = world->getLocalPlayer(); if (player == 0) + { return true; + } Item* item = createItem(); if (item == 0) + { return true; + } + static_cast<Player*>(player)->insertItem(item); return true; } bool ItemEditor::onCopyData(const CEGUI::EventArgs& evt) { - std::string objname = getComboboxSelection("ItemTab/Properties/CopyDataBox", ""); + std::string objname = getComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Properties/CopyDataBox", ""); if (objname == "") + { return true; + } ItemBasicData* data = ItemFactory::getItemBasicData(objname); if (data == 0) + { return true; + } data->m_subtype = "EditorItem"; @@ -615,8 +892,6 @@ void ItemEditor::updateItemXML() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // update the XML representation m_edited_item.writeToXML(m_item_xml.FirstChildElement()); @@ -624,7 +899,8 @@ TiXmlPrinter printer; m_item_xml.Accept(&printer); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("ItemTab/XML/ItemXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/XML/ItemXMLEditbox")); editor->setText(printer.CStr()); } @@ -632,57 +908,81 @@ { m_no_cegui_events = true; - setSpinnerValue("ItemTab/General/PriceSpinner",m_edited_item.m_price); - setSpinnerValue("ItemTab/General/EnchantMinSpinner",m_edited_item.m_min_enchant); - setSpinnerValue("ItemTab/General/EnchantMaxSpinner",m_edited_item.m_max_enchant); - setWindowText("ItemTab/General/NameBox",m_edited_item.m_name); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/PriceSpinner", m_edited_item.m_price); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/EnchantMinSpinner", m_edited_item.m_min_enchant); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/EnchantMaxSpinner", m_edited_item.m_max_enchant); + setWindowText("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/NameBox", m_edited_item.m_name); Item::Type type = m_edited_item.m_type; - if (type == Item::ARMOR) setComboboxSelection("ItemTab/Properties/TypeBox","Armor"); - else if (type == Item::WEAPON) setComboboxSelection("ItemTab/Properties/TypeBox","Weapon"); - else if (type == Item::HELMET) setComboboxSelection("ItemTab/Properties/TypeBox","Helmet"); - else if (type == Item::GLOVES) setComboboxSelection("ItemTab/Properties/TypeBox","Gloves"); - else if (type == Item::RING) setComboboxSelection("ItemTab/Properties/TypeBox","Ring"); - else if (type == Item::AMULET) setComboboxSelection("ItemTab/Properties/TypeBox","Amulet"); - else if (type == Item::SHIELD) setComboboxSelection("ItemTab/Properties/TypeBox","Shield"); - else if (type == Item::POTION) setComboboxSelection("ItemTab/Properties/TypeBox","Potion"); + if (type == Item::ARMOR) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Armor"); + } + else if (type == Item::WEAPON) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Weapon"); + } + else if (type == Item::HELMET) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Helmet"); + } + else if (type == Item::GLOVES) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Gloves"); + } + else if (type == Item::RING) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Ring"); + } + else if (type == Item::AMULET) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Amulet"); + } + else if (type == Item::SHIELD) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Shield"); + } + else if (type == Item::POTION) + { + setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/General/TypeBox", "Potion"); + } Item::Size size = m_edited_item.m_size; - if (size == Item::BIG) setComboboxSelection("ItemTab/Properties/SizeBox","Big"); - else if (size == Item::MEDIUM) setComboboxSelection("ItemTab/Properties/SizeBox","Medium"); - else if (size == Item::SMALL) setComboboxSelection("ItemTab/Properties/SizeBox","Small"); + if (size == Item::BIG) setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Properties/SizeBox","Big"); + else if (size == Item::MEDIUM) setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Properties/SizeBox","Medium"); + else if (size == Item::SMALL) setComboboxSelection("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Properties/SizeBox","Small"); // update weapon properties if (m_edited_item.m_weapon_attr != 0) { Damage& dmg = m_edited_item.m_weapon_attr->m_damage; - setWindowText("ItemTab/Weapon/TypeBox",m_edited_item.m_weapon_attr->m_weapon_type); + setWindowText("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/TypeBox", m_edited_item.m_weapon_attr->m_weapon_type); - setSpinnerValue("ItemTab/Weapon/PhysMinSpinner",dmg.m_min_damage[Damage::PHYSICAL]); - setSpinnerValue("ItemTab/Weapon/PhysMaxSpinner",dmg.m_max_damage[Damage::PHYSICAL]); - setSpinnerValue("ItemTab/Weapon/PhysMultSpinner",dmg.m_multiplier[Damage::PHYSICAL]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMinSpinner", dmg.m_min_damage[Damage::PHYSICAL]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMaxSpinner", dmg.m_max_damage[Damage::PHYSICAL]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PhysMultSpinner", dmg.m_multiplier[Damage::PHYSICAL]); - setSpinnerValue("ItemTab/Weapon/FireMinSpinner",dmg.m_min_damage[Damage::FIRE]); - setSpinnerValue("ItemTab/Weapon/FireMaxSpinner",dmg.m_max_damage[Damage::FIRE]); - setSpinnerValue("ItemTab/Weapon/FireMultSpinner",dmg.m_multiplier[Damage::FIRE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMinSpinner", dmg.m_min_damage[Damage::FIRE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMaxSpinner", dmg.m_max_damage[Damage::FIRE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/FireMultSpinner", dmg.m_multiplier[Damage::FIRE]); - setSpinnerValue("ItemTab/Weapon/IceMinSpinner",dmg.m_min_damage[Damage::ICE]); - setSpinnerValue("ItemTab/Weapon/IceMaxSpinner",dmg.m_max_damage[Damage::ICE]); - setSpinnerValue("ItemTab/Weapon/IceMultSpinner",dmg.m_multiplier[Damage::ICE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMinSpinner", dmg.m_min_damage[Damage::ICE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMaxSpinner", dmg.m_max_damage[Damage::ICE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/IceMultSpinner", dmg.m_multiplier[Damage::ICE]); - setSpinnerValue("ItemTab/Weapon/AirMinSpinner",dmg.m_min_damage[Damage::AIR]); - setSpinnerValue("ItemTab/Weapon/AirMaxSpinner",dmg.m_max_damage[Damage::AIR]); - setSpinnerValue("ItemTab/Weapon/AirMultSpinner",dmg.m_multiplier[Damage::AIR]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMinSpinner", dmg.m_min_damage[Damage::AIR]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMaxSpinner", dmg.m_max_damage[Damage::AIR]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/AirMultSpinner", dmg.m_multiplier[Damage::AIR]); - setSpinnerValue("ItemTab/Weapon/PrecisionSpinner",dmg.m_attack); - setSpinnerValue("ItemTab/Weapon/PowerSpinner",dmg.m_power); - setSpinnerValue("ItemTab/Weapon/CritPercentSpinner",dmg.m_crit_perc*100); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PrecisionSpinner", dmg.m_attack); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/PowerSpinner", dmg.m_power); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/CritPercentSpinner", dmg.m_crit_perc*100); - setSpinnerValue("ItemTab/Weapon/RangeSpinner",m_edited_item.m_weapon_attr->m_attack_range); - setSpinnerValue("ItemTab/Weapon/SpeedSpinner",m_edited_item.m_weapon_attr->m_dattack_speed ); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/RangeSpinner", m_edited_item.m_weapon_attr->m_attack_range); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/SpeedSpinner", m_edited_item.m_weapon_attr->m_dattack_speed ); - setCheckboxSelected("ItemTab/Weapon/TwohandedCheckbox", m_edited_item.m_weapon_attr->m_two_handed); + setCheckboxSelected("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Weapon/TwohandedCheckbox", m_edited_item.m_weapon_attr->m_two_handed); } @@ -690,42 +990,39 @@ { CreatureDynAttrMod* dynmod = m_edited_item.m_useup_effect; - setSpinnerValue("ItemTab/Consume/HealthSpinner", dynmod->m_dhealth); - setSpinnerValue("ItemTab/Consume/BlindSpinner",dynmod->m_dstatus_mod_immune_time[Damage::BLIND] ); - setSpinnerValue("ItemTab/Consume/PoisonedSpinner",dynmod->m_dstatus_mod_immune_time[Damage::POISONED] ); - setSpinnerValue("ItemTab/Consume/BerserkSpinner",dynmod->m_dstatus_mod_immune_time[Damage::BERSERK] ); - setSpinnerValue("ItemTab/Consume/ConfusedSpinner",dynmod->m_dstatus_mod_immune_time[Damage::CONFUSED] ); - setSpinnerValue("ItemTab/Consume/MuteSpinner",dynmod->m_dstatus_mod_immune_time[Damage::MUTE] ); - setSpinnerValue("ItemTab/Consume/ParalyzedSpinner",dynmod->m_dstatus_mod_immune_time[Damage::PARALYZED] ); - setSpinnerValue("ItemTab/Consume/FrozenSpinner",dynmod->m_dstatus_mod_immune_time[Damage::FROZEN] ); - setSpinnerValue("ItemTab/Consume/BurningSpinner",dynmod->m_dstatus_mod_immune_time[Damage::BURNING] ); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/HealthSpinner", dynmod->m_dhealth); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BlindSpinner", dynmod->m_dstatus_mod_immune_time[Damage::BLIND]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/PoisonedSpinner", dynmod->m_dstatus_mod_immune_time[Damage::POISONED]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BerserkSpinner", dynmod->m_dstatus_mod_immune_time[Damage::BERSERK]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ConfusedSpinner", dynmod->m_dstatus_mod_immune_time[Damage::CONFUSED]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/MuteSpinner", dynmod->m_dstatus_mod_immune_time[Damage::MUTE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/ParalyzedSpinner", dynmod->m_dstatus_mod_immune_time[Damage::PARALYZED]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/FrozenSpinner", dynmod->m_dstatus_mod_immune_time[Damage::FROZEN]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Consume/BurningSpinner", dynmod->m_dstatus_mod_immune_time[Damage::BURNING]); } if (m_edited_item.m_equip_effect != 0) { CreatureBaseAttrMod* basemod = m_edited_item.m_equip_effect; - setSpinnerValue("ItemTab/Equip/HealthSpinner",basemod->m_dmax_health ); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/HealthSpinner", basemod->m_dmax_health); - setSpinnerValue("ItemTab/Equip/StrengthSpinner",basemod->m_dstrength ); - setSpinnerValue("ItemTab/Equip/DexteritySpinner",basemod->m_ddexterity ); - setSpinnerValue("ItemTab/Equip/MagicPowerSpinner",basemod->m_dmagic_power ); - setSpinnerValue("ItemTab/Equip/WillpowerSpinner",basemod->m_dwillpower ); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/StrengthSpinner", basemod->m_dstrength); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/DexteritySpinner", basemod->m_ddexterity); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/MagicPowerSpinner", basemod->m_dmagic_power); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/WillpowerSpinner", basemod->m_dwillpower); - setSpinnerValue("ItemTab/Equip/PhysResSpinner",basemod->m_dresistances[Damage::PHYSICAL] ); - setSpinnerValue("ItemTab/Equip/FireResSpinner",basemod->m_dresistances[Damage::FIRE] ); - setSpinnerValue("ItemTab/Equip/IceResSpinner",basemod->m_dresistances[Damage::ICE] ); - setSpinnerValue("ItemTab/Equip/AirResSpinner",basemod->m_dresistances[Damage::AIR] ); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PhysResSpinner", basemod->m_dresistances[Damage::PHYSICAL]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/FireResSpinner", basemod->m_dresistances[Damage::FIRE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/IceResSpinner", basemod->m_dresistances[Damage::ICE]); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AirResSpinner", basemod->m_dresistances[Damage::AIR]); - setSpinnerValue("ItemTab/Equip/ArmorSpinner",basemod->m_darmor ); - setSpinnerValue("ItemTab/Equip/BlockSpinner",basemod->m_dblock ); - setSpinnerValue("ItemTab/Equip/AttackSpinner",basemod->m_dattack ); - setSpinnerValue("ItemTab/Equip/PowerSpinner",basemod->m_dpower ); - + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/ArmorSpinner", basemod->m_darmor); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/BlockSpinner", basemod->m_dblock); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/AttackSpinner", basemod->m_dattack); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/ItemTab/ItemTabControl/__auto_TabPane__/Equip/PowerSpinner", basemod->m_dpower); } m_no_cegui_events = false; } - -
--- a/src/gui/contenteditor/itemeditor.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/itemeditor.h Sun Jun 08 11:05:00 2014 +0200 @@ -140,6 +140,12 @@ * \brief unique ID for items */ int m_unique_id; + + /** + * \brief The root window to use when accessing the widgets. + */ + CEGUI::Window* m_rootWindow; + };
--- a/src/gui/contenteditor/monstereditor.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/monstereditor.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -14,11 +14,12 @@ */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" #include "monstereditor.h" - #include "graphicmanager.h" #include "fixedobjecteditor.h" @@ -30,17 +31,17 @@ void MonsterEditor::init(CEGUI::Window* parent) { ContentEditorTab::init(parent); - - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + m_rootWindow = parent; - - CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("MonsterTab/Prop/RadiusSpinner")); + CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Properties/RadiusSpinner")); radiusSpinner->subscribeEvent(CEGUI::Spinner::EventValueChanged, CEGUI::Event::Subscriber(&MonsterEditor::onMonsterModified, this)); /* - CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("MonsterTab/Prop/LayerSelector")); + CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Prop/LayerSelector")); layerSelector->addItem(new CEGUI::ListboxTextItem("Normal")); layerSelector->addItem(new CEGUI::ListboxTextItem("Base")); layerSelector->addItem(new CEGUI::ListboxTextItem("Air")); @@ -49,29 +50,40 @@ layerSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&MonsterEditor::onMonsterModified, this)); */ - CEGUI::PushButton* xmlsubmitButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("MonsterTab/XML/SubmitButton")); + CEGUI::PushButton* xmlsubmitButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/XML/SubmitButton")); xmlsubmitButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&MonsterEditor::onMonsterXMLModified, this)); - CEGUI::PushButton* createFOButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("MonsterTab/XML/CreateButton")); + CEGUI::PushButton* createFOButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/CreateButton")); createFOButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&MonsterEditor::onMonsterCreate, this)); - CEGUI::PushButton* delallFOButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("MonsterTab/Create/DelAllButton")); + CEGUI::PushButton* delallFOButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/DelAllButton")); delallFOButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&MonsterEditor::onDelAllObjects, this)); - CEGUI::PushButton* getplayerButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("MonsterTab/Create/GetPlPosButton")); + CEGUI::PushButton* getplayerButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/GetPlPosButton")); getplayerButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&MonsterEditor::onGetPlayerPosition, this)); - CEGUI::PushButton* copyfoButton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("MonsterTab/Properties/CopyDataButton")); + CEGUI::PushButton* copyfoButton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Properties/CopyDataButton")); copyfoButton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&MonsterEditor::onCopyData, this)); // init the internal data + TiXmlNode* linkedNode = NULL; TiXmlElement * monster_root = new TiXmlElement("Monster"); - m_monster_xml.LinkEndChild( monster_root ); - monster_root->SetAttribute("subtype","EditorMonster"); + linkedNode = m_monster_xml.LinkEndChild(monster_root); + + if (linkedNode != NULL) + { + // Only use monster_root if it was not deleted. + monster_root->SetAttribute("subtype", "EditorMonster"); - TiXmlElement * monster_ri = new TiXmlElement("RenderInfo"); - monster_ri->SetAttribute("name","EditorRenderInfo"); - monster_root->LinkEndChild(monster_ri); + TiXmlElement * monster_ri = new TiXmlElement("RenderInfo"); + monster_ri->SetAttribute("name", "EditorRenderInfo"); + monster_root->LinkEndChild(monster_ri); + } m_update_base_content = true; } @@ -100,9 +112,8 @@ void MonsterEditor::updateAllMonsterList() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - CEGUI::Combobox* copyfoSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("MonsterTab/Properties/CopyDataBox")); + CEGUI::Combobox* copyfoSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Properties/CopyDataBox")); // Fill list of all Monsters const std::map<GameObject::Subtype, MonsterBasicData*>& all_fo = ObjectFactory::getAllMonsterData(); @@ -115,8 +126,6 @@ void MonsterEditor::updateMonsterXML() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // update the XML representation m_edited_monster.writeToXML(m_monster_xml.FirstChildElement()); @@ -124,7 +133,8 @@ TiXmlPrinter printer; m_monster_xml.Accept(&printer); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("MonsterTab/XML/MonsterXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/XML/MonsterXMLEditbox")); editor->setText(printer.CStr()); } @@ -132,11 +142,12 @@ { m_no_cegui_events = true; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); /* - CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("MonsterTab/Prop/LayerSelector")); + CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Prop/LayerSelector")); */ - CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("MonsterTab/Prop/RadiusSpinner")); + CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Prop/RadiusSpinner")); // adjust the spinner values radiusSpinner->setCurrentValue(m_edited_monster.m_radius); @@ -166,13 +177,15 @@ bool MonsterEditor::onMonsterModified(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; - - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + } - CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("MonsterTab/Prop/RadiusSpinner")); + CEGUI::Spinner* radiusSpinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Prop/RadiusSpinner")); - //CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("MonsterTab/Prop/LayerSelector")); + //CEGUI::Combobox* layerSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + // "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Prop/LayerSelector")); m_edited_monster.m_radius = radiusSpinner->getCurrentValue(); @@ -196,8 +209,8 @@ bool MonsterEditor::onMonsterXMLModified(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("MonsterTab/XML/MonsterXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/XML/MonsterXMLEditbox")); // Parse the editor text to XML // use temporary XML document for recovering from errors @@ -215,7 +228,7 @@ m_monster_xml.LinkEndChild(ri_temp_xml.RootElement()->Clone()); // parse the XML to the monster data - ObjectLoader::loadMonster(m_monster_xml.FirstChildElement(),true); + ObjectLoader::loadMonster(m_monster_xml.FirstChildElement(), true); // copy to the local Data structure MonsterBasicData* data = ObjectFactory::getMonsterData("EditorMonster"); if (data != 0) @@ -232,7 +245,10 @@ int err_row = ri_temp_xml.ErrorRow(); int err_col = ri_temp_xml.ErrorCol(); - setMultiLineEditboxCursor("MonsterTab/XML/MonsterXMLEditbox",err_row,err_col); + setMultiLineEditboxCursor( + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/XML/MonsterXMLEditbox", + err_row, + err_col); } return true; @@ -245,17 +261,20 @@ // create a unique renderinfo (to avoid that the object is modified by the editor after creation) RenderInfoEditor* ri_editor = dynamic_cast<RenderInfoEditor*>(ContentEditor::getSingleton().getComponent("RIEditor")); std::string unique_ri = ri_editor->getUniqueRenderinfo(); + // temporarily replace the renderinfo name TiXmlElement * fixed_ri = m_monster_xml.RootElement()->FirstChildElement("RenderInfo"); if (fixed_ri == 0) + { return true; + } std::string name = fixed_ri->Attribute("name"); - fixed_ri->SetAttribute("name",unique_ri.c_str()); + fixed_ri->SetAttribute("name", unique_ri.c_str()); - ObjectLoader::loadMonster(m_monster_xml.FirstChildElement(),true); + ObjectLoader::loadMonster(m_monster_xml.FirstChildElement(), true); - fixed_ri->SetAttribute("name",name.c_str()); + fixed_ri->SetAttribute("name", name.c_str()); Vector pos; float angle; @@ -263,24 +282,29 @@ World* world = World::getWorld(); if (world == 0) + { return true; + } WorldObject* player = world->getLocalPlayer(); if (player == 0) + { return true; + } + Region* region = player->getRegion(); // if the position is set to default, use the player position - pos.m_x = getSpinnerValue("MonsterTab/Create/PosXSpinner",0); - pos.m_y = getSpinnerValue("MonsterTab/Create/PosYSpinner",0); - angle = getSpinnerValue("MonsterTab/Create/AngleSpinner",0); + pos.m_x = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/PosXSpinner", 0); + pos.m_y = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/PosYSpinner", 0); + angle = getSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/AngleSpinner", 0); if (pos.m_x == 0 && pos.m_y == 0) { pos = player->getShape()->m_center; } // create the object - int id = region->createObject("EditorMonster", pos,angle, height,WorldObject::STATE_ACTIVE); + int id = region->createObject("EditorMonster", pos,angle, height, WorldObject::STATE_ACTIVE); m_created_objects.push_back(std::make_pair(region->getId(), id)); return false; @@ -288,13 +312,19 @@ bool MonsterEditor::onCopyData(const CEGUI::EventArgs& evt) { - std::string objname = getComboboxSelection("MonsterTab/Properties/CopyDataBox", ""); + std::string objname = getComboboxSelection( + "Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Properties/CopyDataBox", ""); + if (objname == "") + { return true; + } MonsterBasicData* modata = ObjectFactory::getMonsterData(objname); if (modata == 0) + { return true; + } m_edited_monster = *modata; @@ -308,17 +338,22 @@ { World* world = World::getWorld(); if (world == 0) + { return true; + } WorldObject* player = world->getLocalPlayer(); if (player == 0) + { return true; + } + //Region* region = player->getRegion(); Vector pos = player->getShape()->m_center; - setSpinnerValue("MonsterTab/Create/PosXSpinner", pos.m_x); - setSpinnerValue("MonsterTab/Create/PosYSpinner", pos.m_y); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/PosXSpinner", pos.m_x); + setSpinnerValue("Root/ObjectInfoTabControl/__auto_TabPane__/MonsterTab/MonsterTabControl/__auto_TabPane__/Create/PosYSpinner", pos.m_y); return true; } @@ -327,17 +362,22 @@ { World* world = World::getWorld(); if (world == 0) + { return true; + } - std::list< std::pair<int,int> >::iterator it; + std::list< std::pair<int, int> >::iterator it; for (it = m_created_objects.begin(); it != m_created_objects.end(); ++it) { Region* region = world->getRegion(it->first); if (region == 0) + { continue; + } region->deleteObject(it->second); } + m_created_objects.clear(); return true;
--- a/src/gui/contenteditor/monstereditor.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/monstereditor.h Sun Jun 08 11:05:00 2014 +0200 @@ -131,6 +131,11 @@ * The first integer is the region ID, the second is the object ID */ std::list< std::pair<int,int> > m_created_objects; + + /** + * \brief The root window to use when accessing the widgets. + */ + CEGUI::Window* m_rootWindow; };
--- a/src/gui/contenteditor/renderinfoeditor.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/renderinfoeditor.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -22,24 +22,29 @@ #include <OgreHardwarePixelBuffer.h> +// Utility for CEGUI cross-version compatibility +// TODO(Augustin Preda, 2014.03.25): remove when no longer needed. +#include "ceguiutility.h" + void RenderInfoEditor::init(CEGUI::Window* parent) { ContentEditorTab::init(parent); - - m_edited_graphicobject=0; + m_rootWindow = parent; + + m_edited_graphicobject = 0; m_unique_id = 1; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // add parts to the mesh selectors - CEGUI::Combobox* selector = static_cast<CEGUI::Combobox*>(CEGUI::WindowManager::getSingleton().getWindow("RITab/BM/MeshSelector")); - CEGUI::Combobox* subSelector = static_cast<CEGUI::Combobox*>(CEGUI::WindowManager::getSingleton().getWindow("RITab/SubMesh/Selector")); + CEGUI::Combobox* selector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/BasicMesh/MeshSelector")); + CEGUI::Combobox* subSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/Selector")); Ogre::FileInfoListPtr files; Ogre::FileInfoList::iterator it; std::string file; - files = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo("General","*.mesh"); + files = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo("General", "*.mesh"); std::list<std::string> filenames; for (it = files->begin(); it != files->end(); ++it) @@ -61,7 +66,7 @@ } catch (Ogre::Exception& e) { - DEBUG("failed with exception %s",e.what()); + SW_DEBUG("failed with exception %s",e.what()); } } @@ -69,30 +74,44 @@ selector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&RenderInfoEditor::onMeshSelected, this)); subSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&RenderInfoEditor::onSubMeshSelected, this)); - CEGUI::PushButton* addSubmeshbutton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("RITab/SubMesh/AddSubMeshButton")); + CEGUI::PushButton* addSubmeshbutton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AddSubMeshButton")); addSubmeshbutton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&RenderInfoEditor::onSubMeshAdded, this)); - CEGUI::PushButton* submitRIXMLbutton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("RITab/XML/SubmitButton")); + CEGUI::PushButton* submitRIXMLbutton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/XML/SubmitButton")); submitRIXMLbutton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&RenderInfoEditor::onRenderinfoXMLModified, this)); - CEGUI::PushButton* delSubmeshbutton = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("RITab/SubMesh/DelSubMeshButton")); + CEGUI::PushButton* delSubmeshbutton = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/DelSubMeshButton")); delSubmeshbutton->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&RenderInfoEditor::onSubMeshDeleted, this)); - CEGUI::Spinner* rotXspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateX")); - CEGUI::Spinner* rotYspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateY")); - CEGUI::Spinner* rotZspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateZ")); + CEGUI::Spinner* rotXspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateX")); + CEGUI::Spinner* rotYspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateY")); + CEGUI::Spinner* rotZspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateZ")); - CEGUI::Spinner* posXspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetX")); - CEGUI::Spinner* posYspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetY")); - CEGUI::Spinner* posZspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetZ")); + CEGUI::Spinner* posXspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetX")); + CEGUI::Spinner* posYspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetY")); + CEGUI::Spinner* posZspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetZ")); - CEGUI::Spinner* scalespinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMScale")); + CEGUI::Spinner* scalespinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMScale")); - CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/EditSMSelector")); - CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/AttachMeshSelector")); - CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/BoneSelector")); - CEGUI::Checkbox* attachCheckbox = static_cast<CEGUI::Checkbox*>(win_mgr.getWindow("RITab/SM/AttachSMCheckbox")); + CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/EditSMSelector")); + CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachMeshSelector")); + CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/BoneSelector")); + CEGUIUtility::ToggleButton* attachCheckbox = static_cast<CEGUIUtility::ToggleButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachSMCheckbox")); objSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&RenderInfoEditor::onSubObjectSelected, this)); @@ -109,13 +128,17 @@ boneobjSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&RenderInfoEditor::onSubMeshModified, this)); boneSelector->subscribeEvent(CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber(&RenderInfoEditor::onSubMeshModified, this)); - attachCheckbox->subscribeEvent(CEGUI::Checkbox::EventCheckStateChanged, CEGUI::Event::Subscriber(&RenderInfoEditor::onSubMeshModified, this)); + attachCheckbox->subscribeEvent(CEGUIUtility::EventToggleButtonStateChanged(), CEGUI::Event::Subscriber(&RenderInfoEditor::onSubMeshModified, this)); // init the internal data + TiXmlNode* linkedNode = NULL; TiXmlElement * renderinfo_root = new TiXmlElement("RenderInfo"); - m_renderinfo_xml.LinkEndChild( renderinfo_root ); - renderinfo_root->SetAttribute("name","EditorRenderInfo"); - + linkedNode = m_renderinfo_xml.LinkEndChild(renderinfo_root); + if (linkedNode != NULL) + { + // Only use renderinfo_root if it was not deleted (can be deleted when linked). + renderinfo_root->SetAttribute("name", "EditorRenderInfo"); + } } void RenderInfoEditor::update() @@ -136,7 +159,7 @@ m_modified_renderinfo = false; } -void checkBounds(const Ogre::SceneNode* node, int level=0) +void checkBounds(const Ogre::SceneNode* node, int level = 0) { const Ogre::AxisAlignedBox& boundingbox = node->_getWorldAABB(); @@ -145,8 +168,10 @@ Ogre::Vector3 bbox_max = boundingbox.getMaximum(); std::string indent = ""; - for (int i=0; i<level; i++) + for (int i = 0; i < level; i++) + { indent += " "; + } std::cout << indent << "Node: " << node->getName() << "\n"; std::cout << indent << bbox_min[0] << " " << bbox_min[1] << " " << bbox_min[2] << "\n"; std::cout << indent << bbox_max[0] << " " << bbox_max[1] << " " << bbox_max[2] << "\n"; @@ -158,7 +183,7 @@ const Ogre::SceneNode* subnode = dynamic_cast<Ogre::SceneNode*>(child_it.getNext()); if (subnode != 0) { - checkBounds(subnode,level+1); + checkBounds(subnode, level + 1); } } @@ -179,12 +204,9 @@ std::cout << indent << box_max[0] << " " << box_max[1] << " " << box_max[2] << "\n"; } } - } - - void RenderInfoEditor::updatePreviewImage() { Ogre::SceneManager* old_scene_mng = GraphicManager::getSceneManager(); @@ -204,21 +226,21 @@ } Ogre::MeshManager::getSingleton().setBoundsPaddingFactor(0.0f); - m_edited_graphicobject->getTopNode()->setPosition(0.0,0.0,0.0); + m_edited_graphicobject->getTopNode()->setPosition(0.0, 0.0, 0.0); m_edited_graphicobject->update(0); // update the camera to show the full object // first, the subtree needs to be updated Ogre::SceneNode* topnode = m_edited_graphicobject->getTopNode(); - topnode->_update(true,true); + topnode->_update(true, true); topnode->_updateBounds(); topnode->showBoundingBox(true); //const Ogre::AxisAlignedBox& boundingbox = topnode->_getWorldAABB(); - Ogre::Vector3 bbox_min(1000,1000,1000); - Ogre::Vector3 bbox_max(-1000,-1000,-1000); + Ogre::Vector3 bbox_min(1000, 1000, 1000); + Ogre::Vector3 bbox_max(-1000, -1000, -1000); - getNodeBounds(topnode,bbox_min,bbox_max); + getNodeBounds(topnode, bbox_min, bbox_max); // camera is placed looking along negative X axis, with Y and Z offset double center_y = 0.5*(bbox_max[1] + bbox_min[1]); @@ -230,11 +252,12 @@ double viewsize = MathHelper::Max(size_y, size_z); Ogre::Camera* editor_camera = editor_scene_mng->getCamera("editor_camera"); - editor_camera->setPosition(Ogre::Vector3(bbox_max[0] + viewsize*sqrt(double(2)) , center_y,center_z)); - editor_camera->lookAt(Ogre::Vector3(bbox_max[0], center_y,center_z)); + editor_camera->setPosition(Ogre::Vector3(bbox_max[0] + viewsize*sqrt(double(2)) , center_y, center_z)); + editor_camera->lookAt(Ogre::Vector3(bbox_max[0], center_y, center_z)); // update the texture - Ogre::Resource* res= Ogre::TextureManager::getSingleton().createOrRetrieve ("editor_tex",Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME).first.getPointer(); + Ogre::Resource* res= Ogre::TextureManager::getSingleton().createOrRetrieve( + "editor_tex",Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME).first.getPointer(); Ogre::Texture* texture = dynamic_cast<Ogre::Texture*>(res); Ogre::RenderTarget* target = texture->getBuffer()->getRenderTarget(); target->update(); @@ -244,25 +267,36 @@ void RenderInfoEditor::updateSubmeshEditor(std::string objectname, bool updateList) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - CEGUI::Spinner* rotXspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateX")); - CEGUI::Spinner* rotYspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateY")); - CEGUI::Spinner* rotZspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateZ")); + CEGUI::Spinner* rotXspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateX")); + CEGUI::Spinner* rotYspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateY")); + CEGUI::Spinner* rotZspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateZ")); - CEGUI::Spinner* posXspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetX")); - CEGUI::Spinner* posYspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetY")); - CEGUI::Spinner* posZspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetZ")); + CEGUI::Spinner* posXspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetX")); + CEGUI::Spinner* posYspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetY")); + CEGUI::Spinner* posZspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetZ")); - CEGUI::Spinner* scalespinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMScale")); + CEGUI::Spinner* scalespinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMScale")); - CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/EditSMSelector")); - CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/AttachMeshSelector")); - CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/BoneSelector")); - CEGUI::Checkbox* attachCheckbox = static_cast<CEGUI::Checkbox*>(win_mgr.getWindow("RITab/SM/AttachSMCheckbox")); + CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/EditSMSelector")); + CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachMeshSelector")); + CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/BoneSelector")); + CEGUIUtility::ToggleButton* attachCheckbox = static_cast<CEGUIUtility::ToggleButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachSMCheckbox")); if (objectname == "") + { objectname = objSelector->getText().c_str(); + } // update the content of the objectSelector if (updateList) @@ -274,7 +308,9 @@ CEGUI::ListboxItem* boneobjitem = boneobjSelector->getSelectedItem(); std::string boneobj = "mainmesh"; if (boneobjitem != 0) + { boneobj = boneobjitem->getText().c_str(); + } objSelector->resetList(); boneobjSelector->resetList(); @@ -288,7 +324,9 @@ for (std::list<MovableObjectInfo>::iterator it = objects.begin(); it != objects.end(); ++it) { if (it->m_type != MovableObjectInfo::ENTITY) + { continue; + } listitem = new CEGUI::ListboxTextItem(it->m_objectname); objSelector->addItem(listitem); @@ -296,7 +334,7 @@ // automatically select the right item if (it->m_objectname == objectname) { - objSelector->setItemSelectState(listitem,true); + objSelector->setItemSelectState(listitem, true); objSelector->setText(objectname); objectfound = true; } @@ -341,7 +379,9 @@ CEGUI::ListboxItem* item = objSelector->getSelectedItem(); MovableObjectInfo* minfo = 0; if (item != 0) + { minfo = m_edited_renderinfo.getObject(objectname); + } if (minfo == 0) { @@ -373,8 +413,8 @@ } else { - boneobj = minfo->m_bone.substr(0,pos); - bone = minfo->m_bone.substr(pos+1); + boneobj = minfo->m_bone.substr(0, pos); + bone = minfo->m_bone.substr(pos + 1); } // set the selectors of the mesh attached to and the bone to the right state @@ -385,19 +425,19 @@ boneobjSelector->setText(""); boneSelector->setText(""); - for (size_t i=0; i<boneobjSelector->getItemCount(); i++) + for (size_t i = 0; i < boneobjSelector->getItemCount(); i++) { if (boneobjSelector->getListboxItemFromIndex(i)->getText() == boneobj) { - boneobjSelector->setSelection(i,i); + boneobjSelector->setSelection(i, i); boneobjSelector->setText(boneobj); } } - for (size_t i=0; i<boneSelector->getItemCount(); i++) + for (size_t i = 0; i < boneSelector->getItemCount(); i++) { if (boneSelector->getListboxItemFromIndex(i)->getText() == bone) { - boneSelector->setSelection(i,i); + boneSelector->setSelection(i, i); boneSelector->setText(bone); } } @@ -426,9 +466,10 @@ void RenderInfoEditor::updateBoneList() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/BoneSelector")); - CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/AttachMeshSelector")); + CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/BoneSelector")); + CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachMeshSelector")); // get the selected object and the underlying RenderInfo data structure std::string boneobj = boneobjSelector->getText().c_str(); @@ -450,7 +491,8 @@ if (minfo->m_type == MovableObjectInfo::ENTITY) { //get the skeleton of the selected mesh and fill the bone selector combo box - Ogre::Mesh* mesh = dynamic_cast<Ogre::Mesh*>(Ogre::MeshManager::getSingleton().createOrRetrieve(minfo->m_source,"General").first.getPointer()); + Ogre::Mesh* mesh = dynamic_cast<Ogre::Mesh*>( + Ogre::MeshManager::getSingleton().createOrRetrieve(minfo->m_source, "General").first.getPointer()); Ogre::Skeleton *skel = 0; @@ -459,7 +501,7 @@ skel = mesh->getSkeleton().getPointer(); } - if(skel!=0) + if (skel != 0) { // iterate the skeleton to get the bones Ogre::Skeleton::BoneIterator bit = skel->getBoneIterator(); @@ -483,7 +525,7 @@ // automatically select the right object if (bonesel == bone) { - boneSelector->setItemSelectState(item,true); + boneSelector->setItemSelectState(item, true); boneSelector->setText(bone); } } @@ -493,8 +535,6 @@ void RenderInfoEditor::updateRenderInfoXML() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // update the XML representation m_edited_renderinfo.writeToXML(m_renderinfo_xml.FirstChildElement()); @@ -502,7 +542,8 @@ TiXmlPrinter printer; m_renderinfo_xml.Accept(&printer); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("RITab/XML/RIXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/XML/RIXMLEditbox")); editor->setText(printer.CStr()); } @@ -522,7 +563,7 @@ { // place the required mesh in the editor scene std::string meshname = item->getText().c_str(); - DEBUGX("selected mesh %s",meshname.c_str()); + DEBUGX("selected mesh %s", meshname.c_str()); // if the Renderinfo already has a main mesh, edit it // otherwise, create it @@ -567,7 +608,7 @@ { // place the required mesh in the editor scene std::string meshname = item->getText().c_str(); - DEBUG("selected mesh %s",meshname.c_str()); + SW_DEBUG("selected mesh %s",meshname.c_str()); updateSubmeshEditor(meshname, false); } @@ -578,8 +619,10 @@ bool RenderInfoEditor::onSubMeshSelected(const CEGUI::EventArgs& evt) { //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Combobox* subSelector = static_cast<CEGUI::Combobox*>(CEGUI::WindowManager::getSingleton().getWindow("RITab/SubMesh/Selector")); - CEGUI::Editbox* subMeshNameBox = static_cast<CEGUI::Editbox*>(CEGUI::WindowManager::getSingleton().getWindow("RITab/SM/SMNameEditbox")); + CEGUI::Combobox* subSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/Selector")); + CEGUI::Editbox* subMeshNameBox = static_cast<CEGUI::Editbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMNameEditbox")); CEGUI::ListboxItem* item = subSelector->getSelectedItem(); if (item != 0) @@ -600,8 +643,10 @@ bool RenderInfoEditor::onSubMeshAdded(const CEGUI::EventArgs& evt) { //CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Combobox* subSelector = static_cast<CEGUI::Combobox*>(CEGUI::WindowManager::getSingleton().getWindow("RITab/SubMesh/Selector")); - CEGUI::Editbox* subMeshNameBox = static_cast<CEGUI::Editbox*>(CEGUI::WindowManager::getSingleton().getWindow("RITab/SM/SMNameEditbox")); + CEGUI::Combobox* subSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/Selector")); + CEGUI::Editbox* subMeshNameBox = static_cast<CEGUI::Editbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMNameEditbox")); CEGUI::ListboxItem* item = subSelector->getSelectedItem(); if (item != 0) @@ -652,30 +697,43 @@ bool RenderInfoEditor::onSubMeshModified(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; - - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); + } // the the GUI parts - CEGUI::Spinner* rotXspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateX")); - CEGUI::Spinner* rotYspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateY")); - CEGUI::Spinner* rotZspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMRotateZ")); + CEGUI::Spinner* rotXspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateX")); + CEGUI::Spinner* rotYspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateY")); + CEGUI::Spinner* rotZspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMRotateZ")); - CEGUI::Spinner* posXspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetX")); - CEGUI::Spinner* posYspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetY")); - CEGUI::Spinner* posZspinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMOffsetZ")); + CEGUI::Spinner* posXspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetX")); + CEGUI::Spinner* posYspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetY")); + CEGUI::Spinner* posZspinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMOffsetZ")); - CEGUI::Spinner* scalespinner = static_cast<CEGUI::Spinner*>(win_mgr.getWindow("RITab/SM/SMScale")); + CEGUI::Spinner* scalespinner = static_cast<CEGUI::Spinner*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/SMScale")); - CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/EditSMSelector")); - CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/AttachMeshSelector")); - CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/BoneSelector")); - CEGUI::Checkbox* attachCheckbox = static_cast<CEGUI::Checkbox*>(win_mgr.getWindow("RITab/SM/AttachSMCheckbox")); + CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/EditSMSelector")); + CEGUI::Combobox* boneobjSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachMeshSelector")); + CEGUI::Combobox* boneSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/BoneSelector")); + CEGUIUtility::ToggleButton* attachCheckbox = static_cast<CEGUIUtility::ToggleButton*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/AttachSMCheckbox")); // get the MovableObjectInfo CEGUI::ListboxItem* item = objSelector->getSelectedItem(); if (item == 0) + { return true; + } MovableObjectInfo* minfo = m_edited_renderinfo.getObject(item->getText().c_str()); if (minfo == 0) @@ -730,19 +788,25 @@ bool RenderInfoEditor::onSubMeshDeleted(const CEGUI::EventArgs& evt) { if (m_no_cegui_events) + { return true; + } - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(win_mgr.getWindow("RITab/SubMesh/EditSMSelector")); + CEGUI::Combobox* objSelector = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/SubMesh/EditSMSelector")); // get the MovableObjectInfo CEGUI::ListboxItem* item = objSelector->getSelectedItem(); if (item == 0) + { return true; + } MovableObjectInfo* minfo = m_edited_renderinfo.getObject(item->getText().c_str()); if (minfo == 0) + { return true; + } // Remove it from the renderinfo m_edited_renderinfo.removeObject(minfo->m_objectname); @@ -753,8 +817,8 @@ bool RenderInfoEditor::onRenderinfoXMLModified(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(win_mgr.getWindow("RITab/XML/RIXMLEditbox")); + CEGUI::MultiLineEditbox* editor = static_cast<CEGUI::MultiLineEditbox*>(CEGUIUtility::getWindowForLoadedLayout(m_rootWindow, + "Root/ObjectInfoTabControl/__auto_TabPane__/RenderInfoTab/RenderInfoTabControl/__auto_TabPane__/XML/RIXMLEditbox")); // Parse the editor text to XML // use temporary XML document for recovering from errors @@ -811,8 +875,8 @@ pos++; } - editor->setCaratIndex(pos); - editor->ensureCaratIsVisible(); + editor->setCaretIndex(pos); + editor->ensureCaretIsVisible(); editor->activate(); } return true;
--- a/src/gui/contenteditor/renderinfoeditor.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/contenteditor/renderinfoeditor.h Sun Jun 08 11:05:00 2014 +0200 @@ -160,6 +160,11 @@ */ int m_unique_id; + /** + * \brief The root window to use when accessing the widgets. + */ + CEGUI::Window* m_rootWindow; + };
--- a/src/gui/creditswindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/creditswindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -95,8 +95,6 @@ void CreditsWindow::update() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - if (!m_window->isVisible()) { m_shown_timer.start();
--- a/src/gui/debugpanel/benchmarktab.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/benchmarktab.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,13 +13,21 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "benchmarktab.h" #include "sumwarshelper.h" #include "Ogre.h" #include "OgrePlatformInformation.h" +#ifdef CEGUI_07 #include "CEGUI/CEGUIWindowManager.h" +#else +#include "CEGUI/WindowManager.h" +#endif + #include "CEGUI/CEGUI.h" #include <eventsystem.h> @@ -36,13 +44,13 @@ { setText("Benchmark"); - m_tabLayout = CEGUI::WindowManager::getSingleton().loadWindowLayout("benchmarktab.layout"); + m_tabLayout = CEGUIUtility::loadLayoutFromFile ("benchmarktab.layout"); m_tabLayout->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - m_tabLayout->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); - this->addChildWindow(m_tabLayout); + CEGUIUtility::setWidgetSizeRel (m_tabLayout, 1.0f, 1.0f); + CEGUIUtility::addChildWidget(this, m_tabLayout); - m_CapsBox = static_cast<CEGUI::MultiLineEditbox*>(m_tabLayout->getChild("BenchmarkTab/ResultsEditbox")); - m_startBenchmarkButton = static_cast<CEGUI::PushButton*>(m_tabLayout->getChild("BenchmarkTab/StartButton")); + m_CapsBox = static_cast<CEGUI::MultiLineEditbox*>(m_tabLayout->getChild("ResultsEditbox")); + m_startBenchmarkButton = static_cast<CEGUI::PushButton*>(m_tabLayout->getChild("StartButton")); m_ogreRoot = Ogre::Root::getSingletonPtr();
--- a/src/gui/debugpanel/benchmarktab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/benchmarktab.h Sun Jun 08 11:05:00 2014 +0200 @@ -17,7 +17,13 @@ #define BENCHMARKTAB_H #include <debugtab.h> + +#ifdef CEGUI_07 #include <CEGUI/CEGUIWindow.h> +#else +#include "CEGUI/Window.h" +#endif + #include "OgreLog.h" namespace Ogre
--- a/src/gui/debugpanel/debugcameratab.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/debugcameratab.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,10 +13,19 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "debugcameratab.h" #include "CEGUI/CEGUI.h" #include "OgreRoot.h" -#include "CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h" + +#ifdef CEGUI_07 +#include "CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h" +#else +#include "CEGUI/RendererModules/Ogre/Renderer.h" +#endif + #include <OgreHardwarePixelBuffer.h> #include <OISInputManager.h> #include <OISMouse.h> @@ -29,36 +38,43 @@ { setText ( "Camera" ); - CEGUI::TabControl* camtabs = ( CEGUI::TabControl* ) WindowManager::getSingleton().createWindow ( "TaharezLook/TabControl", "DebugCameraTabTabs" ); + CEGUI::TabControl* camtabs = static_cast<CEGUI::TabControl*>(WindowManager::getSingleton().createWindow( + "TaharezLook/TabControl", "DebugCameraTabTabs" )); + camtabs->setPosition ( UVector2 ( UDim ( 0.0f, 0.0f ), UDim ( 0.0f, 0.0f ) ) ); - camtabs->setSize ( UVector2 ( UDim ( 1.0f, 0.0f ), UDim ( 1.0f, 0.0f ) ) ); - addChildWindow ( camtabs ); + CEGUIUtility::setWidgetSizeRel (camtabs, 1.0f, 1.0f); + CEGUIUtility::addChildWidget (this, camtabs); - CEGUI::Window* playerCamTab = ( CEGUI::DefaultWindow* ) WindowManager::getSingleton().createWindow ( "TaharezLook/TabContentPane", "DebugCameraTab/PlayerCamOptions" ); + CEGUI::Window* playerCamTab = static_cast<CEGUI::DefaultWindow*>(WindowManager::getSingleton().createWindow( + "TaharezLook/TabContentPane", "PlayerCamOptions")); + playerCamTab->setText ( "PlayerCam Options" ); - CEGUI::Combobox* cb = ( CEGUI::Combobox* ) WindowManager::getSingleton().createWindow ( "TaharezLook/Combobox", "DebugCameraTab/PlayerCamOptions/ViewModes" ); + CEGUI::Combobox* cb = ( CEGUI::Combobox* ) WindowManager::getSingleton().createWindow ( "TaharezLook/Combobox", "ViewModes" ); cb->addItem ( new ListboxTextItem ( "Solid" ) ); cb->addItem ( new ListboxTextItem ( "Wireframe" ) ); cb->addItem ( new ListboxTextItem ( "Point" ) ); cb->setPosition ( UVector2 ( UDim ( 0.05f, 0.0f ), UDim ( 0.05f, 0.0f ) ) ); - cb->setSize ( UVector2 ( UDim ( 0.4f, 0.0f ), UDim ( 1.0f, 0.0f ) ) ); + CEGUIUtility::setWidgetSizeRel (cb, 0.4f, 1.0f); cb->subscribeEvent ( CEGUI::Combobox::EventListSelectionAccepted, CEGUI::Event::Subscriber ( &DebugCameraTab::onPlayerCameraModeChanged, this ) ); - playerCamTab->addChildWindow ( cb ); + CEGUIUtility::addChildWidget (playerCamTab, cb); + camtabs->addTab ( playerCamTab ); setupCamera(); - CEGUI::Window* debugCamTab = ( CEGUI::DefaultWindow* ) WindowManager::getSingleton().createWindow ( "TaharezLook/TabContentPane", "DebugCameraTab/DebugCamViewTab" ); + CEGUI::Window* debugCamTab = ( CEGUI::DefaultWindow* ) WindowManager::getSingleton().createWindow ( "TaharezLook/TabContentPane", "DebugCamViewTab" ); debugCamTab->setText ( "DebugCam" ); camtabs->addTab ( debugCamTab ); - CEGUI::Window *dcv = WindowManager::getSingleton().createWindow ( "TaharezLook/StaticImage", "DebugCameraTab/DebugCamView" ); + CEGUI::Window *dcv = WindowManager::getSingleton().createWindow ( "TaharezLook/StaticImage", "DebugCamView" ); dcv->setPosition ( UVector2 ( UDim ( 0.05f, 0.0f ), UDim ( 0.05f, 0.0f ) ) ); - dcv->setSize ( UVector2 ( UDim ( 0.9f, 0.0f ), UDim ( 0.9f, 0.0f ) ) ); - dcv->setProperty ( "Image", "set:debug_imageset image:debugCam_img" ); + CEGUIUtility::setWidgetSizeRel (dcv, 0.9f, 0.9f); + + CEGUI::String debug_camera_image_name("debugCam_img"); + dcv->setProperty ("Image", debug_camera_image_name); // prev: "set:debug_imageset image:debugCam_img" dcv->subscribeEvent ( CEGUI::Window::EventMouseButtonDown, CEGUI::Event::Subscriber ( &DebugCameraTab::onDebugWindowMouseDown, this ) ); - dcv->subscribeEvent ( CEGUI::Window::EventMouseLeaves, CEGUI::Event::Subscriber ( &DebugCameraTab::onDebugWindowMouseUp, this ) ); + dcv->subscribeEvent ( CEGUIUtility::EventMouseLeavesWindowArea(), CEGUI::Event::Subscriber ( &DebugCameraTab::onDebugWindowMouseUp, this ) ); dcv->subscribeEvent ( CEGUI::Window::EventMouseButtonUp, CEGUI::Event::Subscriber ( &DebugCameraTab::onDebugWindowMouseUp, this ) ); - debugCamTab->addChildWindow ( dcv ); + CEGUIUtility::addChildWidget (debugCamTab, dcv); m_leftMouseDown = m_rightMouseDown = false; } @@ -70,7 +86,8 @@ bool DebugCameraTab::onPlayerCameraModeChanged ( const CEGUI::EventArgs& evt ) { - CEGUI::Combobox* cbo = static_cast<CEGUI::Combobox*> ( CEGUI::WindowManager::getSingleton().getWindow ( "DebugCameraTab/PlayerCamOptions/ViewModes" ) ); + CEGUI::Combobox* cbo = static_cast<CEGUI::Combobox*> ( + CEGUIUtility::getWindowForLoadedLayout(this, "DebugCameraTabTabs/PlayerCamOptions/ViewModes")); CEGUI::String txt = cbo->getSelectedItem()->getText(); Ogre::Camera *cam = Ogre::Root::getSingleton().getSceneManager ( "DefaultSceneManager" )->getCamera ( "camera" ); @@ -131,15 +148,40 @@ editor_view->setBackgroundColour ( Ogre::ColourValue ( 0,0,0,1.0 ) ); editor_rt->update(); + // get the OgreRenderer from CEGUI and create a CEGUI texture from the Ogre texture + CEGUI::OgreRenderer* renderer_ptr = static_cast<CEGUI::OgreRenderer*>(CEGUI::System::getSingleton().getRenderer()); + CEGUI::String imageName("debugCam_img"); + // create a CEGUI Image from the Texture - CEGUI::Texture& debug_ceguiTex = static_cast<CEGUI::OgreRenderer*> ( CEGUI::System::getSingleton().getRenderer() )->createTexture ( debug_texture ); +#ifdef CEGUI_07 + CEGUI::Texture& debug_cegui_texture = renderer_ptr->createTexture (debug_texture); - CEGUI::Imageset& editor_textureImageSet = CEGUI::ImagesetManager::getSingleton().create ( "debug_imageset", debug_ceguiTex ); + CEGUI::Imageset& editor_textureImageSet = CEGUI::ImagesetManager::getSingleton().create ( "debug_imageset", debug_cegui_texture ); - editor_textureImageSet.defineImage ( "debugCam_img", - CEGUI::Point ( 0.0f, 0.0f ), - CEGUI::Size ( debug_ceguiTex.getSize().d_width, debug_ceguiTex.getSize().d_height ), - CEGUI::Point ( 0.0f, 0.0f ) ); + editor_textureImageSet.defineImage( + imageName, + CEGUI::Point ( 0.0f, 0.0f ), + CEGUI::Size ( debug_cegui_texture.getSize().d_width, debug_cegui_texture.getSize().d_height ), + CEGUI::Point ( 0.0f, 0.0f ) ); +#else + CEGUI::Texture &debug_cegui_texture = renderer_ptr->createTexture(debug_texture->getName(), debug_texture); + { + + CEGUI::TextureTarget* d_textureTarget; + CEGUI::BasicImage* d_textureTargetImage; + d_textureTarget = renderer_ptr->createTextureTarget(); + d_textureTargetImage = static_cast<CEGUI::BasicImage*>(&CEGUI::ImageManager::getSingleton().create("BasicImage", imageName)); + d_textureTargetImage->setTexture(&debug_cegui_texture); + + d_textureTargetImage->setArea( + CEGUI::Rectf( + 0, + 0, + debug_cegui_texture.getSize().d_width, + debug_cegui_texture.getSize ().d_height)); + } + +#endif }
--- a/src/gui/debugpanel/debugcameratab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/debugcameratab.h Sun Jun 08 11:05:00 2014 +0200 @@ -17,7 +17,13 @@ #define DEBUGCAMERA_H #include "debugtab.h" -#include "CEGUI/CEGUIWindow.h" + +#ifdef CEGUI_07 +#include <CEGUI/CEGUIWindow.h> +#else +#include "CEGUI/Window.h" +#endif + #include "OgreSceneNode.h" class DebugCameraTab : public CEGUI::Window, public DebugTab
--- a/src/gui/debugpanel/debugpanel.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/debugpanel.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -20,10 +20,19 @@ #include "iconeditortab.h" #include "benchmarktab.h" #include "contenttab.h" -//#include "reloadtab.h" + +#include "debug.h" + +// TODO(Augustin Preda, 2014.03.25): re-enable when functionality can be added. +// #include "reloadtab.h" + #include "OgreRoot.h" #include "config.h" +// Utility for CEGUI cross-version compatibility +// TODO(Augustin Preda, 2014.03.25): remove when no longer needed. +#include "ceguiutility.h" + using namespace CEGUI; template<> DebugPanel* Ogre::Singleton<DebugPanel>::SUMWARS_OGRE_SINGLETON = 0; @@ -32,7 +41,7 @@ { m_guiSystem = System::getSingletonPtr(); m_winManager = WindowManager::getSingletonPtr(); - m_gameScreen = m_winManager->getWindow("GameScreen"); + m_gameScreen = CEGUIUtility::getWindow("GameScreen"); m_lastVisibilitySwitch = 0; createPanel(visible); } @@ -41,6 +50,7 @@ { if((Ogre::Root::getSingleton().getTimer()->getMilliseconds() - m_lastVisibilitySwitch) > 500) { + SW_DEBUG("Debug panel visibility toggle"); m_rootWindow->setVisible(!m_rootWindow->isVisible()); m_lastVisibilitySwitch = Ogre::Root::getSingleton().getTimer()->getMilliseconds(); } @@ -51,49 +61,63 @@ { m_rootWindow = m_winManager->createWindow("TaharezLook/FrameWindow", "DebugPanel"); m_rootWindow->setPosition(UVector2(UDim(0.1f, 0.0f), UDim(0.1f, 0.0f))); - m_rootWindow->setSize(UVector2(UDim(0.6f, 0.0f), UDim(0.6f, 0.0f))); + m_rootWindow->setProperty("FrameEnabled", "true"); + m_rootWindow->setVisible(false); + + CEGUIUtility::setWidgetSizeRel (m_rootWindow, 0.6f, 0.6f); m_rootWindow->setText((CEGUI::utf8*)"Debug Panel"); - m_gameScreen->addChildWindow(m_rootWindow); + CEGUIUtility::addChildWidget(m_gameScreen, m_rootWindow); m_rootWindow->subscribeEvent(CEGUI::FrameWindow::EventCloseClicked, Event::Subscriber(&DebugPanel::handleCloseWindow, this)); m_tabControl = static_cast<TabControl*>(m_winManager->createWindow("TaharezLook/TabControl", "DebugPanelTabControl")); m_tabControl->setPosition(UVector2(UDim(0.03f, 0.0f), UDim(0.06f, 0.0f))); - m_tabControl->setSize(UVector2(UDim(0.95f, 0.0f), UDim(0.9f, 0.0f))); - m_rootWindow->addChildWindow(m_tabControl); + m_tabControl->setInheritsAlpha(true); + CEGUIUtility::setWidgetSizeRel (m_tabControl,0.95f, 0.9f); + CEGUIUtility::addChildWidget(m_rootWindow, m_tabControl); GuiDebugTab *guiTab = static_cast<GuiDebugTab*>(m_winManager->createWindow("GuiDebugTab", "GuiDebugTab")); guiTab->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - guiTab->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + guiTab->setInheritsAlpha(true); + CEGUIUtility::setWidgetSizeRel (guiTab, 1.0f, 1.0f); addTabWindow("GuiDebugTab", guiTab); LuaScriptTab *luaTab = static_cast<LuaScriptTab*>(m_winManager->createWindow("LuaScriptTab", "LuaScriptTab")); luaTab->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - luaTab->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + luaTab->setInheritsAlpha(true); + CEGUIUtility::setWidgetSizeRel (luaTab, 1.0f, 1.0f); addTabWindow("LuaScriptTab", luaTab); IconEditorTab *iconEdTab = static_cast<IconEditorTab*>(m_winManager->createWindow("IconEditorTab", "IconEditorTab")); iconEdTab->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - iconEdTab->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + iconEdTab->setInheritsAlpha(true); + CEGUIUtility::setWidgetSizeRel (iconEdTab, 1.0f, 1.0f); addTabWindow("IconEditorTab", iconEdTab); BenchmarkTab *benchTab = static_cast<BenchmarkTab*>(m_winManager->createWindow("BenchmarkTab", "BenchmarkTab")); benchTab->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - benchTab->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + benchTab->setInheritsAlpha(true); + CEGUIUtility::setWidgetSizeRel (benchTab, 1.0f, 1.0f); addTabWindow("BenchmarkTab", benchTab); DebugCameraTab *camTab = static_cast<DebugCameraTab*>(m_winManager->createWindow("DebugCamera", "DebugCamera")); camTab->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - camTab->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + camTab->setInheritsAlpha(true); + CEGUIUtility::setWidgetSizeRel (camTab, 1.0f, 1.0f); addTabWindow("DebugCamera", camTab); - /* not yet implemented + + // TODO(Augustin Preda, 2014.03.25): Think about implementing the Reload functionality. + /* ReloadTab *reloadTab = static_cast<ReloadTab*>(m_winManager->createWindow("ReloadTab", "ReloadTab")); reloadTab->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); reloadTab->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); addTabWindow("ReloadTab", reloadTab); */ + if(!visible) + { m_rootWindow->setVisible(visible); + } } void DebugPanel::addTabWindow(std::string name, DebugTab* tab) @@ -108,7 +132,9 @@ bool DebugPanel::tabExists(std::string tabName) { if(m_tabs.find(tabName) != m_tabs.end()) + { return true; + } return false; } @@ -117,10 +143,14 @@ void DebugPanel::update(OIS::Keyboard *keyboard, OIS::Mouse *mouse) { if(m_tabs.size() < 1) + { return; + } if(keyboard->isKeyDown(OIS::KC_LCONTROL) && keyboard->isKeyDown(OIS::KC_D)) + { toogleVisibility(); + } std::map<std::string, DebugTab*>::iterator iter; for (iter = m_tabs.begin(); iter != m_tabs.end(); ++iter)
--- a/src/gui/debugpanel/debugtab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/debugtab.h Sun Jun 08 11:05:00 2014 +0200 @@ -16,7 +16,11 @@ #ifndef DEBUGTAB_H #define DEBUGTAB_H +#ifdef CEGUI_07 #include <CEGUI/CEGUIString.h> +#else +#include "CEGUI/String.h" +#endif namespace OIS {
--- a/src/gui/debugpanel/filebrowser/filebrowser.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/filebrowser/filebrowser.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,6 +13,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "filebrowser.h" #include "listitem.h" #include "logger.h" @@ -39,10 +42,10 @@ m_type = type; m_guiSystem = System::getSingletonPtr(); m_winManager = WindowManager::getSingletonPtr(); - m_gameScreen = m_winManager->getWindow("GameScreen"); + m_gameScreen = CEGUIUtility::getWindow("GameScreen"); - m_rootWindow = m_winManager->loadWindowLayout("filebrowser.layout"); - m_gameScreen->addChildWindow(m_rootWindow); + m_rootWindow = CEGUIUtility::loadLayoutFromFile ("filebrowser.layout"); + CEGUIUtility::addChildWidget (m_gameScreen, m_rootWindow); m_rootWindow->setVisible(visible); m_acceptBtn = static_cast<PushButton*>(m_rootWindow->getChild("Ok"));
--- a/src/gui/debugpanel/guidebugtab.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/guidebugtab.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,6 +13,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "guidebugtab.h" #include "CEGUI/CEGUI.h" @@ -26,11 +29,11 @@ { setText("Gui"); - m_tabLayout = WindowManager::getSingleton().loadWindowLayout("guidebugtab.layout"); + m_tabLayout = CEGUIUtility::loadLayoutFromFile ("guidebugtab.layout"); m_tabLayout->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - m_tabLayout->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + CEGUIUtility::setWidgetSizeRel(m_tabLayout, 1.0f, 1.0f); - this->addChildWindow(m_tabLayout); + CEGUIUtility::addChildWidget (this, m_tabLayout); } void GuiDebugTab::initialiseComponents(void ) @@ -40,22 +43,22 @@ void GuiDebugTab::update(OIS::Keyboard *keyboard, OIS::Mouse *mouse) { - CEGUI::Window *win = CEGUI::System::getSingleton().getWindowContainingMouse(); + CEGUI::Window *win = CEGUIUtility::getWindowContainingMouse(CEGUI::System::getSingletonPtr()); m_tabLayout->getChild("windowUnderMouseStaticText")->setText(win->getName()); m_tabLayout->getChild("typeStaticText")->setText(win->getType()); std::ostringstream floatStringHelper; - floatStringHelper << win->getSize().d_x.d_offset; + floatStringHelper << win->getSize().d_width.d_offset; m_tabLayout->getChild("xSizeLabel")->setText(floatStringHelper.str()); - floatStringHelper << win->getSize().d_y.d_offset; + floatStringHelper << win->getSize().d_height.d_offset; m_tabLayout->getChild("ySizeLabel")->setText(floatStringHelper.str()); m_tabLayout->getChild("contentsTextbox")->setText(win->getText()); } -void GuiDebugTab::onSized(CEGUI::WindowEventArgs& e) +void GuiDebugTab::onSized(CEGUI::ElementEventArgs& e) { CEGUI::Window::onSized(e); }
--- a/src/gui/debugpanel/guidebugtab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/guidebugtab.h Sun Jun 08 11:05:00 2014 +0200 @@ -17,7 +17,12 @@ #define GUIDEBUGTAB_H #include "debugtab.h" -#include "CEGUI/CEGUIWindow.h" + +#ifdef CEGUI_07 +#include <CEGUI/CEGUIWindow.h> +#else +#include "CEGUI/Window.h" +#endif class GuiDebugTab : public CEGUI::Window, public DebugTab { @@ -29,7 +34,7 @@ virtual void initialiseComponents(void ); protected: - virtual void onSized(CEGUI::WindowEventArgs& e); + virtual void onSized(CEGUI::ElementEventArgs& e); private: CEGUI::Window *m_tabLayout;
--- a/src/gui/debugpanel/iconeditortab.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/iconeditortab.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,6 +13,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "iconeditortab.h" #include "CEGUI/CEGUI.h" using namespace CEGUI; @@ -23,10 +26,10 @@ { setText("IconEd"); - CEGUI::Window *m_tabLayout = WindowManager::getSingleton().loadWindowLayout("iconedittab.layout"); + CEGUI::Window *m_tabLayout = CEGUIUtility::loadLayoutFromFile ("iconedittab.layout"); m_tabLayout->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - m_tabLayout->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); - this->addChildWindow(m_tabLayout); + CEGUIUtility::setWidgetSizeRel(m_tabLayout, 1.0f, 1.0f); + CEGUIUtility::addChildWidget (this, m_tabLayout); } @@ -35,7 +38,7 @@ } -void IconEditorTab::onSized(CEGUI::WindowEventArgs& e) +void IconEditorTab::onSized(CEGUI::ElementEventArgs& e) { CEGUI::Window::onSized(e); }
--- a/src/gui/debugpanel/iconeditortab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/iconeditortab.h Sun Jun 08 11:05:00 2014 +0200 @@ -16,7 +16,12 @@ #ifndef ICONEDITORTAB_H #define ICONEDITORTAB_H +#ifdef CEGUI_07 #include <CEGUI/CEGUIWindow.h> +#else +#include "CEGUI/Window.h" +#endif + #include "debugtab.h" class IconEditorTab : public CEGUI::Window, public DebugTab @@ -26,7 +31,7 @@ virtual void update(OIS::Keyboard *keyboard, OIS::Mouse *mouse); protected: - virtual void onSized(CEGUI::WindowEventArgs& e); + virtual void onSized(CEGUI::ElementEventArgs& e); virtual void onTextChanged(CEGUI::WindowEventArgs& e); virtual void onMouseMove(CEGUI::MouseEventArgs& e); virtual void onMouseWheel(CEGUI::MouseEventArgs& e);
--- a/src/gui/debugpanel/luascripttab.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/luascripttab.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,13 +13,15 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "luascripttab.h" #include "CEGUI/CEGUI.h" #include <iostream> #include "textfileeditwindow.h" #include "OgreString.h" -#include "ceguiutility.h" using namespace CEGUI; @@ -33,17 +35,17 @@ setText("Lua"); m_newFileCtr = 0; - m_tabLayout = WindowManager::getSingleton().loadWindowLayout("luascripttab.layout"); + m_tabLayout = CEGUIUtility::loadLayoutFromFile ("luascripttab.layout"); m_tabLayout->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - m_tabLayout->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + CEGUIUtility::setWidgetSizeRel (m_tabLayout, 1.0f, 1.0f); - m_fileTabControl = static_cast<TabControl*>(m_tabLayout->getChild("luaScriptTab/FileTabControl")); - m_filePathEditBox = static_cast<Editbox*>(m_tabLayout->getChild("luaScriptTab/fileDirectoryEditBox")); + m_fileTabControl = static_cast<TabControl*>(m_tabLayout->getChild("FileTabControl")); + m_filePathEditBox = static_cast<Editbox*>(m_tabLayout->getChild("FileDirectoryEditBox")); m_filePathEditBox->setText("./data/lua/debug.lua"); createMenu(); - this->addChildWindow(m_tabLayout); + CEGUIUtility::addChildWidget (this, m_tabLayout); m_fileTabControl->subscribeEvent(TabControl::EventSelectionChanged, CEGUI::Event::Subscriber(&LuaScriptTab::handleTabChanged, this)); @@ -54,7 +56,7 @@ } -void LuaScriptTab::onSized(CEGUI::WindowEventArgs& e) +void LuaScriptTab::onSized(CEGUI::ElementEventArgs& e) { CEGUI::Window::onSized(e); } @@ -119,7 +121,8 @@ TextFileEditWindow *win = static_cast<TextFileEditWindow*>(WindowManager::getSingleton().createWindow("TextFileEditWindow")); m_fileTabControl->addTab(win); win->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - win->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + CEGUIUtility::setWidgetSizeRel (win, 1.0f, 1.0f); + win->handleTextChanged(CEGUI::EventArgs()); m_newFileCtr++; return true; @@ -165,7 +168,7 @@ TextFileEditWindow *win = static_cast<TextFileEditWindow*>(WindowManager::getSingleton().createWindow("TextFileEditWindow")); m_fileTabControl->addTab(win); win->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - win->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); + CEGUIUtility::setWidgetSizeRel (win, 1.0f, 1.0f); win->load(m_fb->getCurrentSelected()); m_newFileCtr++; } @@ -188,13 +191,16 @@ void LuaScriptTab::createMenu() { - m_menubar = static_cast<CEGUI::Menubar*>(m_tabLayout->getChild("luaScriptTab/MenuBar")); + m_menubar = static_cast<CEGUI::Menubar*>(m_tabLayout->getChild("MenuBar")); MenuItem *fileItem = static_cast<MenuItem*>(WindowManager::getSingleton().createWindow (CEGUIUtility::getWidgetWithSkin (m_ceguiSkinName, "MenuItem"), "luaScriptTab/MenuBar/FileItem")); fileItem->setText("File"); m_menubar->addItem(fileItem); - PopupMenu *filePopup = static_cast<PopupMenu*>(WindowManager::getSingleton().createWindow (CEGUIUtility::getWidgetWithSkin (m_ceguiSkinName, "PopupMenu"), "luaScriptTab/MenuBar/FilePopup")); + PopupMenu *filePopup = static_cast<PopupMenu*>( + WindowManager::getSingleton().createWindow( + CEGUIUtility::getWidgetWithSkin(m_ceguiSkinName, "PopupMenu"), + "luaScriptTab/MenuBar/FilePopup")); MenuItem *it = static_cast<MenuItem*>(WindowManager::getSingleton().createWindow (CEGUIUtility::getWidgetWithSkin (m_ceguiSkinName, "MenuItem"), "luaScriptTab/MenuBar/FileItemNew")); it->setText("New");
--- a/src/gui/debugpanel/luascripttab.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/luascripttab.h Sun Jun 08 11:05:00 2014 +0200 @@ -16,7 +16,12 @@ #ifndef LUASCRIPTTAB_H #define LUASCRIPTTAB_H +#ifdef CEGUI_07 #include <CEGUI/CEGUIWindow.h> +#else +#include "CEGUI/Window.h" +#endif + #include "debugtab.h" #include "filebrowser/filebrowser.h" @@ -27,7 +32,7 @@ virtual void update(OIS::Keyboard *keyboard, OIS::Mouse *mouse); protected: - virtual void onSized(CEGUI::WindowEventArgs& e); + virtual void onSized(CEGUI::ElementEventArgs& e); virtual void onTextChanged(CEGUI::WindowEventArgs& e); virtual void onMouseMove(CEGUI::MouseEventArgs& e); virtual void onMouseWheel(CEGUI::MouseEventArgs& e);
--- a/src/gui/debugpanel/textfileeditwindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/textfileeditwindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -13,6 +13,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" + #include "textfileeditwindow.h" #include "CEGUI/CEGUI.h" #include <iostream> @@ -38,8 +41,9 @@ ss << m_ceguiSkinName << "/MultiLineEditbox"; m_textEditBox = static_cast<MultiLineEditbox*>(WindowManager::getSingleton().createWindow(ss.str ().c_str (), name + "EditBox")); m_textEditBox->setPosition(UVector2(UDim(0.0f, 0.0f), UDim(0.0f, 0.0f))); - m_textEditBox->setSize(UVector2(UDim(1.0f, 0.0f), UDim(1.0f, 0.0f))); - addChildWindow(m_textEditBox); + CEGUIUtility::setWidgetSizeRel(m_textEditBox, 1.0f, 1.0f); + CEGUIUtility::addChildWidget (this, m_textEditBox); + m_isDirty = false; m_fb = 0; @@ -169,23 +173,23 @@ int pos = m_textEditBox->getSelectionStartIndex(); s = s.insert(pos, TAB); m_textEditBox->setText(s); - m_textEditBox->setCaratIndex(pos+3); + m_textEditBox->setCaretIndex(pos+3); return true; } else if(e.codepoint == 40) { // Handle ( - m_textEditBox->insertText(")", m_textEditBox->getCaratIndex()); + m_textEditBox->insertText(")", m_textEditBox->getCaretIndex()); } else if(e.codepoint == 91) { // Handle [ - m_textEditBox->insertText("]", m_textEditBox->getCaratIndex()); + m_textEditBox->insertText("]", m_textEditBox->getCaretIndex()); } else if(e.codepoint == 123) { // Handle { - m_textEditBox->insertText("}", m_textEditBox->getCaratIndex()); + m_textEditBox->insertText("}", m_textEditBox->getCaretIndex()); } return false;
--- a/src/gui/debugpanel/textfileeditwindow.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/debugpanel/textfileeditwindow.h Sun Jun 08 11:05:00 2014 +0200 @@ -16,8 +16,14 @@ #ifndef TEXTFILEEDITWINDOW_H #define TEXTFILEEDITWINDOW_H +#ifdef CEGUI_07 #include <CEGUI/CEGUIWindow.h> #include <CEGUI/CEGUIEvent.h> +#else +#include "CEGUI/Window.h" +#include "CEGUI/Event.h" +#endif + #include "filebrowser/filebrowser.h" #include "boost/filesystem/path.hpp"
--- a/src/gui/default_resources.cfg.inc.in Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/default_resources.cfg.inc.in Sun Jun 08 11:05:00 2014 +0200 @@ -85,6 +85,7 @@ "\n" "[emotionsets]\n" "FileSystem=@SUMWARS_PREFIX@/@SUMWARS_SHARE_DIR@/resources/emotionsets\n" +"FileSystem=@SUMWARS_PREFIX@/@SUMWARS_SHARE_DIR@/resources/@CEGUI_VERSION_RESOURCES@/emotionsets\n" "\n" "[itempictures]\n" "FileSystem=@SUMWARS_PREFIX@/@SUMWARS_SHARE_DIR@/resources/itempictures\n"
--- a/src/gui/dialoguewindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/dialoguewindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -23,7 +23,6 @@ { m_scene = scene; CEGUI::Window* label; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); // The CharInfo window and holder CEGUI::FrameWindow* dialog_wnd = static_cast<CEGUI::FrameWindow*> (CEGUIUtility::loadLayoutFromFile ("dialogwindow.layout")); @@ -77,8 +76,6 @@ void DialogueWindow::update() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - Player* player = m_document->getLocalPlayer(); Region* reg = player->getRegion(); Dialogue* dia = reg->getDialogue( player->getDialogueId() ); @@ -758,8 +755,8 @@ bool DialogueWindow::onTextClicked(const CEGUI::EventArgs& evt) { SW_DEBUG ("DialogueWindow::onTextClicked"); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - const CEGUI::MouseEventArgs& we = + + const CEGUI::MouseEventArgs& we = static_cast<const CEGUI::MouseEventArgs&>(evt); CEGUI::Window* btn = CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "DialogWindow/DialogueLowerBar/DialogueSkipAllButton"); bool skipAll = false;
--- a/src/gui/inventory.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/inventory.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -27,8 +27,6 @@ { DEBUGX("setup inventory"); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Window* inventory = CEGUIUtility::loadLayoutFromFile ("inventory.layout"); if (!inventory) { @@ -236,7 +234,6 @@ void Inventory::update() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* img; CEGUI::Window* label; Item* it,*weapon; @@ -393,7 +390,6 @@ void Inventory::setState(State s) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; if(s == Inventory::StateSmall) @@ -457,7 +453,6 @@ void Inventory::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; label = CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "Inventory/inventory_aux/GoldStaticImage/GoldDropButton"); @@ -490,8 +485,6 @@ bool Inventory::onDropGoldClicked(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Editbox* gold = static_cast<CEGUI::Editbox*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "Inventory/inventory_aux/GoldDropValueBox")); int val =0; std::stringstream stream; @@ -542,7 +535,6 @@ { #if ((CEGUI_VERSION_MAJOR << 16) + (CEGUI_VERSION_MINOR << 8) + CEGUI_VERSION_PATCH >= (0 << 16)+(7 << 8)+5) - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; CEGUI::AnimationManager::getSingleton().loadAnimationsFromXML("InventoryAnimations.xml");
--- a/src/gui/itemwindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/itemwindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -93,7 +93,7 @@ if (we.button == CEGUI::LeftButton) { - DEBUGX("left button released on Item %i",id); + DEBUGX("left button released on Item %i", id); } return true; } @@ -230,9 +230,8 @@ windowname.erase(pos,5); } windowname.append("ProgressBar"); - // Fenstermanager - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - + + // Fenstermanager if (CEGUIUtility::isWindowPresent (windowname)) { // update progress bar to reflect item timer
--- a/src/gui/mainmenu.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/mainmenu.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -55,7 +55,6 @@ m_savegame_player_action.m_elapsed_time = 0; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; #if 0 // Load the holder (this should be aspect ratio dependent). @@ -72,25 +71,10 @@ { WARNING ("WARNING: Failed to load [%s]", "mainmenu.layout"); } - CEGUI::Window* wndHeld = CEGUIUtility::getWindowForLoadedLayoutEx (m_starMenuRoot, "MainMenuRoot"); SW_DEBUG ("Placing layout into holder"); m_starMenuRoot->setVisible (true); -#if 0 - main_menu_holder->setVisible (true); - - if (wndHolder && wndHeld) - { - CEGUIUtility::addChildWidget (wndHolder, wndHeld); - } - else - { - if (!wndHolder) DEBUG ("ERROR: Unable to get the window holder for main menu."); - if (!wndHeld) DEBUG ("ERROR: Unable to get the window for main menu."); - } -#endif - //m_window = main_menu_holder; m_window = m_starMenuRoot;// Augustin Preda, 2014.01.08: switched main window to the holder. @@ -172,8 +156,8 @@ btn = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("LoginButton")); btn->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&MainMenu::onLoginToOnlineService, this)); - CEGUI::FrameWindow* login_dialog = (CEGUI::FrameWindow*) win_mgr.loadWindowLayout( "LoginDialog.layout" ); - m_window->addChildWindow(login_dialog); + CEGUI::FrameWindow* login_dialog = static_cast<CEGUI::FrameWindow*>(CEGUIUtility::loadLayoutFromFile ("LoginDialog.layout")); + CEGUIUtility::addChildWidget (m_window, login_dialog); login_dialog->hide(); btn = static_cast<CEGUI::PushButton*>(win_mgr.getWindow("LoginDialog/LoginButton")); @@ -216,8 +200,6 @@ void MainMenu::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Window* widget; // Update the button labels. @@ -443,7 +425,6 @@ void MainMenu::setSavegameListVisible(bool show) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::FrameWindow* savegameList = (CEGUI::FrameWindow*) CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "SaveGameSelectionFrame"); if (savegameList->isVisible() != show) { @@ -982,8 +963,6 @@ void MainMenu::createSavegameList() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // Select the frame for the saved games in the menu std::string widgetName (CEGUIUtility::getNameForWidget("SaveGameSelectionFrame")); CEGUI::FrameWindow* savegameList = static_cast<CEGUI::FrameWindow*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_starMenuRoot, widgetName));
--- a/src/gui/mainwindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/mainwindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -336,8 +336,6 @@ m_document->setModified(m_document->getModified() & (~Document::SAVEGAME_MODIFIED)); } - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // Sprache anpassen if (Gettext::getLocaleChanged()) { @@ -842,8 +840,8 @@ CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); // Oberstes Fenster der Hauptmenue Schicht - m_game_screen = win_mgr.createWindow("DefaultWindow", "GameScreen"); - m_game_screen->setMousePassThroughEnabled(true); + m_game_screen = win_mgr.createWindow("DefaultWindow", "GameScreen"); + m_game_screen->setMousePassThroughEnabled(true); // Kontrollleiste anlegen setupControlPanel(); @@ -1090,9 +1088,6 @@ { DEBUGX("setup object info"); - // Fenstermanager - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // Leiste fuer Informationen CEGUI::Window* monster_health_holder = CEGUIUtility::loadLayoutFromFile ("monsterhealthbar.layout"); if (monster_health_holder) @@ -1292,7 +1287,6 @@ void MainWindow::updateMainMenu() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* img = 0; if (CEGUIUtility::isWindowPresent ("MainMenu/StartScreenRoot")) { @@ -1338,9 +1332,6 @@ Item* item = 0; item = player->getEquipement()->getItem(Equipement::CURSOR_ITEM); - - - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label = CEGUIUtility::getWindowForLoadedLayoutEx (m_root_window, "CursorItemImage"); if (item == 0) @@ -1411,7 +1402,6 @@ std::string objname = ""; // Fenstermanager - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label = CEGUIUtility::getWindow ("GameScreen/ObjectInfoRoot/ObjectInfoLabel"); CEGUI::Window* itmlabel = CEGUIUtility::getWindow ("GameScreen/ItemInfoLabel"); CEGUI::ProgressBar* bar = static_cast<CEGUI::ProgressBar*>(CEGUIUtility::getWindow ("GameScreen/ObjectInfoRoot/MonsterHealthProgressBar")); @@ -2170,8 +2160,6 @@ m_sub_windows["PartyInfo"]->update(); } - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Window* img; CEGUI::ProgressBar* bar; @@ -2298,8 +2286,6 @@ //SoundManager::getPtr ()->getMusicPlayer ()->stop (); } - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - if (refresh) { SW_DEBUG ("*** main window expecting refresh for region [%s]", pl->getRegion ()->getName ().c_str ()); @@ -2467,7 +2453,6 @@ static Timer timer; int windows = m_document->getGUIState()->m_shown_windows; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); Player* pl = m_document->getLocalPlayer(); CEGUI::Window* label; @@ -2643,7 +2628,6 @@ try { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label = CEGUIUtility::getWindowForLoadedLayoutEx (m_root_window, "CursorItemImage"); int off = 0; @@ -2765,8 +2749,6 @@ */ bool MainWindow::mouseReleased (const OIS::MouseEvent &evt, OIS::MouseButtonID btn) { - CEGUI::MouseButton button = CEGUI::NoButton; - // TODO: There are 2 separate if-else blocks; check if it makes sense to unite them, // or the sequence of events is really necessary. if (btn == OIS::MB_Left) @@ -2873,17 +2855,19 @@ bool MainWindow::keyReleased(const OIS::KeyEvent &evt) { - + //Current key is cleared m_key =0; m_key_repeat = false; bool ret = CEGUIUtility::injectKeyUp (m_cegui_system, evt.key); + //Check if releasing key is hold player key. if (evt.key == OIS::KC_RSHIFT || evt.key == OIS::KC_LSHIFT) { m_document->getGUIState()->m_shift_hold = false; } + //Treats release action if (!ret) { ret = m_document->onKeyRelease(evt.key); @@ -2946,8 +2930,6 @@ { m_ready_to_start = ready; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::ProgressBar* bar = static_cast<CEGUI::ProgressBar*>(CEGUIUtility::getWindow ("MainMenu/StartScreenRoot/LoadRessourcesProgressBar")); bar->setVisible(!ready); @@ -2973,13 +2955,7 @@ void MainWindow::setRessourceLoadingBar(float percent) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::ProgressBar* bar = static_cast<CEGUI::ProgressBar*>(CEGUIUtility::getWindow ("MainMenu/StartScreenRoot/LoadRessourcesProgressBar")); bar->setProgress(percent); } - - - -
--- a/src/gui/mainwindow.h Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/mainwindow.h Sun Jun 08 11:05:00 2014 +0200 @@ -18,15 +18,15 @@ #define __SUMWARS_GUI_MAINWINDOW_H__ -// Utility for CEGUI cross-version compatibility -#include "ceguiutility.h" +// Utility for CEGUI cross-version compatibility +#include "ceguiutility.h" // needed to be able to create the CEGUI renderer interface -#ifdef CEGUI_07 -#include "CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h" -#else -#include "CEGUI/RendererModules/Ogre/Renderer.h" -#endif +#ifdef CEGUI_07 +#include "CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h" +#else +#include "CEGUI/RendererModules/Ogre/Renderer.h" +#endif // CEGUI includes @@ -325,7 +325,7 @@ /** * \fn bool keyReleased(const OIS::KeyEvent &evt) - * \brief Behandelt Loslassen von Tasten auf der Tastatur + * \brief Treats keyboard's keys when released */ bool keyReleased(const OIS::KeyEvent &evt); @@ -478,7 +478,7 @@ /** * \var unsigned int m_key - * \brief gedrueckte Taste + * \brief Pressed key */ unsigned int m_key;
--- a/src/gui/messageboxes.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/messageboxes.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -25,7 +25,6 @@ SaveExitWindow::SaveExitWindow (Document* doc) :Window(doc) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::FrameWindow* save_exit = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile ("saveexitwindow.layout"); @@ -56,7 +55,6 @@ void SaveExitWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; CEGUI::PushButton* btn = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "GameExitConfirmButton")); @@ -117,7 +115,6 @@ { m_question = question; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::FrameWindow* message = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile (layoutName.c_str ()); @@ -148,7 +145,6 @@ void MessageQuestionWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* widget; CEGUI::String widgetName (CEGUIUtility::getNameForWidget("QuestionAnswerButton1")); @@ -186,7 +182,6 @@ WarningDialogWindow::WarningDialogWindow (Document* doc) :Window(doc) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::FrameWindow* warning_dialog = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile("warningdialogwindow.layout"); @@ -205,7 +200,6 @@ void WarningDialogWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; CEGUI::PushButton* btn = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "WarningDialogConfirmButton")); @@ -238,7 +232,6 @@ ErrorDialogWindow::ErrorDialogWindow (Document* doc) :Window(doc) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::FrameWindow* error_dialog = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile ("errordialogwindow.layout"); @@ -257,7 +250,6 @@ void ErrorDialogWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; CEGUI::PushButton* btn = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "ErrorDialogConfirmButton"));
--- a/src/gui/minimapwindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/minimapwindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -43,8 +43,6 @@ DEBUGX("setup main menu"); // Create GUI Items. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - CEGUI::Window* minimapWnd = CEGUIUtility::loadLayoutFromFile ("minimapwindow.layout"); if (!minimapWnd) {
--- a/src/gui/networkwindows.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/networkwindows.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -22,7 +22,6 @@ :Window(doc) { SW_DEBUG ("HostGameWindow being created"); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::Editbox* box; @@ -82,7 +81,6 @@ void HostGameWindow::update() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Editbox* box; Options* options = Options::getInstance(); @@ -113,7 +111,6 @@ void HostGameWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; CEGUI::PushButton* btn = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "HostGameWindow/HostGameStartButton")); @@ -135,7 +132,6 @@ bool HostGameWindow::onStartHostGame(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Editbox* box; Options* options = Options::getInstance(); @@ -175,7 +171,6 @@ :Window(doc) { SW_DEBUG ("JoinGameWindow being created"); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::Editbox* box; @@ -200,8 +195,14 @@ } else { - if (!wndHolder) SW_DEBUG ("ERROR: Unable to get the window holder for char screen."); - if (!wndCharInfo) SW_DEBUG ("ERROR: Unable to get the window for char screen."); + if (!wndHolder) + { + SW_DEBUG ("ERROR: Unable to get the window holder for char screen."); + } + if (!wndCharInfo) + { + SW_DEBUG ("ERROR: Unable to get the window for char screen."); + } } m_window = join_game_holder; @@ -235,7 +236,6 @@ void JoinGameWindow::update() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Editbox* box; Options* options = Options::getInstance(); @@ -263,7 +263,6 @@ void JoinGameWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; CEGUI::PushButton* btn = static_cast<CEGUI::PushButton*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "JoinGameWindow/JoinGameStartButton")); @@ -285,7 +284,6 @@ bool JoinGameWindow::onStartJoinGame(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Editbox* box; Options* options = Options::getInstance();
--- a/src/gui/optionswindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/optionswindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -46,10 +46,8 @@ m_keyboard = keyboard; SW_DEBUG ("OptionsWindow being created using cegui skin [%s]", m_ceguiSkinName.c_str ()); - // Generate GUI Elements - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - + // Generate GUI Elements // Load the base options window - containing the actual elements. CEGUI::FrameWindow* options = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile ("optionswindow.layout"); if (!options) @@ -239,8 +237,9 @@ cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "English US","en_US",0)); cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "Italian IT","it_IT",0)); cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "Russian RU","ru_RU",0)); - cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "Ukrainian UK","uk_UA",0)); - cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "Spanish ES","es_ES",0)); + cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "Ukrainian UK","uk_UA",0)); + cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "Spanish ES","es_ES",0)); + cbo->addItem(new StrListItem((CEGUI::utf8*) m_ceguiSkinName.c_str (), "French FR","fr_FR",0)); cbo->setReadOnly(true); connectWidgetSoundEvents ("OptionsWindow/OptionsWindowTab/__auto_TabPane__/OptionsMisc/LanguageBox", "combobox"); @@ -440,7 +439,6 @@ void OptionsWindow::update() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; Options* options = Options::getInstance(); @@ -499,7 +497,6 @@ void OptionsWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; CEGUIUtility::ToggleButton* box; @@ -603,7 +600,6 @@ { try { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); if (widgetType == "combobox") { try @@ -727,8 +723,6 @@ // Check to see if the display mode was updated. The display mode is stored in a different file at the moment. // TODO: move towards integrated settings file (single file for most settings). { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // Flag to keep track of whether we need updating of the settings. bool someVideoSettingsWereChanged (false); @@ -1202,8 +1196,6 @@ // For windowed (fullscreen) mode, make sure the resolution can't be edited. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton (); - std::string widgetName = CEGUIUtility::getNameForWidget ("OptionsWindow/OptionsWindowTab/__auto_TabPane__/OptionsGraphic/ResolutionBox"); cbo = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, widgetName)); if (myDisplayMode == WINDOWED_FULLSCREEN) @@ -1296,7 +1288,6 @@ } // Start adding the resolutions as items to the combo-box, one by one. - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton (); cbo = static_cast<CEGUI::Combobox*>(CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "OptionsWindow/OptionsWindowTab/__auto_TabPane__/OptionsGraphic/ResolutionBox")); cbo->resetList ();
--- a/src/gui/partyinfo.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/partyinfo.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -232,7 +232,6 @@ Fraction::Relation rel,rel2; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); std::ostringstream stream; CEGUI::Window* label, *img, *btn; bool vis; @@ -466,7 +465,6 @@ void PartyInfo::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; std::ostringstream stream;
--- a/src/gui/questinfo.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/questinfo.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -27,9 +27,6 @@ DEBUGX("setup main menu"); // GUI Elemente erzeugen - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - // Rahmen fuer das Menue Savegame auswaehlen CEGUI::FrameWindow* quest_info = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile ("questinfo.layout"); if (!quest_info) @@ -99,8 +96,6 @@ if (World::getWorld() ==0) return; - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // Auswahl ermitteln bool open,done,failed; CEGUIUtility::ToggleButton * box; @@ -158,7 +153,6 @@ void QuestInfo::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; label = CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "QuestInfo"); @@ -200,7 +194,6 @@ void QuestInfo::updateDescription() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Listbox* classlist = (CEGUI::Listbox*) CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "QuestInfo/questinfo_aux/QuestList"); CEGUI::ListboxItem * itm = classlist->getFirstSelectedItem();
--- a/src/gui/savegamelist.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/savegamelist.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -97,8 +97,6 @@ void SavegameList::update() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // Liste aller Files im Save Ordner der Form *.sav Ogre::FileInfoListPtr files; Ogre::FileInfoList::iterator it; @@ -172,8 +170,8 @@ SW_DEBUG ("Loading layout file [saveitem.layout]"); saveItem = (CEGUI::FrameWindow*) (CEGUIUtility::loadLayoutFromFile ("saveitem.layout")); SW_DEBUG ("Loaded layout file [saveitem.layout]"); - //saveItem = (CEGUI::Window*) win_mgr.loadWindowLayout("saveitem.layout", s.str()); - m_currentSelected = saveItem; + + m_currentSelected = saveItem; saveItem->setName (layoutRootItemName); saveItem->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&SavegameList::onSavegameChosen, this)); saveItem->subscribeEvent(CEGUIUtility::EventMouseEntersPushButtonArea (), CEGUI::Event::Subscriber(&SavegameList::onItemButtonHover, this)); @@ -418,7 +416,6 @@ void SavegameList::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; /* CEGUI::Window* label; @@ -511,7 +508,6 @@ bool SavegameList::onDeleteCharClicked(const CEGUI::EventArgs& evt) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); const CEGUI::WindowEventArgs& we = static_cast<const CEGUI::WindowEventArgs&>(evt); onSavegameChosen(CEGUI::WindowEventArgs(we.window->getParent())); @@ -528,7 +524,6 @@ // Also play the click sound. SoundHelper::playAmbientSoundGroup ("main_menu_click_item"); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); m_document->hideQuestionDialog (); // Get the save file to remove. @@ -573,7 +568,6 @@ // Also play the click sound. SoundHelper::playAmbientSoundGroup ("main_menu_click_item"); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); m_document->hideQuestionDialog (); return true;
--- a/src/gui/skilltree.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/skilltree.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -26,18 +26,15 @@ #define DEFAULT_SKILL_BTN_WIDTH 0.07f #define DEFAULT_SKILL_BTN_HEIGHT 0.05f -SkillTree::SkillTree (Document* doc, OIS::Keyboard *keyboard, const std::string& ceguiSkinName) - : Window (doc) - , m_ceguiSkinName (ceguiSkinName) +SkillTree::SkillTree(Document* doc, OIS::Keyboard *keyboard, const std::string& ceguiSkinName) + : Window(doc), + m_ceguiSkinName(ceguiSkinName) { DEBUGX("setup skilltree"); m_keyboard = keyboard; m_skill_widgets_pics.clear (); m_skill_widgets_btns.clear (); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - - // Rahmen fuer Skilltree Fenster // Bestandteile des Charakterfensters hinzufuegen @@ -58,7 +55,7 @@ CEGUI::Window* skilltree_holder = CEGUIUtility::loadLayoutFromFile ("skilltree_holder.layout"); if (!skilltree_holder) { - SW_DEBUG ("WARNING: Failed to load [%s]", "skilltree_holder.layout"); + SW_DEBUG("WARNING: Failed to load [%s]", "skilltree_holder.layout"); } CEGUI::Window* wndHolder = CEGUIUtility::getWindowForLoadedLayoutEx (skilltree_holder, "Skilltree_Holder"); @@ -69,8 +66,15 @@ } else { - if (!wndHolder) SW_DEBUG ("ERROR: Unable to get the window holder for skills."); - if (!wndSkilltree) SW_DEBUG ("ERROR: Unable to get the window for skills."); + if (!wndHolder) + { + SW_DEBUG("ERROR: Unable to get the window holder for skills."); + } + + if (!wndSkilltree) + { + SW_DEBUG("ERROR: Unable to get the window for skills."); + } } m_window = skilltree_holder; @@ -106,11 +110,11 @@ if (player->getId() != m_player_id) { m_player_id = player->getId(); - DEBUGX("new Player id %i",m_player_id); + DEBUGX("new Player id %i", m_player_id); // alle bisherigen Tabs und Skills entfernen - for (int i=0; i<m_nr_skills; i++) + for (int i = 0; i < m_nr_skills; i++) { //stream.str(""); //stream << "SkillImage"<<i; @@ -129,7 +133,7 @@ win_mgr.destroyWindow(wnd); } - for (int i=0; i<m_nr_dependencies; i++) + for (int i = 0; i < m_nr_dependencies; i++) { //stream.str(""); //stream << "SkillDependencyConnection"<<i; @@ -139,9 +143,9 @@ CEGUIUtility::removeChildWidget (wnd->getParent (), wnd); win_mgr.destroyWindow(wnd); } - m_nr_dependencies=0; + m_nr_dependencies = 0; - for (int i=0; i<m_shortkey_labels; i++) + for (int i = 0; i < m_shortkey_labels; i++) { //stream.str(""); //stream << "SkillShortkeyLabel"<<i; @@ -151,9 +155,9 @@ CEGUIUtility::removeChildWidget (wnd->getParent (), wnd); win_mgr.destroyWindow(wnd); } - m_shortkey_labels=0; + m_shortkey_labels = 0; - for (int i=0; i<m_nr_tabs; i++) + for (int i = 0; i < m_nr_tabs; i++) { stream.str(""); stream << "Skilltree/skilltree_aux/SkilltreeTabs/__auto_TabPane__/"; @@ -366,7 +370,7 @@ for (std::list< Action::ActionType >::iterator at = it->second.m_req_abilities.begin(); at != it->second.m_req_abilities.end(); ++at) { // another loop over all abilities - std::map<int,LearnableAbility>::iterator jt; + std::map<int, LearnableAbility>::iterator jt; for (jt = player->getLearnableAbilities().begin(); jt != player->getLearnableAbilities().end(); ++jt) { if (*at == jt->second.m_type) @@ -433,7 +437,7 @@ } std::ostringstream out_stream; - std::map<int,LearnableAbility> &ablts = player->getLearnableAbilities(); + std::map<int, LearnableAbility> &ablts = player->getLearnableAbilities(); bool vis; Action::ActionType act; @@ -485,7 +489,7 @@ } // Loop over all Dependencies - for (int j=0;j<m_nr_dependencies;j++) + for (int j = 0; j < m_nr_dependencies; j++) { std::string skillConnWidget = m_skill_widgets_connections[j]; @@ -512,17 +516,23 @@ // update labels for skillpoints and nextskillpoint at // value for next skillpoint level calculation is hacky! - int skilllvls[20] = {2,3,5,7,10,15,20,25,30,35,40,45,50,60,70,80,90,100,1000}; - //int nextlvl; // 2011.10.26: found as unused + int skilllvls[20] = { + 2, 3, 5, 7, 10, + 15, 20, 25, 30, 35, + 40, 45, 50, 60, 70, + 80, 90, 100, 1000}; + int lvlid; - for (lvlid=0; lvlid<20; lvlid++) + for (lvlid = 0; lvlid < 20; ++lvlid) { if (player->getBaseAttr()->m_level < skilllvls[lvlid]) + { break; + } } std::string lvlstr; - if (skilllvls[lvlid] != 1000) + if (lvlid < 20 && skilllvls[lvlid] != 1000) { std::stringstream lvlstream; lvlstream << skilllvls[lvlid]; @@ -537,13 +547,17 @@ spstream << player->getSkillPoints(); // there is one label on _each_ tab - label = CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "Skilltree/skilltree_aux/SkillTreeAdditionalInfoHolder/SkillpointsValueLabel"); + label = CEGUIUtility::getWindowForLoadedLayoutEx( + m_window, "Skilltree/skilltree_aux/SkillTreeAdditionalInfoHolder/SkillpointsValueLabel"); + if (label->getText() != spstream.str()) { label->setText(spstream.str()); } - label = CEGUIUtility::getWindowForLoadedLayoutEx (m_window, "Skilltree/skilltree_aux/SkillTreeAdditionalInfoHolder/NextSkillpointsValueLabel"); + label = CEGUIUtility::getWindowForLoadedLayoutEx( + m_window, "Skilltree/skilltree_aux/SkillTreeAdditionalInfoHolder/NextSkillpointsValueLabel"); + if (label->getText() != lvlstr) { label->setText(lvlstr); @@ -564,10 +578,12 @@ for (it = shortkeys.begin(); it != shortkeys.end(); ++it) { - if (it->second < USE_SKILL_LEFT || it->second >USE_SKILL_RIGHT+200) + if (it->second < USE_SKILL_LEFT || it->second > USE_SKILL_RIGHT + 200) + { continue; + } - DEBUGX("shortkey %i to %i",it->first,it->second); + DEBUGX("shortkey %i to %i", it->first, it->second); key = it->first; right = false; @@ -582,8 +598,11 @@ id = it->second - USE_SKILL_LEFT; } - if (ablts.count(id) ==0) + if (ablts.count(id) == 0) + { continue; + } + act= ablts[id].m_type; stream.str(""); @@ -698,13 +717,11 @@ void SkillTree::updateTranslation() { - - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); std::vector<CEGUI::DefaultWindow*> tabs(m_nr_tabs); std::stringstream stream; - for (int i=0; i<m_nr_tabs; i++) + for (int i = 0; i < m_nr_tabs; i++) { stream.str(""); stream << "Skilltree/skilltree_aux/SkilltreeTabs/__auto_TabPane__/"; @@ -715,12 +732,14 @@ // Ueberschriften der Tabs setzen Player* player = m_document->getLocalPlayer(); - if (m_nr_tabs <3) + if (m_nr_tabs < 3) + { return; + } PlayerBasicData* pdata = ObjectFactory::getPlayerData(player->getSubtype()); CEGUI::Window* label; - for (int i=0; i<3; i++) + for (int i = 0; i < 3; i++) { tabs[i]->setText((CEGUI::utf8*) gettext(pdata->m_tabnames[i].c_str())); } @@ -742,12 +761,11 @@ void SkillTree::updateAbilityTooltip(unsigned int pos) { Player* player = m_document->getLocalPlayer(); - std::map<int,LearnableAbility> &ablts = player->getLearnableAbilities(); + std::map<int, LearnableAbility> &ablts = player->getLearnableAbilities(); DEBUGX("update tooltip for %i %s", pos, ablts[pos].m_type.c_str()); - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::Window* label; //std::ostringstream out_stream; //out_stream.str(""); @@ -767,7 +785,7 @@ bool SkillTree::onSkillMouseClicked(const CEGUI::EventArgs& evt) { Player* player = m_document->getLocalPlayer(); - std::map<int,LearnableAbility> &ablts = player->getLearnableAbilities(); + std::map<int, LearnableAbility> &ablts = player->getLearnableAbilities(); const CEGUI::MouseEventArgs& we = static_cast<const CEGUI::MouseEventArgs&>(evt); @@ -780,7 +798,7 @@ if (we.button == CEGUI::RightButton) { - DEBUGX("right button pressed on skill %i",id); + DEBUGX("right button pressed on skill %i", id); m_document->setRightAction(ablts[id].m_type); } @@ -791,7 +809,7 @@ bool SkillTree::onSkillLearnMouseClicked(const CEGUI::EventArgs& evt) { Player* player = m_document->getLocalPlayer(); - std::map<int,LearnableAbility> &ablts = player->getLearnableAbilities(); + std::map<int, LearnableAbility> &ablts = player->getLearnableAbilities(); const CEGUI::MouseEventArgs& we = static_cast<const CEGUI::MouseEventArgs&>(evt); @@ -813,12 +831,12 @@ { Player* player = m_document->getLocalPlayer(); - std::map<int,LearnableAbility> &ablts = player->getLearnableAbilities(); + std::map<int, LearnableAbility> &ablts = player->getLearnableAbilities(); const CEGUI::MouseEventArgs& we = static_cast<const CEGUI::MouseEventArgs&>(evt); unsigned int id = we.window->getID(); - DEBUGX("mouse entered Ability %i",id); + DEBUGX("mouse entered Ability %i", id); updateAbilityTooltip(id); m_document->getGUIState()->m_hover_ability = ablts[id].m_type;
--- a/src/gui/tradewindow.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/tradewindow.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -212,8 +212,6 @@ int nmedium = equ->getMaxItemNumber(Item::MEDIUM); int nsmall = equ->getMaxItemNumber(Item::SMALL); - - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; bool vis; @@ -282,7 +280,6 @@ void TradeWindow::updateTranslation() { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); CEGUI::PushButton* btn; CEGUI::Window* label;
--- a/src/gui/worldmap.cpp Sat Mar 22 19:09:18 2014 +0100 +++ b/src/gui/worldmap.cpp Sun Jun 08 11:05:00 2014 +0200 @@ -23,8 +23,6 @@ : Window (doc) , m_ceguiSkinName (ceguiSkinName) { - CEGUI::WindowManager& win_mgr = CEGUI::WindowManager::getSingleton(); - // The World map window and holder CEGUI::Window* worldmap = (CEGUI::FrameWindow*) CEGUIUtility::loadLayoutFromFile ("worldmapwindow.layout"); if (!worldmap) @@ -67,18 +65,22 @@ std::map<short,WaypointInfo>& winfos = World::getWorld()->getWaypointData(); std::map<short,WaypointInfo>::iterator it; + // TODO(Augustin Preda, 2014.03.29): revie the way in which this stringstream is used. + // From the looks of it, it could be easily removed and regular strings be used instead. std::ostringstream stream; int cnt =0; CEGUI::Window* label; Vector pos; - // Schleife ueber alle Wegpunkte + // Run through all waypoints. for (it = winfos.begin(); it != winfos.end(); ++it) { - // nur Wegpunkte die der Spieler schon gefunden hat + // Skip any WayPoints that the player did not find (yet) if (!player->checkWaypoint(it->first)) + { continue; + } stream.str(""); stream << "WaypointImage"<<cnt; @@ -90,7 +92,6 @@ label->setProperty("FrameEnabled", "false"); label->setProperty("BackgroundEnabled", "false"); - //label->setProperty("BackgroundColours", "tl:00000000 tr:00000000 bl:00000000 br:00000000"); CEGUIUtility::setWidgetSizeRel (label, 0.02f, 0.02f); label->setProperty("Image", CEGUIUtility::getImageNameWithSkin ("SumWarsExtras", "WaypointMark")); label->setInheritsAlpha (false); @@ -116,7 +117,7 @@ } - // restliche Label verstecken + // Hide the rest of the labels for (; cnt <ncount; cnt++) { stream.str(""); @@ -186,18 +187,21 @@ stream << dgettext("sumwars","Town Portal") << "\n"; stream << dgettext("sumwars",it->second.m_name.c_str()); label->setTooltipText((CEGUI::utf8*) stream.str().c_str()); - //label->setTooltip (); //XXX } else { ERRORMSG("region %s has no world position", portal.first.c_str()); } } - else { - if(tpset == true) { + else + { + if(tpset == true) + { stream.str (""); stream << "WorldmapWindow_Holder_aux/WorldmapWindow/TownPortalImage"; - label = CEGUIUtility::getWindowForLoadedLayoutEx (m_window, stream.str()); + label = CEGUIUtility::getWindowForLoadedLayoutEx( + m_window, + stream.str()); label->setVisible(false); }