some improve game ui and bugfixes

This commit is contained in:
2011-09-11 01:26:06 +04:00
committed by unknown
parent 9f90c1e676
commit 714154a6fd
19 changed files with 363 additions and 392 deletions

View File

@@ -1,287 +1,184 @@
<!DOCTYPE QtCreatorProject>
<qtcreator>
<data>
<variable>RunConfiguration0-BaseEnvironmentBase</variable>
<value type="int">2</value>
</data>
<data>
<variable>RunConfiguration0-CommandLineArguments</variable>
<valuelist type="QVariantList"/>
</data>
<data>
<variable>RunConfiguration0-ProFile</variable>
<value type="QString">ADeditor.pro</value>
</data>
<data>
<variable>RunConfiguration0-RunConfiguration.name</variable>
<value type="QString">ADeditor</value>
</data>
<data>
<variable>RunConfiguration0-UseDyldImageSuffix</variable>
<value type="bool">false</value>
</data>
<data>
<variable>RunConfiguration0-UseTerminal</variable>
<value type="bool">false</value>
</data>
<data>
<variable>RunConfiguration0-UserEnvironmentChanges</variable>
<valuelist type="QVariantList"/>
</data>
<data>
<variable>RunConfiguration0-UserSetName</variable>
<value type="bool">false</value>
</data>
<data>
<variable>RunConfiguration0-UserSetWorkingDirectory</variable>
<value type="bool">true</value>
</data>
<data>
<variable>RunConfiguration0-UserWorkingDirectory</variable>
<value type="QString">/home/andrey/AD/aliendefender</value>
</data>
<data>
<variable>RunConfiguration0-type</variable>
<value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
</data>
<data>
<variable>activeRunConfiguration</variable>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>activebuildconfiguration</variable>
<value type="QString">Debug</value>
</data>
<data>
<variable>buildConfiguration-Debug</variable>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<value key="QtVersionId" type="int">0</value>
<value key="ToolChain" type="int">0</value>
<value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">2</value>
<value key="EditorConfiguration.AutoIndent" type="bool">true</value>
<value key="EditorConfiguration.AutoSpacesForTabs" type="bool">false</value>
<value key="EditorConfiguration.Codec" type="QByteArray">UTF-8</value>
<value key="EditorConfiguration.DoubleIndentBlocks" type="bool">false</value>
<value key="EditorConfiguration.IndentBraces" type="bool">false</value>
<value key="EditorConfiguration.IndentSize" type="int">4</value>
<value key="EditorConfiguration.MouseNavigation" type="bool">true</value>
<value key="EditorConfiguration.PaddingMode" type="int">1</value>
<value key="EditorConfiguration.ScrollWheelZooming" type="bool">true</value>
<value key="EditorConfiguration.SmartBackspace" type="bool">false</value>
<value key="EditorConfiguration.SpacesForTabs" type="bool">true</value>
<value key="EditorConfiguration.TabKeyBehavior" type="int">0</value>
<value key="EditorConfiguration.TabSize" type="int">8</value>
<value key="EditorConfiguration.UseGlobal" type="bool">true</value>
<value key="EditorConfiguration.Utf8BomBehavior" type="int">1</value>
<value key="EditorConfiguration.addFinalNewLine" type="bool">true</value>
<value key="EditorConfiguration.cleanIndentation" type="bool">true</value>
<value key="EditorConfiguration.cleanWhitespace" type="bool">true</value>
<value key="EditorConfiguration.inEntireDocument" type="bool">false</value>
</valuemap>
</data>
<data>
<variable>buildConfiguration-Release</variable>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
<value key="QtVersionId" type="int">0</value>
<value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">0</value>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.DesktopTarget</value>
<value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
<value key="ProjectExplorer.Target.ActiveDeployConfiguration" type="int">0</value>
<value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
<value key="ProjectExplorer.BuildCOnfiguration.ToolChain" type="QString">ProjectExplorer.ToolChain.Mingw:C:/Qt/qtcreator-2.2.0/mingw/bin/gcc.exe.x86-windows-msys-pe-32bit.C:/Qt/qtcreator-2.2.0/pythongdb/gdb-i686-pc-mingw32.exe</value>
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
<value key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary" type="bool">false</value>
<value key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QString"></value>
<value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value>
</valuemap>
<valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Сборка</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
<value key="Qt4ProjectManager.MakeStep.MakeArguments" type="QString">-j2</value>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Build</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Сборка</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
<value key="Qt4ProjectManager.MakeStep.MakeArguments" type="QString">clean</value>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Clean</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value>
<value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
<valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Debug</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Debug</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">C:/Users/Dima/Desktop/aliendefender/ADeditor-build-desktop</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">5</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="QString">ProjectExplorer.ToolChain.Mingw:C:/Qt/qtcreator-2.2.0/mingw/bin/gcc.exe.x86-windows-msys-pe-32bit.C:/Qt/qtcreator-2.2.0/pythongdb/gdb-i686-pc-mingw32.exe</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">false</value>
</valuemap>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
<value key="ProjectExplorer.BuildCOnfiguration.ToolChain" type="QString">ProjectExplorer.ToolChain.Mingw:C:/Qt/qtcreator-2.2.0/mingw/bin/gcc.exe.x86-windows-msys-pe-32bit.C:/Qt/qtcreator-2.2.0/pythongdb/gdb-i686-pc-mingw32.exe</value>
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
<value key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary" type="bool">false</value>
<value key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QString"></value>
<value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value>
</valuemap>
<valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Сборка</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
<value key="Qt4ProjectManager.MakeStep.MakeArguments" type="QString"></value>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Build</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Сборка</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
<value key="Qt4ProjectManager.MakeStep.MakeArguments" type="QString"></value>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Clean</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value>
<value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
<valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Release</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">C:/Users/Dima/Desktop/aliendefender/ADeditor-build-desktop</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">5</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="QString">ProjectExplorer.ToolChain.Mingw:C:/Qt/qtcreator-2.2.0/mingw/bin/gcc.exe.x86-windows-msys-pe-32bit.C:/Qt/qtcreator-2.2.0/pythongdb/gdb-i686-pc-mingw32.exe</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">false</value>
</valuemap>
<value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
<valuemap key="ProjectExplorer.Target.DeployConfiguration.0" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
<value key="ProjectExplorer.BuildStepList.StepsCount" type="int">0</value>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Установка</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Deploy</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">1</value>
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Без установки</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Без установки</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value key="ProjectExplorer.Target.DeployConfigurationCount" type="int">1</value>
<valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Конфигурация запуска Qt4</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">ADeditor</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QString"></value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">ADeditor.pro</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
<valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString">C:/Users/Dima/Desktop/aliendefender/</value>
<value key="RunConfiguration.QmlDebugServerPort" type="uint">3768</value>
<value key="RunConfiguration.UseCppDebugger" type="bool">true</value>
<value key="RunConfiguration.UseQmlDebugger" type="bool">false</value>
</valuemap>
<value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Debug-buildstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-2HAd2azpnh,guid=fd81c6d6610b4c57717ec20c4c90d3de</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=gnome</value>
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-vNW3fv</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
<value type="QString">LOGNAME=andrey</value>
<value type="QString">MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path</value>
<value type="QString">ORBIT_SOCKETDIR=/tmp/orbit-andrey</value>
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1158,unix/buull-eeePC:/tmp/.ICE-unix/1158</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1195</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-vNW3fv/ssh</value>
<value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-Len9P0/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1284559837.801731-819619931</value>
</valuelist>
<valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">/home/andrey/AD/aliendefender/ADeditor/ADeditor.pro</value>
<value type="QString">-spec</value>
<value type="QString">linux-g++</value>
<value type="QString">-r</value>
<value type="QString">CONFIG+=debug</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
<value key="abstractProcess.enabled" type="bool">false</value>
<value key="abstractProcess.workingDirectory" type="QString">/home/andrey/AD/aliendefender/ADeditor</value>
</valuemap>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>buildconfiguration-Debug-buildstep1</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-2HAd2azpnh,guid=fd81c6d6610b4c57717ec20c4c90d3de</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=gnome</value>
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-vNW3fv</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
<value type="QString">LOGNAME=andrey</value>
<value type="QString">MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path</value>
<value type="QString">ORBIT_SOCKETDIR=/tmp/orbit-andrey</value>
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1158,unix/buull-eeePC:/tmp/.ICE-unix/1158</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1195</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-vNW3fv/ssh</value>
<value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-Len9P0/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1284559837.801731-819619931</value>
</valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
<valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">-j2</value>
<value type="QString">-w</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/make</value>
<value key="abstractProcess.enabled" type="bool">true</value>
<value key="abstractProcess.workingDirectory" type="QString">/home/andrey/AD/aliendefender/ADeditor</value>
<valuelist key="makeargs" type="QVariantList">
<value type="QString">-j2</value>
</valuelist>
</valuemap>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QString">{0f364aaa-5a2f-49c5-b7a5-6b296e2f6fd0}</value>
</data>
<data>
<variable>buildconfiguration-Debug-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wExeabp7q4,guid=18815993df3603fdc64a3f6d4c7b5822</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=gnome</value>
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-4vN5uf</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
<value type="QString">LOGNAME=andrey</value>
<value type="QString">MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path</value>
<value type="QString">ORBIT_SOCKETDIR=/tmp/orbit-andrey</value>
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1205,unix/buull-eeePC:/tmp/.ICE-unix/1205</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1239</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-4vN5uf/ssh</value>
<value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-x9URui/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283151906.338331-318132279</value>
</valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
<valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">clean</value>
<value type="QString">-w</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/make</value>
<value key="abstractProcess.enabled" type="bool">true</value>
<value key="abstractProcess.workingDirectory" type="QString">/home/andrey/AD/aliendefender/ADeditor</value>
<value key="cleanConfig" type="bool">true</value>
<valuelist key="makeargs" type="QVariantList">
<value type="QString">clean</value>
</valuelist>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-buildstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-buildstep1</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfigurations</variable>
<valuelist type="QVariantList">
<value type="QString">Debug</value>
<value type="QString">Release</value>
</valuelist>
</data>
<data>
<variable>buildstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
<value key="mkspec" type="QString"></value>
</valuemap>
</data>
<data>
<variable>buildstep1</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
</valuemap>
</data>
<data>
<variable>buildsteps</variable>
<valuelist type="QVariantList">
<value type="QString">trolltech.qt4projectmanager.qmake</value>
<value type="QString">trolltech.qt4projectmanager.make</value>
</valuelist>
</data>
<data>
<variable>cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
<value key="clean" type="bool">true</value>
</valuemap>
</data>
<data>
<variable>cleansteps</variable>
<valuelist type="QVariantList">
<value type="QString">trolltech.qt4projectmanager.make</value>
</valuelist>
</data>
<data>
<variable>defaultFileEncoding</variable>
<value type="QByteArray">UTF-8</value>
</data>
<data>
<variable>project</variable>
<valuemap type="QVariantMap"/>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">9</value>
</data>
</qtcreator>

View File

@@ -28,7 +28,7 @@ MainWindow::MainWindow(QWidget *parent) :
ui->pbImgDel->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/icons/list-remove.png")));
ui->pbTwSplashEdit->setIcon(QIcon::fromTheme("edit", QIcon(":/icons/icons/edit.png")));
ui->pbMapEdit->setIcon(QIcon::fromTheme("edit", QIcon(":/icons/icons/edit.png")));
adloader = new Loader(this);
adloader = new Loader();
adloader->load("data2.xml");
animModel = new AnimationModel(adloader->animations);

View File

@@ -73,7 +73,9 @@ void AD_Graphics::mousePressEvent(QMouseEvent *event)
// scene->clearSelection();
if (event->button() == Qt::LeftButton)
{
if (m_building) emit add_tow((QPointF(event->pos())/cellSize).toPoint());
if (m_building)
emit add_tow((QPointF(event->pos())/cellSize).toPoint(),
event->modifiers().testFlag(Qt::ShiftModifier));
else
{
QList<QGraphicsItem*> list = scene->items(event->pos(), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder);
@@ -126,7 +128,7 @@ void AD_Graphics::timerEvent(QTimerEvent * )
} else selection_tow->hide();
selection_tow->next();
selection_al->next();
if (!core->isWaveEnd())
if (core->isWaveEnd())
scene->update();
}
@@ -185,6 +187,7 @@ void AD_Graphics::alienKilled(int id)
{
if (select_al != 0) if (select_al->id() == id) select_al = 0;
QPainter p(mapimg);
p.setCompositionMode(QPainter::CompositionMode_Plus);
p.translate((core->addata->aliens->curAliens[id].pos+QPointF(0.5,0.5))*cellSize);
p.drawImage(core->addata->bloodrect, *(core->addata->blood));
p.end();

View File

@@ -50,7 +50,7 @@ protected:
signals:
void cancel();
void add_tow(QPoint pnt);
void add_tow(QPoint pnt, bool shift);
void selected_tower_changed(QPoint id);
};

View File

@@ -16,7 +16,7 @@ AD_Core::AD_Core(QObject *parent) :
connect(adtowers,SIGNAL(shot(TowerType)),adsplashes,SLOT(addSplash(TowerType)));
connect(adsplashes,SIGNAL(killAlien(int,int)),this,SLOT(killAlien(int,int)));
waveInProgress = false;
waveEnd = false;
waveEnd = true;
timer = startTimer(40);
}
@@ -26,10 +26,10 @@ void AD_Core::next()
adtowers->update();
adsplashes->update();
addata->aliens->update();
foreach(Player * p, addata->players)
{
if (!addata->aliens->curAliens.contains(p->selectAlienId)) p->selectAlienId = -1;
}
// foreach(Player * p, addata->players)
// {
// if (!addata->aliens->curAliens.contains(p->selectAlienId)) p->selectAlienId = -1;
// }
waveProcessing();
step++;
}
@@ -43,26 +43,31 @@ void AD_Core::timerEvent(QTimerEvent * )
void AD_Core::nextWave()
{
if (waveInProgress) return;
if (!waveEnd && waveInProgress)
{
qDebug("wave in progress");
return;
}
if (addata->curWave >= addata->waves.size()) {
qDebug("level finished");
waveEnd = false;
return;
}
//wavetime = addata->waves.at(addata->curWave).timeout;
qDebug() << tr("Next wave %1").arg(addata->curWave+1);
wavetime = 0;
addata->curWave++;
waveInProgress = true;
waveEnd = false;
qDebug() << tr("Next wave %1").arg(addata->curWave+1);
}
void AD_Core::waveProcessing()
{
/// FIXME : resolve problem with prise for finish wave, it is calculated wrong!
if (addata->aliens->curAliens.isEmpty() && waveEnd)
if (addata->aliens->curAliens.isEmpty() && !waveInProgress && !waveEnd)
{
if(addata->curWave > 0) addata->players.at(0)->money += addata->waves.at(addata->curWave-1).prise;
waveEnd = false;
waveEnd = true;
}
if (!waveInProgress) return;
if (wavetime <= 0) {
@@ -71,11 +76,9 @@ void AD_Core::waveProcessing()
addata->aliens->addAlien(addata->waves.at(addata->curWave).types.at(i));
addata->waves[addata->curWave].counts[i]--;
wavetime = addata->waves.at(addata->curWave).timeout;
waveEnd = true;
return;
}
}
addata->curWave++;
waveInProgress = false;
} else {
wavetime--;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by Qt Creator 2.2.84, 2011-08-28T15:53:16. -->
<!-- Written by Qt Creator 2.2.84, 2011-09-10T23:09:01. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -87,7 +87,7 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">

View File

@@ -83,7 +83,7 @@
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">D:/Dropbox/My Dropbox/projects/aliendefender-build-desktop</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">7</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">5</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="QString">ProjectExplorer.ToolChain.Mingw:D:/Qt/2010.04/mingw/bin/g++.exe.x86-windows-msys-pe-32bit.C:/Qt/qtcreator-2.2.0/pythongdb/gdb-i686-pc-mingw32.exe</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">false</value>
</valuemap>
@@ -175,7 +175,7 @@
</data>
<data>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QString">{00000000-0000-0000-0000-000000000000}</value>
<value type="QString">{0f364aaa-5a2f-49c5-b7a5-6b296e2f6fd0}</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>

View File

@@ -43,6 +43,7 @@ struct srcAlienType
struct AlienType
{
int id; // uses for QHash
int wave;
srcAlienType * src;
QPointF pos;
float angle; // -180 .. 180

View File

@@ -1,12 +1,12 @@
<!DOCTYPE data>
<ADdata>
<aliens>
<alien speed="0.05" imageType="1" prise="1" id="1" score="12" name="Monstr 1" health="15"/>
<alien speed="0.05" imageType="1" prise="2" id="1" score="12" name="Monstr 1" health="15"/>
<alien speed="0.1" imageType="1" prise="5" id="2" score="99" name="monstr 2" health="30"/>
<alien speed="0.05" imageType="1" prise="15" id="3" score="99" name="monstr 3" health="100"/>
<alien speed="0.02" imageType="1" prise="100" id="4" score="10" name="test" health="1000"/>
<alien speed="0.1" imageType="1" prise="2" id="2" score="99" name="monstr 2" health="30"/>
<alien speed="0.05" imageType="1" prise="5" id="3" score="99" name="monstr 3" health="100"/>
<alien speed="0.15" imageType="1" prise="5" id="5" score="99" name="super monstr" health="200" armor="10"/>
<alien speed="0.05" imageType="1" prise="100" id="6" score="10" name="test" health="1000" regeneration="20"/>
<alien speed="0.15" imageType="1" prise="25" armor="9" id="5" score="99" name="super monstr" health="400"/>
<alien regeneration="20" speed="0.07" imageType="1" prise="100" id="6" score="10" name="test" health="4000"/>
</aliens>
<maps>
<map width="16" imageType="10" height="16" id="1" data="AAAERHicY2BgEGAA4v///0hQgmFmAGlGcjCxZuCTHzUDuxkMDOr85JrBwKC0A8kMJlwYagYOeYgZ+NXgNwMtPEbNINIMIsynOO8DAG0r1Q0=" name="My Map" maxPlayers="2"/>
@@ -14,47 +14,47 @@
<map width="25" imageType="20" height="11" id="3" data="AAAEtHicY2BgkGRgYOD+//+PBDpmYFDnxy4OUQ+kGQnhUfWj6kfVj6onRj1mOaO0A5s4ADeqzbA=" name="map" maxPlayers="1"/>
</maps>
<waves>
<wave prise="5" timeout="30" id="1"/>
<wave prise="7" timeout="30" id="2"/>
<wave prise="10" timeout="30" id="3"/>
<wave prise="20" timeout="30" id="4"/>
<wave prise="20" timeout="10" id="5"/>
<wave prise="20" timeout="20" id="6"/>
<wave prise="20" timeout="5" id="7"/>
<wave prise="20" timeout="50" id="8"/>
<wave prise="20" timeout="10" id="9"/>
<wave prise="20" timeout="10" id="10"/>
<wave prise="20" timeout="10" id="11"/>
<wave prise="20" timeout="10" id="12"/>
<wave prise="20" timeout="10" id="13"/>
<wave prise="20" timeout="10" id="14"/>
<wave prise="20" timeout="10" id="16"/>
<wave prise="20" timeout="10" id="17"/>
<wave prise="20" timeout="10" id="18"/>
<wave prise="20" timeout="10" id="19"/>
<wave prise="20" timeout="10" id="20"/>
<wave prise="20" timeout="10" id="21"/>
<wave prise="20" timeout="10" id="22"/>
<wave prise="20" timeout="10" id="23"/>
<wave prise="20" timeout="10" id="24"/>
<wave prise="20" timeout="10" id="25"/>
<wave prise="20" timeout="10" id="26"/>
<wave prise="20" timeout="10" id="27"/>
<wave prise="20" timeout="3" id="28"/>
<wave prise="20" timeout="5" id="29"/>
<wave prise="20" timeout="1" id="30"/>
<wave prise="0" timeout="30" id="1"/>
<wave prise="0" timeout="30" id="2"/>
<wave prise="0" timeout="20" id="3"/>
<wave prise="0" timeout="30" id="4"/>
<wave prise="0" timeout="10" id="5"/>
<wave prise="0" timeout="20" id="6"/>
<wave prise="0" timeout="5" id="7"/>
<wave prise="0" timeout="20" id="8"/>
<wave prise="0" timeout="10" id="9"/>
<wave prise="0" timeout="10" id="10"/>
<wave prise="0" timeout="10" id="11"/>
<wave prise="0" timeout="10" id="12"/>
<wave prise="0" timeout="10" id="13"/>
<wave prise="0" timeout="10" id="14"/>
<wave prise="0" timeout="10" id="16"/>
<wave prise="0" timeout="10" id="17"/>
<wave prise="0" timeout="10" id="18"/>
<wave prise="0" timeout="10" id="19"/>
<wave prise="0" timeout="10" id="20"/>
<wave prise="0" timeout="10" id="21"/>
<wave prise="0" timeout="10" id="22"/>
<wave prise="0" timeout="10" id="23"/>
<wave prise="0" timeout="10" id="24"/>
<wave prise="0" timeout="10" id="25"/>
<wave prise="0" timeout="10" id="26"/>
<wave prise="0" timeout="10" id="27"/>
<wave prise="0" timeout="3" id="28"/>
<wave prise="0" timeout="5" id="29"/>
<wave prise="0" timeout="1" id="30"/>
</waves>
<levels>
<level map="3" id="1" score="22896048" name="First Level"/>
<level map="3" id="1" score="270836024" name="First Level"/>
</levels>
<waveParts>
<wavePart alien="1" count="1" wave="1"/>
<wavePart alien="1" count="2" wave="2"/>
<wavePart alien="1" count="3" wave="3"/>
<wavePart alien="2" count="3" wave="4"/>
<wavePart alien="2" count="2" wave="4"/>
<wavePart alien="1" count="5" wave="5"/>
<wavePart alien="2" count="5" wave="6"/>
<wavePart alien="2" count="10" wave="7"/>
<wavePart alien="2" count="4" wave="6"/>
<wavePart alien="2" count="6" wave="7"/>
<wavePart alien="1" count="30" wave="8"/>
<wavePart alien="4" count="1" wave="9"/>
<wavePart alien="3" count="3" wave="10"/>
@@ -63,7 +63,6 @@
<wavePart alien="3" count="10" wave="13"/>
<wavePart alien="2" count="10" wave="13"/>
<wavePart alien="4" count="3" wave="14"/>
<wavePart alien="3" count="30" wave="15"/>
<wavePart alien="3" count="50" wave="16"/>
<wavePart alien="4" count="5" wave="17"/>
<wavePart alien="4" count="10" wave="18"/>
@@ -99,7 +98,6 @@
<waveOnLevel wave="12" level="1"/>
<waveOnLevel wave="13" level="1"/>
<waveOnLevel wave="14" level="1"/>
<waveOnLevel wave="15" level="1"/>
<waveOnLevel wave="16" level="1"/>
<waveOnLevel wave="17" level="1"/>
<waveOnLevel wave="18" level="1"/>
@@ -163,9 +161,9 @@
<towerOnLevel tower="6" level="1"/>
</towersOnLevels>
<morphs>
<morph from="2" expRequired="0" to="4" cost="10"/>
<morph from="4" expRequired="0.5" to="5" cost="40"/>
<morph from="3" expRequired="10" to="1" cost="500"/>
<morph from="2" expRequired="1" to="4" cost="10"/>
<morph from="3" expRequired="15" to="1" cost="500"/>
<morph from="4" expRequired="3" to="5" cost="40"/>
<morph from="5" expRequired="10" to="3" cost="150"/>
</morphs>
<animations>

View File

@@ -8,14 +8,18 @@ Form::Form(QWidget *parent) :
{
buildTowerId = -1;
ui->setupUi(this);
ui->pbSell->hide();
graphics = new AD_Graphics(&core);
ui->widget->layout()->addWidget(graphics);
tbf = new TouchButtFrame();
tbf->setOrientation(Qt::Vertical);
morphtbf = new TouchButtFrame();
morphtbf->setOrientation(Qt::Vertical);
tbf->addButton(tr("delete"));
foreach (srcTowerType i, core.addata->players.at(0)->srcTowers)
//tbf->addButton(tr("delete"));
for(int j=0; j<core.addata->players.at(0)->srcTowers.size(); ++j)
{
srcTowerType i = core.addata->players.at(0)->srcTowers.at(j);
if (i.isRoot)
{
QPixmap pix(32,32);
pix.fill(Qt::transparent);
@@ -27,20 +31,17 @@ Form::Form(QWidget *parent) :
p.end();
cursors.append(pix);
tbf->addButton(i.name+tr("\n %1 $").arg(i.cost));
tbf->Button(cursors.size())->setIcon(QIcon(pix));
//QPushButton * butt = new QPushButton(i.name);
//towerButtons << butt;
//butt->setAutoDefault(true);
//butt->setAutoExclusive(true);
//butt->setCheckable(true);
tbf->Button(cursors.size()-1)->setIcon(QIcon(pix));
buildTowers.append(j);
}
}
ui->gbTowers->layout()->addWidget(tbf);
ui->verticalLayout_2->addWidget(morphtbf);
connect(tbf,SIGNAL(click(int)),this,SLOT(towerBuild(int)));
connect(tbf,SIGNAL(click(int)),tbf,SLOT(set_green(int)));
connect(morphtbf,SIGNAL(click(int)),this,SLOT(towerMorph(int)));
connect(graphics,SIGNAL(add_tow(QPoint)),this,SLOT(add_tow(QPoint)));
// connect(core.adtowers,SIGNAL(tower_killed(QPoint)),graphics,SLOT(towerKilled(QPoint)));
connect(graphics,SIGNAL(add_tow(QPoint,bool)),this,SLOT(add_tow(QPoint,bool)));
// connect(core.adtowers,SIGNAL(tower_killed(QPoint)),graphics,SLOT(towerKilled(QPoint)));
connect(core.addata->aliens,SIGNAL(alien_killed(int)),graphics,SLOT(alienKilled(int)));
connect(graphics,SIGNAL(cancel()),this,SLOT(cancel()));
connect(graphics,SIGNAL(selected_tower_changed(QPoint)),this,SLOT(selectedTowerChanged(QPoint)));
@@ -62,25 +63,23 @@ void Form::on_pbNextWave_clicked()
void Form::towerBuild(int index)
{
buildTowerId = index-1;
if (index == 0) buildTowerId = -9;
buildTowerId = buildTowers.at(index);
graphics->setBuilding(true);
if (index != 0)
setCursor(QCursor(cursors.at(index-1)));
else setCursor(Qt::ForbiddenCursor);
setCursor(QCursor(cursors.at(index)));
}
void Form::add_tow(QPoint pnt)
void Form::add_tow(QPoint pnt, bool shift)
{
if (buildTowerId == -1) return;
if (buildTowerId == -9)
{
graphics->towerKilled(pnt);
core.adtowers->delTower(pnt);
return;
}
// if (buildTowerId == -9)
// {
// graphics->towerKilled(pnt);
// core.adtowers->delTower(pnt);
// return;
// }
core.adtowers->addTower(0,buildTowerId,pnt);
if (!shift) cancel();
}
@@ -94,9 +93,9 @@ void Form::cancel()
void Form::timerEvent(QTimerEvent *)
{
for (int i=1; i<tbf->buttCount(); ++i)
for (int i=0; i<tbf->buttCount(); ++i)
{
bool b = core.adtowers->canBuild(i-1,0);
bool b = core.adtowers->canBuild(buildTowers.at(i),0);
tbf->Button(i)->setEnabled(b);
if (b) tbf->set_green(i);
else tbf->set_red(i);
@@ -111,6 +110,8 @@ void Form::timerEvent(QTimerEvent *)
twstr += tr("\n player %1\n exp %2").arg(tw.PlayerId).arg(tw.experience);
twstr += tr("\n reload %1/%2\n alien %3").arg(tw.reload).arg(tw.src->reload).arg(tw.aim);
twstr += tr("\n cost %1\n radius %2").arg(tw.src->cost).arg(tw.src->radius-1);
if (!tw.src->triggers.isEmpty())
twstr += tr("\n damage %1").arg(tw.src->triggers.at(0).damage);
for (int i=0; i<tw.src->morphs.size(); ++i)
{
bool m = core.adtowers->canMorph(tw.pos,i);
@@ -131,6 +132,7 @@ void Form::timerEvent(QTimerEvent *)
alstr += tr("\n prise %1").arg(al.src->prise);
}
ui->lbInfo->setText(tr(" money %1 \n missing %2").arg(core.addata->players.at(0)->money).arg(core.addata->aliens->missingAliens())
+ tr("\n wave %1").arg(core.addata->curWave+1)
+ tr("\n aliens %1").arg(core.addata->aliens->curAliens.size())
+ tr("\n towers %1").arg(core.addata->curTowers.size())
+ tr("\n splashes %1").arg(core.addata->curSplashes.size())
@@ -148,7 +150,12 @@ void Form::on_sbSpeed_valueChanged(double val)
void Form::selectedTowerChanged(QPoint id)
{
morphtbf->deleteButtons();
if (id.isNull()) return;
if (id.isNull())
{
ui->pbSell->hide();
return;
}
ui->pbSell->show();
srcTowerType * t = core.addata->curTowers[id].src;
piForeachCA(i, t->morphs)
morphtbf->addButton(i.morph->name+tr("\n %1 $, %2 exp").arg(i.cost).arg(i.expRequired));
@@ -163,3 +170,15 @@ void Form::towerMorph(int index)
graphics->selectTower(core.addata->curTowers[id].item);
selectedTowerChanged(graphics->selectedTower());
}
void Form::on_pbSell_clicked()
{
QPoint pnt = graphics->selectedTower();
if (!pnt.isNull())
{
graphics->towerKilled(pnt);
core.adtowers->delTower(pnt);
return;
}
}

5
form.h
View File

@@ -23,12 +23,14 @@ private slots:
void on_pbNextWave_clicked();
void towerBuild(int index);
void towerMorph(int index);
void add_tow(QPoint pnt);
void add_tow(QPoint pnt, bool shift);
void selectedTowerChanged(QPoint id);
void cancel();
void on_sbSpeed_valueChanged(double arg1);
void on_pbSell_clicked();
private:
void timerEvent(QTimerEvent *);
Ui::Form *ui;
@@ -37,6 +39,7 @@ private:
AD_Graphics * graphics;
TouchButtFrame * morphtbf, * tbf;
QList<QPixmap> cursors;
QList<int> buildTowers;
//signals:
// void tower_killed();

25
form.ui
View File

@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>700</width>
<width>796</width>
<height>448</height>
</rect>
</property>
@@ -85,6 +85,29 @@
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pbSell">
<property name="text">
<string>Sell</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">

View File

@@ -4,7 +4,7 @@ Game_Data::Game_Data(Map *mapp, QObject *parent) :
QObject(parent)
{
map = mapp;
curWave = 0;
curWave = -1;
// alienSelect.images = towerSelect.images = 0;
aliens = new Aliens(map);
}

View File

@@ -421,6 +421,12 @@ Game_Data * Loader::loadlevel(int id)
sst.compositionMode = tbs.compositionMode;
sst.keepOnAlien = tbs.keepOnAlien;
stt.splashes.append(sst);
stt.isRoot=true;
for (QMultiHash<int,tbMorph>::iterator m = morphs.begin();
m != morphs.end(); ++m)
{
if (tbt.id == (*m).toId) stt.isRoot=false;
}
int recursiveCheck = 1;
fillTowerChains(&animIds,&chlist,&trigIds,&stt,
tbt.splashId,0,&recursiveCheck);
@@ -440,10 +446,13 @@ Game_Data * Loader::loadlevel(int id)
break;
}
}
if (contain)
{
m.cost = tmh.cost;
m.expRequired = tmh.expRequired;
m.morph = (srcTowerType*)tollist.indexOf(j);
if (contain) morph_indexes[i].append(m);
morph_indexes[i].append(m);
}
}
for (int k=0; k<map->maxPlayers(); ++k)
gd->players[k]->srcTowers.append(stt);
@@ -464,6 +473,7 @@ Game_Data * Loader::loadlevel(int id)
QString morphtree;
foreach (srcTowerType i, gd->players[0]->srcTowers)
{
if (i.isRoot)
printMorphs(&i,morphtree,"");
}
qDebug() << morphtree + "\n";

View File

@@ -4,6 +4,6 @@ Player::Player(int Id, QObject *parent) :
QObject(parent)
{
playerId = Id;
money = 50;
money = 100;
selectAlienId = -1;
}

View File

@@ -177,7 +177,10 @@ void Splashes::update()
delSplash(*j);
for (QHash<int,DeadAlienIndex>::iterator j = dead.begin();
j != dead.end(); ++j)
{
gameData->curTowers[j->tower].experience += gameData->curTowers[j->tower].src->expByKill;
emit killAlien(j->player,j->id);
}
dead.clear();
}
@@ -212,7 +215,8 @@ void Splashes::doTriggerOnTimer(QHash<int, SplashType>::iterator
if (gameData->aliens->curAliens.contains(spl->AlienId))
{
hh = gameData->aliens->curAliens[spl->AlienId].health -= dmg;
if (hh <= 0) dead.insert(spl->AlienId, DeadAlienIndex(spl->AlienId, spl->PlayerId));
if (hh <= 0) dead.insert(spl->AlienId, DeadAlienIndex(spl->AlienId, spl->PlayerId, spl->towerId));
else gameData->curTowers[spl->towerId].experience += hh * gameData->curTowers[spl->towerId].src->expByDamage;
}
} else {
for (QHash<int, AlienType>::iterator
@@ -222,7 +226,8 @@ void Splashes::doTriggerOnTimer(QHash<int, SplashType>::iterator
if (distance2(spl->pos, a->pos) < rad*rad)
{
hh = a->health -= dmg;
if (hh <= 0) dead.insert(a->id, DeadAlienIndex(a->id, spl->PlayerId));
if (hh <= 0) dead.insert(a->id, DeadAlienIndex(a->id, spl->PlayerId, spl->towerId));
else gameData->curTowers[spl->towerId].experience += hh * gameData->curTowers[spl->towerId].src->expByDamage;
}
}
}
@@ -289,7 +294,8 @@ void Splashes::doTriggerOnDest(QHash<int, SplashType>::iterator
if (!badAl)
{
hh = gameData->aliens->curAliens[spl->AlienId].health -= dmg;
if (hh <= 0) dead.insert(spl->AlienId, DeadAlienIndex(spl->AlienId, spl->PlayerId));
if (hh <= 0) dead.insert(spl->AlienId, DeadAlienIndex(spl->AlienId, spl->PlayerId, spl->towerId));
else gameData->curTowers[spl->towerId].experience += hh * gameData->curTowers[spl->towerId].src->expByDamage;
}
} else {
for (QHash<int, AlienType>::iterator
@@ -299,7 +305,8 @@ void Splashes::doTriggerOnDest(QHash<int, SplashType>::iterator
if (distance2(spl->pos, i->pos) < rad*rad)
{
hh = i->health -= dmg;
if (hh <= 0) dead.insert(i->id, DeadAlienIndex(i->id, spl->PlayerId));
if (hh <= 0) dead.insert(i->id, DeadAlienIndex(i->id, spl->PlayerId, spl->towerId));
else gameData->curTowers[spl->towerId].experience += hh * gameData->curTowers[spl->towerId].src->expByDamage;
}
}
}
@@ -326,7 +333,8 @@ void Splashes::doTriggerOnAlien(QHash<int, SplashType>::iterator spl, QHash<int,
if (distance2(spl->pos, i->pos) < rad*rad)
{
hh = i->health -= dmg;
if (hh <= 0) dead.insert(i->id, DeadAlienIndex(i->id, spl->PlayerId));
if (hh <= 0) dead.insert(i->id, DeadAlienIndex(i->id, spl->PlayerId, spl->towerId));
else gameData->curTowers[spl->towerId].experience += hh * gameData->curTowers[spl->towerId].src->expByDamage;
if (t.src->count > 0 && t.src->childId > 0)
{
if (!t.triggerAliens.contains(i->id))

View File

@@ -28,9 +28,10 @@ private:
int nextId;
struct DeadAlienIndex
{
DeadAlienIndex(int i, int p) {id = i; player = p;}
DeadAlienIndex(int i, int p, QPoint t) {id = i; player = p; tower = t;}
int player;
int id;
QPoint tower;
};
QHash <int, DeadAlienIndex> dead;

View File

@@ -19,7 +19,7 @@ class TouchButtFrame : public QFrame
Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
public:
TouchButtFrame(QWidget * parent = 0,
QColor red = Qt::darkRed, QColor green = Qt::green, QColor white = Qt::white, QColor push = Qt::yellow,
QColor red = Qt::gray, QColor green = Qt::green, QColor white = Qt::white, QColor push = Qt::yellow,
Qt::Orientation orientation = Qt::Horizontal);
void setButtons(const QStringList &captions);
QStringList buttons();

View File

@@ -5,21 +5,26 @@
class Towers : public QObject
{
Q_OBJECT
Q_OBJECT
public:
explicit Towers(Game_Data * gd, QObject *parent = 0);
bool addTower(int playerId, int srcId, QPoint pos);
void delTower(QPoint pos);
bool morphTower(QPoint id, int index);
bool canBuild(int id, int player) {return gameData->players[player]->money >= gameData->players[player]->srcTowers[id].cost;}
bool canMorph(QPoint id, int index) {return gameData->players[gameData->curTowers[id].PlayerId]->money >= gameData->curTowers[id].src->morphs[index].cost &&
gameData->curTowers[id].experience >= gameData->curTowers[id].src->morphs[index].expRequired;}
bool canMorph(QPoint id, int index)
{
TowerType * t = &(gameData->curTowers[id]);
return gameData->players[t->PlayerId]->money >= t->src->morphs[index].cost &&
t->experience >= t->src->morphs[index].expRequired &&
!t->isBilding;
}
void update();
void setScene(QGraphicsScene * scene_) {scene = scene_;}
signals:
void shot(const TowerType &tow);
// void tower_killed(QPoint id);
// void tower_killed(QPoint id);
public slots: