added AD editor (not work yet, just for test)
This commit is contained in:
BIN
ADeditor/ADeditor
Executable file
BIN
ADeditor/ADeditor
Executable file
Binary file not shown.
15
ADeditor/ADeditor.pro
Normal file
15
ADeditor/ADeditor.pro
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# -------------------------------------------------
|
||||||
|
# Project created by QtCreator 2010-08-22T13:42:02
|
||||||
|
# -------------------------------------------------
|
||||||
|
QT += xml \
|
||||||
|
xmlpatterns
|
||||||
|
TARGET = ADeditor
|
||||||
|
TEMPLATE = app
|
||||||
|
SOURCES += main.cpp \
|
||||||
|
mainwindow.cpp \
|
||||||
|
../loader.cpp \
|
||||||
|
alienmodel.cpp
|
||||||
|
HEADERS += mainwindow.h \
|
||||||
|
../loader.h \
|
||||||
|
alienmodel.h
|
||||||
|
FORMS += mainwindow.ui
|
||||||
283
ADeditor/ADeditor.pro.user
Normal file
283
ADeditor/ADeditor.pro.user
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
<!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">false</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>RunConfiguration0-UserWorkingDirectory</variable>
|
||||||
|
<value type="QString"></value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>RunConfiguration0-type</variable>
|
||||||
|
<value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>activeRunConfiguration</variable>
|
||||||
|
<value type="int">0</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>activebuildconfiguration</variable>
|
||||||
|
<value type="QString">Debug</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>buildConfiguration-Debug</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>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>buildConfiguration-Release</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>
|
||||||
|
</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-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd</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-7vXnOW</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/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124</value>
|
||||||
|
<value type="QString">SHELL=/bin/bash</value>
|
||||||
|
<value type="QString">SPEECHD_PORT=6561</value>
|
||||||
|
<value type="QString">SSH_AGENT_PID=1158</value>
|
||||||
|
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh</value>
|
||||||
|
<value type="QString">USER=andrey</value>
|
||||||
|
<value type="QString">USERNAME=andrey</value>
|
||||||
|
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/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-1281338556.676663-803309736</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>
|
||||||
|
</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-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd</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-7vXnOW</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/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124</value>
|
||||||
|
<value type="QString">SHELL=/bin/bash</value>
|
||||||
|
<value type="QString">SPEECHD_PORT=6561</value>
|
||||||
|
<value type="QString">SSH_AGENT_PID=1158</value>
|
||||||
|
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh</value>
|
||||||
|
<value type="QString">USER=andrey</value>
|
||||||
|
<value type="QString">USERNAME=andrey</value>
|
||||||
|
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/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-1281338556.676663-803309736</value>
|
||||||
|
</valuelist>
|
||||||
|
<value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
|
||||||
|
<valuelist key="abstractProcess.arguments" type="QVariantList">
|
||||||
|
<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>
|
||||||
|
</valuemap>
|
||||||
|
</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-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd</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-7vXnOW</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/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124</value>
|
||||||
|
<value type="QString">SHELL=/bin/bash</value>
|
||||||
|
<value type="QString">SPEECHD_PORT=6561</value>
|
||||||
|
<value type="QString">SSH_AGENT_PID=1158</value>
|
||||||
|
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh</value>
|
||||||
|
<value type="QString">USER=andrey</value>
|
||||||
|
<value type="QString">USERNAME=andrey</value>
|
||||||
|
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/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-1281338556.676663-803309736</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">System</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>project</variable>
|
||||||
|
<valuemap type="QVariantMap"/>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
||||||
279
ADeditor/Makefile
Normal file
279
ADeditor/Makefile
Normal file
@@ -0,0 +1,279 @@
|
|||||||
|
#############################################################################
|
||||||
|
# Makefile for building: ADeditor
|
||||||
|
# Generated by qmake (2.01a) (Qt 4.6.2) on: ?? ???. 24 15:25:17 2010
|
||||||
|
# Project: ADeditor.pro
|
||||||
|
# Template: app
|
||||||
|
# Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile ADeditor.pro
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
####### Compiler, tools and options
|
||||||
|
|
||||||
|
CC = gcc
|
||||||
|
CXX = g++
|
||||||
|
DEFINES = -DQT_XMLPATTERNS_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
|
||||||
|
CFLAGS = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
|
||||||
|
CXXFLAGS = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
|
||||||
|
INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4 -I. -I.
|
||||||
|
LINK = g++
|
||||||
|
LFLAGS =
|
||||||
|
LIBS = $(SUBLIBS) -L/usr/lib -lQtXmlPatterns -lQtXml -lQtGui -lQtCore -lpthread
|
||||||
|
AR = ar cqs
|
||||||
|
RANLIB =
|
||||||
|
QMAKE = /usr/bin/qmake-qt4
|
||||||
|
TAR = tar -cf
|
||||||
|
COMPRESS = gzip -9f
|
||||||
|
COPY = cp -f
|
||||||
|
SED = sed
|
||||||
|
COPY_FILE = $(COPY)
|
||||||
|
COPY_DIR = $(COPY) -r
|
||||||
|
STRIP = strip
|
||||||
|
INSTALL_FILE = install -m 644 -p
|
||||||
|
INSTALL_DIR = $(COPY_DIR)
|
||||||
|
INSTALL_PROGRAM = install -m 755 -p
|
||||||
|
DEL_FILE = rm -f
|
||||||
|
SYMLINK = ln -f -s
|
||||||
|
DEL_DIR = rmdir
|
||||||
|
MOVE = mv -f
|
||||||
|
CHK_DIR_EXISTS= test -d
|
||||||
|
MKDIR = mkdir -p
|
||||||
|
|
||||||
|
####### Output directory
|
||||||
|
|
||||||
|
OBJECTS_DIR = ./
|
||||||
|
|
||||||
|
####### Files
|
||||||
|
|
||||||
|
SOURCES = main.cpp \
|
||||||
|
mainwindow.cpp \
|
||||||
|
../loader.cpp \
|
||||||
|
alienmodel.cpp moc_mainwindow.cpp \
|
||||||
|
moc_loader.cpp \
|
||||||
|
moc_alienmodel.cpp
|
||||||
|
OBJECTS = main.o \
|
||||||
|
mainwindow.o \
|
||||||
|
loader.o \
|
||||||
|
alienmodel.o \
|
||||||
|
moc_mainwindow.o \
|
||||||
|
moc_loader.o \
|
||||||
|
moc_alienmodel.o
|
||||||
|
DIST = /usr/share/qt4/mkspecs/common/g++.conf \
|
||||||
|
/usr/share/qt4/mkspecs/common/unix.conf \
|
||||||
|
/usr/share/qt4/mkspecs/common/linux.conf \
|
||||||
|
/usr/share/qt4/mkspecs/qconfig.pri \
|
||||||
|
/usr/share/qt4/mkspecs/features/qt_functions.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/qt_config.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/default_pre.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/debug.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/default_post.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/warn_on.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/qt.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/unix/thread.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/moc.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/resources.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/uic.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/yacc.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/lex.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/include_source_dir.prf \
|
||||||
|
ADeditor.pro
|
||||||
|
QMAKE_TARGET = ADeditor
|
||||||
|
DESTDIR =
|
||||||
|
TARGET = ADeditor
|
||||||
|
|
||||||
|
first: all
|
||||||
|
####### Implicit rules
|
||||||
|
|
||||||
|
.SUFFIXES: .o .c .cpp .cc .cxx .C
|
||||||
|
|
||||||
|
.cpp.o:
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
|
||||||
|
|
||||||
|
.cc.o:
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
|
||||||
|
|
||||||
|
.cxx.o:
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
|
||||||
|
|
||||||
|
.C.o:
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
$(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
|
||||||
|
|
||||||
|
####### Build rules
|
||||||
|
|
||||||
|
all: Makefile $(TARGET)
|
||||||
|
|
||||||
|
$(TARGET): ui_mainwindow.h $(OBJECTS)
|
||||||
|
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
|
||||||
|
|
||||||
|
Makefile: ADeditor.pro /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
|
||||||
|
/usr/share/qt4/mkspecs/common/unix.conf \
|
||||||
|
/usr/share/qt4/mkspecs/common/linux.conf \
|
||||||
|
/usr/share/qt4/mkspecs/qconfig.pri \
|
||||||
|
/usr/share/qt4/mkspecs/features/qt_functions.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/qt_config.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/default_pre.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/debug.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/default_post.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/warn_on.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/qt.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/unix/thread.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/moc.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/resources.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/uic.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/yacc.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/lex.prf \
|
||||||
|
/usr/share/qt4/mkspecs/features/include_source_dir.prf \
|
||||||
|
/usr/lib/libQtXmlPatterns.prl \
|
||||||
|
/usr/lib/libQtXml.prl \
|
||||||
|
/usr/lib/libQtGui.prl \
|
||||||
|
/usr/lib/libQtCore.prl
|
||||||
|
$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile ADeditor.pro
|
||||||
|
/usr/share/qt4/mkspecs/common/g++.conf:
|
||||||
|
/usr/share/qt4/mkspecs/common/unix.conf:
|
||||||
|
/usr/share/qt4/mkspecs/common/linux.conf:
|
||||||
|
/usr/share/qt4/mkspecs/qconfig.pri:
|
||||||
|
/usr/share/qt4/mkspecs/features/qt_functions.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/qt_config.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/default_pre.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/debug.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/default_post.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/warn_on.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/qt.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/unix/thread.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/moc.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/resources.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/uic.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/yacc.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/lex.prf:
|
||||||
|
/usr/share/qt4/mkspecs/features/include_source_dir.prf:
|
||||||
|
/usr/lib/libQtXmlPatterns.prl:
|
||||||
|
/usr/lib/libQtXml.prl:
|
||||||
|
/usr/lib/libQtGui.prl:
|
||||||
|
/usr/lib/libQtCore.prl:
|
||||||
|
qmake: FORCE
|
||||||
|
@$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile ADeditor.pro
|
||||||
|
|
||||||
|
dist:
|
||||||
|
@$(CHK_DIR_EXISTS) .tmp/ADeditor1.0.0 || $(MKDIR) .tmp/ADeditor1.0.0
|
||||||
|
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/ADeditor1.0.0/ && $(COPY_FILE) --parents mainwindow.h ../loader.h alienmodel.h .tmp/ADeditor1.0.0/ && $(COPY_FILE) --parents main.cpp mainwindow.cpp ../loader.cpp alienmodel.cpp .tmp/ADeditor1.0.0/ && $(COPY_FILE) --parents mainwindow.ui .tmp/ADeditor1.0.0/ && (cd `dirname .tmp/ADeditor1.0.0` && $(TAR) ADeditor1.0.0.tar ADeditor1.0.0 && $(COMPRESS) ADeditor1.0.0.tar) && $(MOVE) `dirname .tmp/ADeditor1.0.0`/ADeditor1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/ADeditor1.0.0
|
||||||
|
|
||||||
|
|
||||||
|
clean:compiler_clean
|
||||||
|
-$(DEL_FILE) $(OBJECTS)
|
||||||
|
-$(DEL_FILE) *~ core *.core
|
||||||
|
|
||||||
|
|
||||||
|
####### Sub-libraries
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
-$(DEL_FILE) $(TARGET)
|
||||||
|
-$(DEL_FILE) Makefile
|
||||||
|
|
||||||
|
|
||||||
|
mocclean: compiler_moc_header_clean compiler_moc_source_clean
|
||||||
|
|
||||||
|
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
|
||||||
|
|
||||||
|
compiler_moc_header_make_all: moc_mainwindow.cpp moc_loader.cpp moc_alienmodel.cpp
|
||||||
|
compiler_moc_header_clean:
|
||||||
|
-$(DEL_FILE) moc_mainwindow.cpp moc_loader.cpp moc_alienmodel.cpp
|
||||||
|
moc_mainwindow.cpp: ../loader.h \
|
||||||
|
../game_data.h \
|
||||||
|
../player.h \
|
||||||
|
../base_types.h \
|
||||||
|
../map.h \
|
||||||
|
mainwindow.h
|
||||||
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) mainwindow.h -o moc_mainwindow.cpp
|
||||||
|
|
||||||
|
moc_loader.cpp: ../game_data.h \
|
||||||
|
../player.h \
|
||||||
|
../base_types.h \
|
||||||
|
../map.h \
|
||||||
|
../loader.h
|
||||||
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) ../loader.h -o moc_loader.cpp
|
||||||
|
|
||||||
|
moc_alienmodel.cpp: ../loader.h \
|
||||||
|
../game_data.h \
|
||||||
|
../player.h \
|
||||||
|
../base_types.h \
|
||||||
|
../map.h \
|
||||||
|
alienmodel.h
|
||||||
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) alienmodel.h -o moc_alienmodel.cpp
|
||||||
|
|
||||||
|
compiler_rcc_make_all:
|
||||||
|
compiler_rcc_clean:
|
||||||
|
compiler_image_collection_make_all: qmake_image_collection.cpp
|
||||||
|
compiler_image_collection_clean:
|
||||||
|
-$(DEL_FILE) qmake_image_collection.cpp
|
||||||
|
compiler_moc_source_make_all:
|
||||||
|
compiler_moc_source_clean:
|
||||||
|
compiler_uic_make_all: ui_mainwindow.h
|
||||||
|
compiler_uic_clean:
|
||||||
|
-$(DEL_FILE) ui_mainwindow.h
|
||||||
|
ui_mainwindow.h: mainwindow.ui
|
||||||
|
/usr/bin/uic-qt4 mainwindow.ui -o ui_mainwindow.h
|
||||||
|
|
||||||
|
compiler_yacc_decl_make_all:
|
||||||
|
compiler_yacc_decl_clean:
|
||||||
|
compiler_yacc_impl_make_all:
|
||||||
|
compiler_yacc_impl_clean:
|
||||||
|
compiler_lex_make_all:
|
||||||
|
compiler_lex_clean:
|
||||||
|
compiler_clean: compiler_moc_header_clean compiler_uic_clean
|
||||||
|
|
||||||
|
####### Compile
|
||||||
|
|
||||||
|
main.o: main.cpp mainwindow.h \
|
||||||
|
../loader.h \
|
||||||
|
../game_data.h \
|
||||||
|
../player.h \
|
||||||
|
../base_types.h \
|
||||||
|
../map.h
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
|
||||||
|
|
||||||
|
mainwindow.o: mainwindow.cpp mainwindow.h \
|
||||||
|
../loader.h \
|
||||||
|
../game_data.h \
|
||||||
|
../player.h \
|
||||||
|
../base_types.h \
|
||||||
|
../map.h \
|
||||||
|
ui_mainwindow.h \
|
||||||
|
alienmodel.h
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp
|
||||||
|
|
||||||
|
loader.o: ../loader.cpp ../loader.h \
|
||||||
|
../game_data.h \
|
||||||
|
../player.h \
|
||||||
|
../base_types.h \
|
||||||
|
../map.h
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o loader.o ../loader.cpp
|
||||||
|
|
||||||
|
alienmodel.o: alienmodel.cpp alienmodel.h \
|
||||||
|
../loader.h \
|
||||||
|
../game_data.h \
|
||||||
|
../player.h \
|
||||||
|
../base_types.h \
|
||||||
|
../map.h
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o alienmodel.o alienmodel.cpp
|
||||||
|
|
||||||
|
moc_mainwindow.o: moc_mainwindow.cpp
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
|
||||||
|
|
||||||
|
moc_loader.o: moc_loader.cpp
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_loader.o moc_loader.cpp
|
||||||
|
|
||||||
|
moc_alienmodel.o: moc_alienmodel.cpp
|
||||||
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_alienmodel.o moc_alienmodel.cpp
|
||||||
|
|
||||||
|
####### Install
|
||||||
|
|
||||||
|
install: FORCE
|
||||||
|
|
||||||
|
uninstall: FORCE
|
||||||
|
|
||||||
|
FORCE:
|
||||||
|
|
||||||
29
ADeditor/alienmodel.cpp
Normal file
29
ADeditor/alienmodel.cpp
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#include "alienmodel.h"
|
||||||
|
|
||||||
|
AlienModel::AlienModel(QList<tbAlien>maliens, QObject *parent) :
|
||||||
|
QAbstractListModel(parent)
|
||||||
|
{
|
||||||
|
aliens = maliens;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int AlienModel::rowCount(const QModelIndex &) const
|
||||||
|
{
|
||||||
|
return aliens.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QVariant AlienModel::data(const QModelIndex &index, int role) const
|
||||||
|
{
|
||||||
|
if (!index.isValid())
|
||||||
|
return QVariant();
|
||||||
|
|
||||||
|
if (index.row() >= aliens.size())
|
||||||
|
return QVariant();
|
||||||
|
|
||||||
|
if (role == Qt::DisplayRole)
|
||||||
|
{
|
||||||
|
return aliens.at(index.row()).name;
|
||||||
|
}
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
23
ADeditor/alienmodel.h
Normal file
23
ADeditor/alienmodel.h
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef ALIENMODEL_H
|
||||||
|
#define ALIENMODEL_H
|
||||||
|
|
||||||
|
#include <QAbstractListModel>
|
||||||
|
#include "../loader.h"
|
||||||
|
|
||||||
|
class AlienModel : public QAbstractListModel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit AlienModel(QList<tbAlien> aliens, QObject *parent = 0);
|
||||||
|
int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
||||||
|
QVariant data(const QModelIndex &index, int role) const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
private:
|
||||||
|
QList<tbAlien> aliens;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ALIENMODEL_H
|
||||||
BIN
ADeditor/alientablemodel.o
Normal file
BIN
ADeditor/alientablemodel.o
Normal file
Binary file not shown.
64
ADeditor/data.xml
Normal file
64
ADeditor/data.xml
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE data>
|
||||||
|
<ADdata>
|
||||||
|
<aliens>
|
||||||
|
<alien speed="0.01" score="50" imageType="1" prise="1" id="1" name="al fly" health="40" flying="true"/>
|
||||||
|
<alien speed="0.012" score="100" imageType="1" prise="0" id="10" name="my alien" health="100"/>
|
||||||
|
<alien speed="0.0099" score="350" imageType="1" prise="1" id="12" name="MONSTR" health="200" armor="1.5" regeneration="3"/>
|
||||||
|
</aliens>
|
||||||
|
<maps>
|
||||||
|
<map imageType="1" id="1" data="AAAERHicY2BgEGAA4v///0hQgmFmAGlGcjCxZuCTHzUDuxkMDOr85JrBwKC0A8kMJlwYagYOeYgZ+NXgNwMtPEbNINIMIsynOO8DAG0r1Q0=" name="My Map" width="16" height="16" maxPlayers="2"/>
|
||||||
|
</maps>
|
||||||
|
<waves>
|
||||||
|
<wave id="1" timeout="20000" prise="100"/>
|
||||||
|
<wave id="2" timeout="20000" prise="200"/>
|
||||||
|
<wave id="3" timeout="20000" prise="220"/>
|
||||||
|
</waves>
|
||||||
|
<levels>
|
||||||
|
<level id="1" map="1" name="First Level"/>
|
||||||
|
</levels>
|
||||||
|
<waveParts>
|
||||||
|
<wavePart wave="1" alien="10" count="4"/>
|
||||||
|
<wavePart wave="1" alien="12" count="5"/>
|
||||||
|
<wavePart wave="1" alien="10" count="10"/>
|
||||||
|
<wavePart wave="2" alien="10" count="9"/>
|
||||||
|
<wavePart wave="3" alien="10" count="1"/>
|
||||||
|
<wavePart wave="3" alien="10" count="2"/>
|
||||||
|
<wavePart wave="3" alien="12" count="3"/>
|
||||||
|
<wavePart wave="3" alien="12" count="4"/>
|
||||||
|
</waveParts>
|
||||||
|
<wavesOnLevels>
|
||||||
|
<waveOnLevel level="1" wave="1"/>
|
||||||
|
<waveOnLevel level="1" wave="2"/>
|
||||||
|
<waveOnLevel level="1" wave="3"/>
|
||||||
|
</wavesOnLevels>
|
||||||
|
<splashes>
|
||||||
|
<splash speed="0.2" imageType="1" id="1" name="rocket" lifetime="9999"/>
|
||||||
|
<splash speed="0.2" imageType="1" id="2" name="smart rocket" lifetime="9999" autoControl="true"/>
|
||||||
|
<splash speed="100" imageType="2" id="3" name="bullet" lifetime="100" autoControl="true"/>
|
||||||
|
<splash speed="1" imageType="3" id="4" name="bum" lifetime="10"/>
|
||||||
|
<splash speed="0" imageType="4" id="5" name="smoke" lifetime="10"/>
|
||||||
|
</splashes>
|
||||||
|
<towers>
|
||||||
|
<tower id="1" imageType="1" name="rocket launcher" cost="30" buildTime="50" reload="20" splash="1" radius="3" expByDamage="0.04" expByKill="0.1" expByShot="0.15"/>
|
||||||
|
<tower id="3" imageType="1" name="rocket launcher 2" cost="30" buildTime="50" reload="20" splash="1" radius="3" expByDamage="0.04" expByKill="0.1" expByShot="0.15"/>
|
||||||
|
<tower id="2" imageType="2" name="gun" cost="10" buildTime="25" reload="5" splash="3" radius="1.5" expByDamage="0.1" expByShot="0.1" expByKill="0.2"/>
|
||||||
|
</towers>
|
||||||
|
<triggers>
|
||||||
|
<trigger id="2" name="shot" type="onDestination" delParent="true" damage="5"/>
|
||||||
|
<trigger id="3" name="explosion" type="onDestination" count="1" delParent="true" damage="5" radius="1.5"/>
|
||||||
|
<trigger id="4" name="smoke" type="onTimer" timer="2" count="1"/>
|
||||||
|
</triggers>
|
||||||
|
<chains>
|
||||||
|
<chain tower="1" parent="1" trigger="3" child="4"/>
|
||||||
|
<chain tower="1" parent="1" trigger="4" child="5"/>
|
||||||
|
<chain tower="3" parent="2" trigger="3" child="4"/>
|
||||||
|
<chain tower="3" parent="2" trigger="4" child="5"/>
|
||||||
|
<chain tower="2" parent="3" trigger="2"/>
|
||||||
|
</chains>
|
||||||
|
<towersOnLevels>
|
||||||
|
<towerOnLevel level="1" tower="1"/>
|
||||||
|
<towerOnLevel level="1" tower="2"/>
|
||||||
|
<towerOnLevel level="1" tower="3"/>
|
||||||
|
</towersOnLevels>
|
||||||
|
</ADdata>
|
||||||
63
ADeditor/data2.xml
Normal file
63
ADeditor/data2.xml
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE data>
|
||||||
|
<ADdata>
|
||||||
|
<aliens>
|
||||||
|
<alien flying="true" speed="0.01" imageType="1" prise="1" id="1" score="50" name="al fly" health="40"/>
|
||||||
|
<alien speed="0.012" imageType="1" prise="0" id="10" score="100" name="my alien" health="100"/>
|
||||||
|
<alien regeneration="3" speed="0.0099" imageType="1" prise="1" armor="1.5" id="12" score="350" name="MONSTR" health="200"/>
|
||||||
|
</aliens>
|
||||||
|
<maps>
|
||||||
|
<map width="16" imageType="1" height="16" id="1" data="AAAERHicY2BgEGAA4v///0hQgmFmAGlGcjCxZuCTHzUDuxkMDOr85JrBwKC0A8kMJlwYagYOeYgZ+NXgNwMtPEbNINIMIsynOO8DAG0r1Q0=" name="My Map" maxPlayers="2"/>
|
||||||
|
</maps>
|
||||||
|
<waves>
|
||||||
|
<wave prise="100" timeout="20000" id="1"/>
|
||||||
|
<wave prise="200" timeout="20000" id="2"/>
|
||||||
|
<wave prise="220" timeout="20000" id="3"/>
|
||||||
|
</waves>
|
||||||
|
<levels>
|
||||||
|
<level map="1" id="1" score="144665064" name="First Level"/>
|
||||||
|
</levels>
|
||||||
|
<waveParts>
|
||||||
|
<wavePart alien="10" count="4" wave="1"/>
|
||||||
|
<wavePart alien="12" count="5" wave="1"/>
|
||||||
|
<wavePart alien="10" count="10" wave="1"/>
|
||||||
|
<wavePart alien="10" count="9" wave="2"/>
|
||||||
|
<wavePart alien="10" count="1" wave="3"/>
|
||||||
|
<wavePart alien="10" count="2" wave="3"/>
|
||||||
|
<wavePart alien="12" count="3" wave="3"/>
|
||||||
|
<wavePart alien="12" count="4" wave="3"/>
|
||||||
|
</waveParts>
|
||||||
|
<wavesOnLevels>
|
||||||
|
<waveOnLevel wave="1" level="1"/>
|
||||||
|
<waveOnLevel wave="2" level="1"/>
|
||||||
|
<waveOnLevel wave="3" level="1"/>
|
||||||
|
</wavesOnLevels>
|
||||||
|
<splashes>
|
||||||
|
<splash speed="0.2" imageType="1" lifetime="9999" id="1" name="rocket"/>
|
||||||
|
<splash speed="0.2" imageType="1" lifetime="9999" autoControl="true" id="2" name="smart rocket"/>
|
||||||
|
<splash speed="100" imageType="2" lifetime="100" autoControl="true" id="3" name="bullet"/>
|
||||||
|
<splash speed="1" imageType="3" lifetime="10" id="4" name="bum"/>
|
||||||
|
<splash speed="0" imageType="4" lifetime="10" id="5" name="smoke"/>
|
||||||
|
</splashes>
|
||||||
|
<towers>
|
||||||
|
<tower imageType="1" radius="3" expByKill="0.1" expByShot="0.15" buildTime="50" splash="1" reload="20" id="1" name="rocket launcher" cost="30" expByDamage="0.04"/>
|
||||||
|
<tower imageType="2" radius="1.5" expByKill="0.2" expByShot="0.1" buildTime="25" splash="3" reload="5" id="2" name="gun" cost="10" expByDamage="0.1"/>
|
||||||
|
<tower imageType="1" radius="3" expByKill="0.1" expByShot="0.15" buildTime="50" splash="1" reload="20" id="3" name="rocket launcher 2" cost="30" expByDamage="0.04"/>
|
||||||
|
</towers>
|
||||||
|
<triggers>
|
||||||
|
<trigger damage="5" childAim="noAim" delParent="true" type="onDestination" id="2" name="shot"/>
|
||||||
|
<trigger damage="5" childAim="noAim" radius="1.5" delParent="true" count="1" type="onDestination" id="3" name="explosion"/>
|
||||||
|
<trigger childAim="noAim" count="1" type="onTimer" id="4" name="smoke"/>
|
||||||
|
</triggers>
|
||||||
|
<chains>
|
||||||
|
<chain tower="1" trigger="3" child="4" parent="1"/>
|
||||||
|
<chain tower="1" trigger="4" child="5" parent="1"/>
|
||||||
|
<chain tower="2" trigger="2" parent="3"/>
|
||||||
|
<chain tower="3" trigger="3" child="4" parent="2"/>
|
||||||
|
<chain tower="3" trigger="4" child="5" parent="2"/>
|
||||||
|
</chains>
|
||||||
|
<towersOnLevels>
|
||||||
|
<towerOnLevel tower="1" level="1"/>
|
||||||
|
<towerOnLevel tower="2" level="1"/>
|
||||||
|
<towerOnLevel tower="3" level="1"/>
|
||||||
|
</towersOnLevels>
|
||||||
|
</ADdata>
|
||||||
10
ADeditor/main.cpp
Normal file
10
ADeditor/main.cpp
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#include <QtGui/QApplication>
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
MainWindow w;
|
||||||
|
w.show();
|
||||||
|
return a.exec();
|
||||||
|
}
|
||||||
76
ADeditor/mainwindow.cpp
Normal file
76
ADeditor/mainwindow.cpp
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#include "mainwindow.h"
|
||||||
|
#include "ui_mainwindow.h"
|
||||||
|
#include "alienmodel.h"
|
||||||
|
|
||||||
|
|
||||||
|
MainWindow::MainWindow(QWidget *parent) :
|
||||||
|
QMainWindow(parent),
|
||||||
|
ui(new Ui::MainWindow)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
adloader = new Loader(this);
|
||||||
|
adloader->load("data2.xml");
|
||||||
|
QAbstractItemModel * model = new AlienModel(adloader->aliens.values());
|
||||||
|
ui->lvAliens->setModel(model);
|
||||||
|
connect(ui->lvAliens->selectionModel(),SIGNAL(currentChanged(QModelIndex, QModelIndex)),this,SLOT(lvAliens_select(QModelIndex, QModelIndex)));
|
||||||
|
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::Select);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MainWindow::~MainWindow()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::changeEvent(QEvent *e)
|
||||||
|
{
|
||||||
|
QMainWindow::changeEvent(e);
|
||||||
|
switch (e->type()) {
|
||||||
|
case QEvent::LanguageChange:
|
||||||
|
ui->retranslateUi(this);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_cbAlArmor_toggled(bool checked)
|
||||||
|
{
|
||||||
|
ui->sbAlArmor->setEnabled(checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_cbAlRegeneration_toggled(bool checked)
|
||||||
|
{
|
||||||
|
ui->sbAlregeneration->setEnabled(checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::lvAliens_select(QModelIndex index, QModelIndex)
|
||||||
|
{
|
||||||
|
tbAlien al = adloader->aliens.values().at(index.row());
|
||||||
|
ui->leAlName->setText(al.name);
|
||||||
|
ui->sbAlHealth->setValue(al.health);
|
||||||
|
ui->sbAlArmor->setValue(al.armor);
|
||||||
|
if (al.armor > 0) ui->cbAlArmor->setChecked(true);
|
||||||
|
else ui->cbAlArmor->setChecked(false);
|
||||||
|
ui->sbAlSpeed->setValue(al.speed);
|
||||||
|
ui->sbAlPrise->setValue(al.prise);
|
||||||
|
ui->sbAlregeneration->setValue(al.regeneration);
|
||||||
|
if (al.regeneration > 0) ui->cbAlRegeneration->setChecked(true);
|
||||||
|
else ui->cbAlRegeneration->setChecked(false);
|
||||||
|
ui->sbAlScore->setValue(al.score);
|
||||||
|
ui->cbAlIsFly->setChecked(al.isFlying);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_pbSave_clicked()
|
||||||
|
{
|
||||||
|
adloader->save("data2.xml");
|
||||||
|
adloader->load("data2.xml");
|
||||||
|
QAbstractItemModel * model = new AlienModel(adloader->aliens.values());
|
||||||
|
ui->lvAliens->setModel(model);
|
||||||
|
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::Select);
|
||||||
|
}
|
||||||
34
ADeditor/mainwindow.h
Normal file
34
ADeditor/mainwindow.h
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
#ifndef MAINWINDOW_H
|
||||||
|
#define MAINWINDOW_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QListWidgetItem>
|
||||||
|
|
||||||
|
#include "../loader.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class MainWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
class MainWindow : public QMainWindow {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
MainWindow(QWidget *parent = 0);
|
||||||
|
~MainWindow();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void changeEvent(QEvent *e);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::MainWindow *ui;
|
||||||
|
Loader * adloader;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_pbSave_clicked();
|
||||||
|
void lvAliens_select(QModelIndex, QModelIndex);
|
||||||
|
void on_cbAlRegeneration_toggled(bool checked);
|
||||||
|
void on_cbAlArmor_toggled(bool checked);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MAINWINDOW_H
|
||||||
664
ADeditor/mainwindow.ui
Normal file
664
ADeditor/mainwindow.ui
Normal file
@@ -0,0 +1,664 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>MainWindow</class>
|
||||||
|
<widget class="QMainWindow" name="MainWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>516</width>
|
||||||
|
<height>435</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>MainWindow</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralWidget">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QTabWidget" name="tabAlien_2">
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="tabAlien">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Aliens</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QGridLayout" name="gridLayout" rowstretch="0,0" columnstretch="1,0">
|
||||||
|
<item row="0" column="1" rowspan="2">
|
||||||
|
<widget class="QFrame" name="frame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Name</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="leAlName"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Health</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlHealth"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="cbAlArmor">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Armor</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlArmor">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="cbAlRegeneration">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Regeneration</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlregeneration">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Speed</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlSpeed"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Prise</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="sbAlPrise"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Score</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="sbAlScore"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="cbAlIsFly">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Is Flying</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_9" stretch="10,4,0,1">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Image</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGraphicsView" name="graphicsView">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_3">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>48</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="2,1">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>20</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pbAlAdd">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Add</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pbAlDel">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Delete</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QListView" name="lvAliens">
|
||||||
|
<property name="editTriggers">
|
||||||
|
<set>QAbstractItemView::AllEditTriggers</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="tabTower">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Towers</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QListView" name="TowerList"/>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QFrame" name="frame_2">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_25">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_20">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Name</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="leAlName_5"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_26">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_21">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Build time</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="sbAlPrise_5"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_30">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_23">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Cost</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="sbAlPrise_3"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_36">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_29">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>splash</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="comboBox"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_35">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_28">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Reload</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="sbAlPrise_4"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_29">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_22">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Radius</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlSpeed_3"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_31">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_24">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ExpbyShot</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlHealth_4"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_34">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_27">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ExpbyDam</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlHealth_6"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_32">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_26">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ExpbyKill</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="sbAlHealth_5"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_33" stretch="10,4,0,1">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_25">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Image</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGraphicsView" name="graphicsView_3">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_6">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_5">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>48</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pbSave">
|
||||||
|
<property name="text">
|
||||||
|
<string>Save</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
69
ADeditor/moc_alientablemodel.cpp
Normal file
69
ADeditor/moc_alientablemodel.cpp
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
** Meta object code from reading C++ file 'alientablemodel.h'
|
||||||
|
**
|
||||||
|
** Created: Tue Aug 24 14:03:38 2010
|
||||||
|
** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost!
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "alientablemodel.h"
|
||||||
|
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||||
|
#error "The header file 'alientablemodel.h' doesn't include <QObject>."
|
||||||
|
#elif Q_MOC_OUTPUT_REVISION != 62
|
||||||
|
#error "This file was generated using the moc from 4.6.2. It"
|
||||||
|
#error "cannot be used with the include files from this version of Qt."
|
||||||
|
#error "(The moc has changed too much.)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QT_BEGIN_MOC_NAMESPACE
|
||||||
|
static const uint qt_meta_data_AlienTableModel[] = {
|
||||||
|
|
||||||
|
// content:
|
||||||
|
4, // revision
|
||||||
|
0, // classname
|
||||||
|
0, 0, // classinfo
|
||||||
|
0, 0, // methods
|
||||||
|
0, 0, // properties
|
||||||
|
0, 0, // enums/sets
|
||||||
|
0, 0, // constructors
|
||||||
|
0, // flags
|
||||||
|
0, // signalCount
|
||||||
|
|
||||||
|
0 // eod
|
||||||
|
};
|
||||||
|
|
||||||
|
static const char qt_meta_stringdata_AlienTableModel[] = {
|
||||||
|
"AlienTableModel\0"
|
||||||
|
};
|
||||||
|
|
||||||
|
const QMetaObject AlienTableModel::staticMetaObject = {
|
||||||
|
{ &QAbstractTableModel::staticMetaObject, qt_meta_stringdata_AlienTableModel,
|
||||||
|
qt_meta_data_AlienTableModel, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef Q_NO_DATA_RELOCATION
|
||||||
|
const QMetaObject &AlienTableModel::getStaticMetaObject() { return staticMetaObject; }
|
||||||
|
#endif //Q_NO_DATA_RELOCATION
|
||||||
|
|
||||||
|
const QMetaObject *AlienTableModel::metaObject() const
|
||||||
|
{
|
||||||
|
return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *AlienTableModel::qt_metacast(const char *_clname)
|
||||||
|
{
|
||||||
|
if (!_clname) return 0;
|
||||||
|
if (!strcmp(_clname, qt_meta_stringdata_AlienTableModel))
|
||||||
|
return static_cast<void*>(const_cast< AlienTableModel*>(this));
|
||||||
|
return QAbstractTableModel::qt_metacast(_clname);
|
||||||
|
}
|
||||||
|
|
||||||
|
int AlienTableModel::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
_id = QAbstractTableModel::qt_metacall(_c, _id, _a);
|
||||||
|
if (_id < 0)
|
||||||
|
return _id;
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
QT_END_MOC_NAMESPACE
|
||||||
BIN
ADeditor/moc_alientablemodel.o
Normal file
BIN
ADeditor/moc_alientablemodel.o
Normal file
Binary file not shown.
221
ADeditor/schema.xml
Normal file
221
ADeditor/schema.xml
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
|
||||||
|
<xsd:element name="ADdata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="aliens">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="alien" type="alienType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="maps">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="map" type="mapType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="waves">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="wave" type="waveType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="levels">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="level" type="levelType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="waveParts">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="wavePart" type="wavePartType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="wavesOnLevels">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="waveOnLevel" type="waveOnLevelType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="splashes">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="splash" type="splashType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="towers">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="tower" type="towerType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="triggers">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="trigger" type="triggerType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="chains">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="chain" type="chainType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="towersOnLevels">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="towerOnLevel" type="towerOnLevelType" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
|
||||||
|
<xsd:complexType name="alienType">
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="score" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="speed" type="xsd:float" use="required"/>
|
||||||
|
<xsd:attribute name="health" type="xsd:float" use="required"/>
|
||||||
|
<xsd:attribute name="prise" type="xsd:nonNegativeInteger" use="required"/>
|
||||||
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
||||||
|
<xsd:attribute name="armor" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="regeneration" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="flying" type="xsd:boolean" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="splashType">
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="speed" type="xsd:float" use="required"/>
|
||||||
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
||||||
|
<xsd:attribute name="lifetime" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="autoControl" type="xsd:boolean" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="triggerType">
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="count" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
<xsd:attribute name="timer" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
<xsd:attribute name="chance" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
<xsd:attribute name="randomPosRadius" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="damage" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="radius" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="delParent" type="xsd:boolean" use="optional"/>
|
||||||
|
<xsd:attribute name="type" use="required">
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="onDestination"/>
|
||||||
|
<xsd:enumeration value="onTimer"/>
|
||||||
|
<xsd:enumeration value="onAlienInRadius"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="childAim" use="optional">
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="noAim"/>
|
||||||
|
<xsd:enumeration value="parentAim"/>
|
||||||
|
<xsd:enumeration value="allSide"/>
|
||||||
|
<xsd:enumeration value="nearlestAlien"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="towerType">
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
||||||
|
<xsd:attribute name="buildTime" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="cost" type="xsd:nonNegativeInteger" use="required"/>
|
||||||
|
<xsd:attribute name="splash" type="xsd:integer" use="required"/>
|
||||||
|
<xsd:attribute name="reload" type="xsd:nonNegativeInteger" use="required"/>
|
||||||
|
<xsd:attribute name="radius" type="xsd:float" use="required"/>
|
||||||
|
<xsd:attribute name="expByShot" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="expByKill" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="expByDamage" type="xsd:float" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="mapType">
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="maxPlayers" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="width" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="height" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
||||||
|
<xsd:attribute name="data" type="xsd:string" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="morphType">
|
||||||
|
<xsd:attribute name="from" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="to" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="cost" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="expRequired" type="xsd:float" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="upgradeType">
|
||||||
|
<xsd:attribute name="tower" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="trigger" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
<xsd:attribute name="cost" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="radius" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="reload" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
<xsd:attribute name="damage" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="damageRadius" type="xsd:float" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="wavePartType">
|
||||||
|
<xsd:attribute name="alien" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="wave" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="count" type="xsd:positiveInteger" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="chainType">
|
||||||
|
<xsd:attribute name="tower" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="parent" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="trigger" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="child" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="waveType">
|
||||||
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="timeout" type="xsd:nonNegativeInteger" use="required"/>
|
||||||
|
<xsd:attribute name="prise" type="xsd:nonNegativeInteger" use="required"/>
|
||||||
|
<!--xsd:attribute name="type" type="xsd:nonNegativeInteger" use="required"-->
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="waveOnLevelType">
|
||||||
|
<xsd:attribute name="level" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="wave" type="xsd:positiveInteger" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="towerOnLevelType">
|
||||||
|
<xsd:attribute name="level" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="tower" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<!--xsd:attribute name="enableWave" type="xsd:nonNegativeInteger" use="optional"-->
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="levelType">
|
||||||
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="map" type="xsd:nonNegativeInteger" use="required"/>
|
||||||
|
<xsd:attribute name="score" type="xsd:positiveInteger" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
</xsd:schema>
|
||||||
|
|
||||||
@@ -7,6 +7,9 @@ adCore::adCore(QObject *parent) :
|
|||||||
//admap = new Map(1);
|
//admap = new Map(1);
|
||||||
//addata = new Game_Data(admap);
|
//addata = new Game_Data(admap);
|
||||||
adloader = new Loader();
|
adloader = new Loader();
|
||||||
|
addata = adloader->loadlevel(1);
|
||||||
|
if (addata != 0) qDebug("Sucsess");
|
||||||
|
else qDebug("Error");
|
||||||
//admap->load();
|
//admap->load();
|
||||||
//adload->create();
|
//adload->create();
|
||||||
//adload->readAliens();
|
//adload->readAliens();
|
||||||
|
|||||||
BIN
aliendefender
Executable file
BIN
aliendefender
Executable file
Binary file not shown.
@@ -160,7 +160,7 @@
|
|||||||
<valuemap type="QVariantMap">
|
<valuemap type="QVariantMap">
|
||||||
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
|
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
|
||||||
<valuelist key="abstractProcess.Environment" type="QVariantList">
|
<valuelist key="abstractProcess.Environment" type="QVariantList">
|
||||||
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-oJVJLhEuxX,guid=dd326939f06256af8e013dce4c50f54e</value>
|
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd</value>
|
||||||
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
|
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
|
||||||
<value type="QString">DESKTOP_SESSION=gnome</value>
|
<value type="QString">DESKTOP_SESSION=gnome</value>
|
||||||
<value type="QString">DISPLAY=:0.0</value>
|
<value type="QString">DISPLAY=:0.0</value>
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
|
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
|
||||||
<value type="QString">GDM_LANG=ru_RU.UTF-8</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_DESKTOP_SESSION_ID=this-is-deprecated</value>
|
||||||
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-UECX54</value>
|
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW</value>
|
||||||
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
|
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
|
||||||
<value type="QString">HOME=/home/andrey</value>
|
<value type="QString">HOME=/home/andrey</value>
|
||||||
<value type="QString">LANG=ru_RU.UTF-8</value>
|
<value type="QString">LANG=ru_RU.UTF-8</value>
|
||||||
@@ -179,17 +179,17 @@
|
|||||||
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</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">PWD=/home/andrey</value>
|
||||||
<value type="QString">QTDIR=/usr/share/qt4</value>
|
<value type="QString">QTDIR=/usr/share/qt4</value>
|
||||||
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1144,unix/buull-eeePC:/tmp/.ICE-unix/1144</value>
|
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124</value>
|
||||||
<value type="QString">SHELL=/bin/bash</value>
|
<value type="QString">SHELL=/bin/bash</value>
|
||||||
<value type="QString">SPEECHD_PORT=6561</value>
|
<value type="QString">SPEECHD_PORT=6561</value>
|
||||||
<value type="QString">SSH_AGENT_PID=1178</value>
|
<value type="QString">SSH_AGENT_PID=1158</value>
|
||||||
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-UECX54/ssh</value>
|
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh</value>
|
||||||
<value type="QString">USER=andrey</value>
|
<value type="QString">USER=andrey</value>
|
||||||
<value type="QString">USERNAME=andrey</value>
|
<value type="QString">USERNAME=andrey</value>
|
||||||
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-SArBRZ/database</value>
|
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database</value>
|
||||||
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</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_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
|
||||||
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1280374094.93008-1317282182</value>
|
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736</value>
|
||||||
</valuelist>
|
</valuelist>
|
||||||
<value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
|
<value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
|
||||||
<valuelist key="abstractProcess.arguments" type="QVariantList">
|
<valuelist key="abstractProcess.arguments" type="QVariantList">
|
||||||
|
|||||||
@@ -128,9 +128,8 @@ struct SplashType
|
|||||||
|
|
||||||
struct WaveType
|
struct WaveType
|
||||||
{
|
{
|
||||||
int Id;
|
|
||||||
QList <int> types; // some types of aliens (e.g. 2 fly and 3 grount in one wave)
|
QList <int> types; // some types of aliens (e.g. 2 fly and 3 grount in one wave)
|
||||||
QList <int> counts; // count aliens of each type
|
QList <unsigned int> counts; // count aliens of each type
|
||||||
unsigned int timeout; // time in ticks
|
unsigned int timeout; // time in ticks
|
||||||
unsigned int prise;
|
unsigned int prise;
|
||||||
};
|
};
|
||||||
|
|||||||
7
data.xml
7
data.xml
@@ -2,6 +2,7 @@
|
|||||||
<!DOCTYPE data>
|
<!DOCTYPE data>
|
||||||
<ADdata>
|
<ADdata>
|
||||||
<aliens>
|
<aliens>
|
||||||
|
<alien speed="0.01" score="50" imageType="1" prise="1" id="1" name="al fly" health="40" flying="true"/>
|
||||||
<alien speed="0.012" score="100" imageType="1" prise="0" id="10" name="my alien" health="100"/>
|
<alien speed="0.012" score="100" imageType="1" prise="0" id="10" name="my alien" health="100"/>
|
||||||
<alien speed="0.0099" score="350" imageType="1" prise="1" id="12" name="MONSTR" health="200" armor="1.5" regeneration="3"/>
|
<alien speed="0.0099" score="350" imageType="1" prise="1" id="12" name="MONSTR" health="200" armor="1.5" regeneration="3"/>
|
||||||
</aliens>
|
</aliens>
|
||||||
@@ -11,6 +12,7 @@
|
|||||||
<waves>
|
<waves>
|
||||||
<wave id="1" timeout="20000" prise="100"/>
|
<wave id="1" timeout="20000" prise="100"/>
|
||||||
<wave id="2" timeout="20000" prise="200"/>
|
<wave id="2" timeout="20000" prise="200"/>
|
||||||
|
<wave id="3" timeout="20000" prise="220"/>
|
||||||
</waves>
|
</waves>
|
||||||
<levels>
|
<levels>
|
||||||
<level id="1" map="1" name="First Level"/>
|
<level id="1" map="1" name="First Level"/>
|
||||||
@@ -20,10 +22,15 @@
|
|||||||
<wavePart wave="1" alien="12" count="5"/>
|
<wavePart wave="1" alien="12" count="5"/>
|
||||||
<wavePart wave="1" alien="10" count="10"/>
|
<wavePart wave="1" alien="10" count="10"/>
|
||||||
<wavePart wave="2" alien="10" count="9"/>
|
<wavePart wave="2" alien="10" count="9"/>
|
||||||
|
<wavePart wave="3" alien="10" count="1"/>
|
||||||
|
<wavePart wave="3" alien="10" count="2"/>
|
||||||
|
<wavePart wave="3" alien="12" count="3"/>
|
||||||
|
<wavePart wave="3" alien="12" count="4"/>
|
||||||
</waveParts>
|
</waveParts>
|
||||||
<wavesOnLevels>
|
<wavesOnLevels>
|
||||||
<waveOnLevel level="1" wave="1"/>
|
<waveOnLevel level="1" wave="1"/>
|
||||||
<waveOnLevel level="1" wave="2"/>
|
<waveOnLevel level="1" wave="2"/>
|
||||||
|
<waveOnLevel level="1" wave="3"/>
|
||||||
</wavesOnLevels>
|
</wavesOnLevels>
|
||||||
<splashes>
|
<splashes>
|
||||||
<splash speed="0.2" imageType="1" id="1" name="rocket" lifetime="9999"/>
|
<splash speed="0.2" imageType="1" id="1" name="rocket" lifetime="9999"/>
|
||||||
|
|||||||
359
loader.cpp
359
loader.cpp
@@ -5,14 +5,14 @@ Loader::Loader(QObject *parent) :
|
|||||||
{
|
{
|
||||||
doc = new QDomDocument("data");
|
doc = new QDomDocument("data");
|
||||||
//create();
|
//create();
|
||||||
load();
|
//load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Loader::load()
|
void Loader::load(QString filename)
|
||||||
{
|
{
|
||||||
validate();
|
validate(filename);
|
||||||
file = new QFile("data.xml");
|
file = new QFile(filename);
|
||||||
if (!file->open(QIODevice::ReadOnly))
|
if (!file->open(QIODevice::ReadOnly))
|
||||||
qFatal("No file data.xml found!");
|
qFatal("No file data.xml found!");
|
||||||
if (!doc->setContent(file))
|
if (!doc->setContent(file))
|
||||||
@@ -38,80 +38,289 @@ void Loader::load()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Loader::create()
|
void Loader::save(QString filename)
|
||||||
{
|
{
|
||||||
QFile cfile("data.xml");
|
QDomDocument data("data");
|
||||||
|
QFile cfile(filename);
|
||||||
if (!cfile.open(QIODevice::WriteOnly))
|
if (!cfile.open(QIODevice::WriteOnly))
|
||||||
return;
|
return;
|
||||||
cfile.resize(0);
|
cfile.resize(0);
|
||||||
QDomElement elem;
|
QDomElement elem;
|
||||||
QDomElement root = doc->createElement("ADdata");
|
QDomElement root = data.createElement("ADdata");
|
||||||
doc->appendChild(root);
|
data.appendChild(root);
|
||||||
QDomElement child = doc->createElement("aliens");
|
QDomElement child = data.createElement("aliens");
|
||||||
root.appendChild(child);
|
root.appendChild(child);
|
||||||
elem = doc->createElement("alien");
|
for (int i=0; i<aliens.size(); i++)
|
||||||
child.appendChild(elem);
|
{
|
||||||
elem.setAttribute("name","my alien");
|
tbAlien al = aliens.values().at(i);
|
||||||
elem.setAttribute("speed",0.012);
|
elem = data.createElement("alien");
|
||||||
elem.setAttribute("health",100);
|
child.appendChild(elem);
|
||||||
elem.setAttribute("prise",0);
|
elem.setAttribute("id",al.id);
|
||||||
elem.setAttribute("id",10);
|
elem.setAttribute("name",al.name);
|
||||||
elem.setAttribute("imageType",1);
|
elem.setAttribute("health",al.health);
|
||||||
elem = doc->createElement("alien");
|
if (al.armor > 0)
|
||||||
child.appendChild(elem);
|
elem.setAttribute("armor",al.armor);
|
||||||
elem.setAttribute("name","MONSTR");
|
if (al.isFlying)
|
||||||
elem.setAttribute("speed",0.0099);
|
elem.setAttribute("flying","true");
|
||||||
elem.setAttribute("health",200);
|
elem.setAttribute("prise",al.prise);
|
||||||
elem.setAttribute("prise",1);
|
if (al.regeneration > 0)
|
||||||
elem.setAttribute("id",12);
|
elem.setAttribute("regeneration",al.regeneration);
|
||||||
elem.setAttribute("imageType",1);
|
elem.setAttribute("score",al.score);
|
||||||
child = doc->createElement("towers");
|
elem.setAttribute("speed",al.speed);
|
||||||
|
elem.setAttribute("imageType",al.imgType);
|
||||||
|
}
|
||||||
|
child = data.createElement("maps");
|
||||||
root.appendChild(child);
|
root.appendChild(child);
|
||||||
elem = doc->createElement("tower");
|
for (int i=0; i<maps.size(); i++)
|
||||||
child.appendChild(elem);
|
{
|
||||||
elem.setAttribute("name","my tower");
|
tbMap map = maps.values().at(i);
|
||||||
elem.setAttribute("imageType",1);
|
elem = data.createElement("map");
|
||||||
elem.setAttribute("reload",20);
|
child.appendChild(elem);
|
||||||
elem.setAttribute("buildTime",100);
|
elem.setAttribute("name",map.name);
|
||||||
elem.setAttribute("price",10);
|
elem.setAttribute("maxPlayers",map.maxPlayers);
|
||||||
elem.setAttribute("radius",1.2);
|
elem.setAttribute("id",map.id);
|
||||||
elem.setAttribute("splashType",0);
|
elem.setAttribute("imageType",map.imgType);
|
||||||
elem.setAttribute("id",0);
|
elem.setAttribute("width",map.size.width());
|
||||||
elem = doc->createElement("tower");
|
elem.setAttribute("height",map.size.height());
|
||||||
child.appendChild(elem);
|
elem.setAttribute("data",QString(map.data));
|
||||||
elem.setAttribute("name","Wall");
|
}
|
||||||
elem.setAttribute("imageType",1);
|
child = data.createElement("waves");
|
||||||
elem.setAttribute("buildTime",300);
|
|
||||||
elem.setAttribute("reload",0);
|
|
||||||
elem.setAttribute("price",9);
|
|
||||||
elem.setAttribute("radius",0);
|
|
||||||
elem.setAttribute("splashType",0);
|
|
||||||
elem.setAttribute("id",1);
|
|
||||||
child = doc->createElement("maps");
|
|
||||||
root.appendChild(child);
|
root.appendChild(child);
|
||||||
elem = doc->createElement("map");
|
for (int i=0; i<waves.size(); i++)
|
||||||
child.appendChild(elem);
|
{
|
||||||
elem.setAttribute("name","Map 16x16");
|
tbWave w = waves.values().at(i);
|
||||||
elem.setAttribute("maxPlayers","2");
|
elem = data.createElement("wave");
|
||||||
elem.setAttribute("id",1);
|
child.appendChild(elem);
|
||||||
elem.setAttribute("imageType",1);
|
elem.setAttribute("id",w.id);
|
||||||
elem.setAttribute("data",CreateMapExample());
|
elem.setAttribute("prise",w.prise);
|
||||||
child = doc->createElement("splashes");
|
elem.setAttribute("timeout",w.timeout);
|
||||||
|
}
|
||||||
|
child = data.createElement("levels");
|
||||||
root.appendChild(child);
|
root.appendChild(child);
|
||||||
elem = doc->createElement("splash");
|
for (int i=0; i<levels.size(); i++)
|
||||||
child.appendChild(elem);
|
{
|
||||||
elem.setAttribute("name","shot");
|
tbLevel lev = levels.values().at(i);
|
||||||
elem.setAttribute("imageType",1);
|
elem = data.createElement("level");
|
||||||
elem.setAttribute("damage",2.5);
|
child.appendChild(elem);
|
||||||
elem.setAttribute("speed",100);
|
elem.setAttribute("id",lev.id);
|
||||||
elem.setAttribute("autoControl","true");
|
elem.setAttribute("map",lev.mapId);
|
||||||
elem.setAttribute("radius",1.2);
|
elem.setAttribute("name",lev.name);
|
||||||
elem.setAttribute("id",0);
|
elem.setAttribute("score",lev.score);
|
||||||
cfile.write(doc->toByteArray());
|
}
|
||||||
|
child = data.createElement("waveParts");
|
||||||
|
root.appendChild(child);
|
||||||
|
for (int i=0; i<waveParts.size(); i++)
|
||||||
|
{
|
||||||
|
tbWavePart wp = waveParts.values().at(i);
|
||||||
|
elem = data.createElement("wavePart");
|
||||||
|
child.appendChild(elem);
|
||||||
|
elem.setAttribute("wave",wp.waveId);
|
||||||
|
elem.setAttribute("alien",wp.alienId);
|
||||||
|
elem.setAttribute("count",wp.count);
|
||||||
|
}
|
||||||
|
child = data.createElement("wavesOnLevels");
|
||||||
|
root.appendChild(child);
|
||||||
|
for (int i=0; i<levWaves.size(); i++)
|
||||||
|
{
|
||||||
|
tbWaveOnLevel wol = levWaves.values().at(i);
|
||||||
|
elem = data.createElement("waveOnLevel");
|
||||||
|
child.appendChild(elem);
|
||||||
|
elem.setAttribute("level",wol.levelId);
|
||||||
|
elem.setAttribute("wave",wol.waveId);
|
||||||
|
}
|
||||||
|
child = data.createElement("splashes");
|
||||||
|
root.appendChild(child);
|
||||||
|
for (int i=0; i<splashes.size(); i++)
|
||||||
|
{
|
||||||
|
tbSplash spl = splashes.values().at(i);
|
||||||
|
elem = data.createElement("splash");
|
||||||
|
child.appendChild(elem);
|
||||||
|
elem.setAttribute("name",spl.name);
|
||||||
|
elem.setAttribute("id",spl.id);
|
||||||
|
elem.setAttribute("imageType",spl.imgType);
|
||||||
|
elem.setAttribute("lifetime",spl.lifetime);
|
||||||
|
elem.setAttribute("speed",spl.speed);
|
||||||
|
if (spl.autoControl)
|
||||||
|
elem.setAttribute("autoControl","true");
|
||||||
|
}
|
||||||
|
child = data.createElement("towers");
|
||||||
|
root.appendChild(child);
|
||||||
|
for (int i=0; i<towers.size(); i++)
|
||||||
|
{
|
||||||
|
tbTower tw = towers.values().at(i);
|
||||||
|
elem = data.createElement("tower");
|
||||||
|
child.appendChild(elem);
|
||||||
|
elem.setAttribute("name",tw.name);
|
||||||
|
elem.setAttribute("imageType",tw.imgType);
|
||||||
|
elem.setAttribute("reload",tw.reload);
|
||||||
|
elem.setAttribute("buildTime",tw.buildTime);
|
||||||
|
elem.setAttribute("cost",tw.cost);
|
||||||
|
elem.setAttribute("radius",tw.radius);
|
||||||
|
elem.setAttribute("splash",tw.splashId);
|
||||||
|
elem.setAttribute("id",tw.id);
|
||||||
|
if (tw.expByDamage > 0)
|
||||||
|
elem.setAttribute("expByDamage",tw.expByDamage);
|
||||||
|
if (tw.expByKill > 0)
|
||||||
|
elem.setAttribute("expByKill",tw.expByKill);
|
||||||
|
if (tw.expByShot > 0)
|
||||||
|
elem.setAttribute("expByShot",tw.expByShot);
|
||||||
|
}
|
||||||
|
child = data.createElement("triggers");
|
||||||
|
root.appendChild(child);
|
||||||
|
for (int i=0; i<triggers.size(); i++)
|
||||||
|
{
|
||||||
|
tbTrigger trig = triggers.values().at(i);
|
||||||
|
elem = data.createElement("trigger");
|
||||||
|
child.appendChild(elem);
|
||||||
|
elem.setAttribute("id",trig.id);
|
||||||
|
elem.setAttribute("name",trig.name);
|
||||||
|
if (trig.chance != 100)
|
||||||
|
elem.setAttribute("chance",trig.chance);
|
||||||
|
if (trig.count > 0)
|
||||||
|
elem.setAttribute("count",trig.count);
|
||||||
|
if (trig.damage > 0)
|
||||||
|
elem.setAttribute("damage",trig.damage);
|
||||||
|
if (trig.radius > 0)
|
||||||
|
elem.setAttribute("radius",trig.radius);
|
||||||
|
if (trig.delParent)
|
||||||
|
elem.setAttribute("delParent","true");
|
||||||
|
if (trig.randomPosRadius > 0)
|
||||||
|
elem.setAttribute("randomPosRadius",trig.randomPosRadius);
|
||||||
|
switch (trig.childAim)
|
||||||
|
{
|
||||||
|
case tbTrigger::allSide :
|
||||||
|
elem.setAttribute("childAim","allSide");
|
||||||
|
break;
|
||||||
|
case tbTrigger::nearlestAlien :
|
||||||
|
elem.setAttribute("childAim","nearlestAlien");
|
||||||
|
break;
|
||||||
|
case tbTrigger::parentAim :
|
||||||
|
elem.setAttribute("childAim","parentAim");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
elem.setAttribute("childAim","noAim");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (trig.type)
|
||||||
|
{
|
||||||
|
case tbTrigger::onTimer :
|
||||||
|
elem.setAttribute("type","onTimer");
|
||||||
|
break;
|
||||||
|
case tbTrigger::onDestination :
|
||||||
|
elem.setAttribute("type","onDestination");
|
||||||
|
break;
|
||||||
|
case tbTrigger::onAlienInRadius :
|
||||||
|
elem.setAttribute("type","onAlienInRadius");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
child = data.createElement("chains");
|
||||||
|
root.appendChild(child);
|
||||||
|
for (int i=0; i<chains.size(); i++)
|
||||||
|
{
|
||||||
|
tbChain ch = chains.values().at(i);
|
||||||
|
elem = data.createElement("chain");
|
||||||
|
child.appendChild(elem);
|
||||||
|
elem.setAttribute("tower",ch.towerId);
|
||||||
|
elem.setAttribute("trigger",ch.triggerId);
|
||||||
|
elem.setAttribute("parent",ch.parentSplashId);
|
||||||
|
if (ch.childSplashId > 0)
|
||||||
|
elem.setAttribute("child",ch.childSplashId);
|
||||||
|
}
|
||||||
|
child = data.createElement("towersOnLevels");
|
||||||
|
root.appendChild(child);
|
||||||
|
for (int i=0; i<levTowers.size(); i++)
|
||||||
|
{
|
||||||
|
tbTowerOnLevel tol = levTowers.values().at(i);
|
||||||
|
elem = data.createElement("towerOnLevel");
|
||||||
|
child.appendChild(elem);
|
||||||
|
elem.setAttribute("level",tol.levelId);
|
||||||
|
elem.setAttribute("tower",tol.towerId);
|
||||||
|
}
|
||||||
|
cfile.write(data.toByteArray());
|
||||||
cfile.close();
|
cfile.close();
|
||||||
|
//qDebug() << data.toByteArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Game_Data * Loader::loadlevel(int id)
|
||||||
|
//{
|
||||||
|
// if (!levels.contains(id))
|
||||||
|
// {
|
||||||
|
// qCritical() << tr("Error Level %1 not found!").arg(id);
|
||||||
|
// return 0;
|
||||||
|
// }
|
||||||
|
// qDebug() << tr("Loading level %1 ...").arg(levels.value(id).name);
|
||||||
|
// tbMap tbm = maps.value(levels.value(id).mapId);
|
||||||
|
// Map * map = new Map(tbm.data,tbm.size,tbm.name,tbm.maxPlayers,tbm.imgType);
|
||||||
|
// Game_Data * gd = new Game_Data(map);
|
||||||
|
// QList <tbWaveOnLevel> wollist = levWaves.values(id);
|
||||||
|
// if (wollist.isEmpty())
|
||||||
|
// {
|
||||||
|
// qCritical() << tr("Error no waves on level!");
|
||||||
|
// return 0;
|
||||||
|
// }
|
||||||
|
// tbWave tbw;
|
||||||
|
// tbWavePart tbwpt;
|
||||||
|
// QList <tbWavePart> wplist;
|
||||||
|
// QList <int> alienIds;
|
||||||
|
// for (int i=0; i<wollist.size(); i++)
|
||||||
|
// {
|
||||||
|
// WaveType wt;
|
||||||
|
// tbw = waves.value(wollist.at(i).waveId);
|
||||||
|
// wt.prise = tbw.prise;
|
||||||
|
// wt.timeout = tbw.timeout;
|
||||||
|
// wplist = waveParts.values(tbw.id);
|
||||||
|
// if (wplist.isEmpty())
|
||||||
|
// {
|
||||||
|
// qCritical() << tr("Error wave %1 is empty!").arg(tbw.id);
|
||||||
|
// return 0;
|
||||||
|
// }
|
||||||
|
// for (int j=0; j<wplist.size(); j++)
|
||||||
|
// {
|
||||||
|
// tbwpt = wplist.at(j);
|
||||||
|
// if (alienIds.contains(tbwpt.alienId))
|
||||||
|
// {
|
||||||
|
// wt.types.prepend(alienIds.indexOf(tbwpt.alienId));
|
||||||
|
// } else {
|
||||||
|
// alienIds.append(tbwpt.alienId);
|
||||||
|
// wt.types.prepend(alienIds.size()-1);
|
||||||
|
// }
|
||||||
|
// wt.counts.prepend(tbwpt.count);
|
||||||
|
// }
|
||||||
|
// gd->waves.prepend(wt);
|
||||||
|
// wplist.clear();
|
||||||
|
// }
|
||||||
|
// for (int i=0; i<gd->waves.size(); i++)
|
||||||
|
// qDebug() << tr("load wave #%1 prise=%2 timeout=%3").arg(i+1).arg(gd->waves.at(i).prise).arg(gd->waves.at(i).timeout) << gd->waves.at(i).types << gd->waves.at(i).counts;
|
||||||
|
// wollist.clear();
|
||||||
|
// for (int i=0; i<alienIds.size(); i++)
|
||||||
|
// {
|
||||||
|
// srcAlienType salt;
|
||||||
|
// tbAlien tbal = aliens.value(alienIds.at(i));
|
||||||
|
// salt.armor = tbal.armor;
|
||||||
|
// salt.health = tbal.health;
|
||||||
|
// salt.imgType = tbal.imgType;
|
||||||
|
// salt.isFlying = tbal.isFlying;
|
||||||
|
// salt.name = tbal.name;
|
||||||
|
// salt.prise = tbal.prise;
|
||||||
|
// salt.regeneration = tbal.regeneration;
|
||||||
|
// salt.score = tbal.score;
|
||||||
|
// salt.speed = tbal.speed;
|
||||||
|
// gd->srcAliens.append(salt);
|
||||||
|
// qDebug() << tr("Alien %1 #%2 ").arg(salt.name).arg(i);
|
||||||
|
// }
|
||||||
|
// QList <tbTowerOnLevel> tollist = levTowers.values(id);
|
||||||
|
// tbTower tbt;
|
||||||
|
// for (int i=0; i<tollist.size(); i++)
|
||||||
|
// {
|
||||||
|
// srcTowerType stt;
|
||||||
|
// tbt = towers.value(tollist.at(i).towerId);
|
||||||
|
// }
|
||||||
|
// return gd;
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
QString Loader::CreateMapExample()
|
QString Loader::CreateMapExample()
|
||||||
{
|
{
|
||||||
QVector < QVector < int > > Cells;
|
QVector < QVector < int > > Cells;
|
||||||
@@ -154,6 +363,7 @@ QString Loader::CreateMapExample()
|
|||||||
|
|
||||||
void Loader::readAliens()
|
void Loader::readAliens()
|
||||||
{
|
{
|
||||||
|
aliens.clear();
|
||||||
QDomNodeList alelems = doc->elementsByTagName("alien");
|
QDomNodeList alelems = doc->elementsByTagName("alien");
|
||||||
for (int i=0; i<alelems.size(); i++)
|
for (int i=0; i<alelems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -169,6 +379,7 @@ void Loader::readAliens()
|
|||||||
al.imgType = nm.namedItem("imageType").nodeValue().toInt();
|
al.imgType = nm.namedItem("imageType").nodeValue().toInt();
|
||||||
al.regeneration = nm.namedItem("regeneration").nodeValue().toFloat();
|
al.regeneration = nm.namedItem("regeneration").nodeValue().toFloat();
|
||||||
al.score = nm.namedItem("score").nodeValue().toInt();
|
al.score = nm.namedItem("score").nodeValue().toInt();
|
||||||
|
al.isFlying = (nm.namedItem("flying").nodeValue() == "true");
|
||||||
aliens.insert(al.id,al);
|
aliens.insert(al.id,al);
|
||||||
qDebug() << tr("Alien %1 id=%2 health=%3 speed=%4 prise=%5 imgType=%6 armor=%7 regeneration=%8 score=%10").arg(al.name).arg(al.id).arg(al.health).arg(al.speed).arg(al.prise).arg(al.imgType).arg(al.armor).arg(al.regeneration).arg(al.score);
|
qDebug() << tr("Alien %1 id=%2 health=%3 speed=%4 prise=%5 imgType=%6 armor=%7 regeneration=%8 score=%10").arg(al.name).arg(al.id).arg(al.health).arg(al.speed).arg(al.prise).arg(al.imgType).arg(al.armor).arg(al.regeneration).arg(al.score);
|
||||||
}
|
}
|
||||||
@@ -180,6 +391,7 @@ void Loader::readAliens()
|
|||||||
|
|
||||||
void Loader::readWaves()
|
void Loader::readWaves()
|
||||||
{
|
{
|
||||||
|
waves.clear();
|
||||||
QDomNodeList welems = doc->elementsByTagName("wave");
|
QDomNodeList welems = doc->elementsByTagName("wave");
|
||||||
for (int i=0; i<welems.size(); i++)
|
for (int i=0; i<welems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -200,6 +412,7 @@ void Loader::readWaves()
|
|||||||
|
|
||||||
void Loader::readWaveParts()
|
void Loader::readWaveParts()
|
||||||
{
|
{
|
||||||
|
waveParts.clear();
|
||||||
QDomNodeList wpelems = doc->elementsByTagName("wavePart");
|
QDomNodeList wpelems = doc->elementsByTagName("wavePart");
|
||||||
for (int i=0; i<wpelems.size(); i++)
|
for (int i=0; i<wpelems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -233,6 +446,7 @@ void Loader::readWaveParts()
|
|||||||
|
|
||||||
void Loader::readChains()
|
void Loader::readChains()
|
||||||
{
|
{
|
||||||
|
chains.clear();
|
||||||
QDomNodeList celems = doc->elementsByTagName("chain");
|
QDomNodeList celems = doc->elementsByTagName("chain");
|
||||||
for (int i=0; i<celems.size(); i++)
|
for (int i=0; i<celems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -280,6 +494,7 @@ void Loader::readChains()
|
|||||||
|
|
||||||
void Loader::readLevWaves()
|
void Loader::readLevWaves()
|
||||||
{
|
{
|
||||||
|
levWaves.clear();
|
||||||
QDomNodeList lwelems = doc->elementsByTagName("waveOnLevel");
|
QDomNodeList lwelems = doc->elementsByTagName("waveOnLevel");
|
||||||
for (int i=0; i<lwelems.size(); i++)
|
for (int i=0; i<lwelems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -312,6 +527,7 @@ void Loader::readLevWaves()
|
|||||||
|
|
||||||
void Loader::readLevTowers()
|
void Loader::readLevTowers()
|
||||||
{
|
{
|
||||||
|
levTowers.clear();
|
||||||
QDomNodeList ltelems = doc->elementsByTagName("towerOnLevel");
|
QDomNodeList ltelems = doc->elementsByTagName("towerOnLevel");
|
||||||
for (int i=0; i<ltelems.size(); i++)
|
for (int i=0; i<ltelems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -344,6 +560,7 @@ void Loader::readLevTowers()
|
|||||||
|
|
||||||
void Loader::readLevels()
|
void Loader::readLevels()
|
||||||
{
|
{
|
||||||
|
levels.clear();
|
||||||
QDomNodeList lelems = doc->elementsByTagName("level");
|
QDomNodeList lelems = doc->elementsByTagName("level");
|
||||||
for (int i=0; i<lelems.size(); i++)
|
for (int i=0; i<lelems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -373,6 +590,7 @@ void Loader::readLevels()
|
|||||||
|
|
||||||
void Loader::readTriggers()
|
void Loader::readTriggers()
|
||||||
{
|
{
|
||||||
|
triggers.clear();
|
||||||
QString str;
|
QString str;
|
||||||
QDomNodeList trelems = doc->elementsByTagName("trigger");
|
QDomNodeList trelems = doc->elementsByTagName("trigger");
|
||||||
for (int i=0; i<trelems.size(); i++)
|
for (int i=0; i<trelems.size(); i++)
|
||||||
@@ -388,7 +606,7 @@ void Loader::readTriggers()
|
|||||||
trig.count = nm.namedItem("count").nodeValue().toInt();
|
trig.count = nm.namedItem("count").nodeValue().toInt();
|
||||||
trig.timer = nm.namedItem("timer").nodeValue().toInt();
|
trig.timer = nm.namedItem("timer").nodeValue().toInt();
|
||||||
trig.chance = nm.namedItem("chance").nodeValue().toInt();
|
trig.chance = nm.namedItem("chance").nodeValue().toInt();
|
||||||
if (!(trig.chance>1)) trig.chance = 100;
|
if (!(trig.chance>0)) trig.chance = 100;
|
||||||
str = nm.namedItem("delParent").nodeValue();
|
str = nm.namedItem("delParent").nodeValue();
|
||||||
trig.delParent = (str == "true");
|
trig.delParent = (str == "true");
|
||||||
str = nm.namedItem("type").nodeValue();
|
str = nm.namedItem("type").nodeValue();
|
||||||
@@ -418,6 +636,7 @@ void Loader::readTriggers()
|
|||||||
|
|
||||||
void Loader::readSplashes()
|
void Loader::readSplashes()
|
||||||
{
|
{
|
||||||
|
splashes.clear();
|
||||||
QString str;
|
QString str;
|
||||||
QDomNodeList selems = doc->elementsByTagName("splash");
|
QDomNodeList selems = doc->elementsByTagName("splash");
|
||||||
for (int i=0; i<selems.size(); i++)
|
for (int i=0; i<selems.size(); i++)
|
||||||
@@ -443,6 +662,7 @@ void Loader::readSplashes()
|
|||||||
|
|
||||||
void Loader::readTowers()
|
void Loader::readTowers()
|
||||||
{
|
{
|
||||||
|
towers.clear();
|
||||||
QDomNodeList twelems = doc->elementsByTagName("tower");
|
QDomNodeList twelems = doc->elementsByTagName("tower");
|
||||||
for (int i=0; i<twelems.size(); i++)
|
for (int i=0; i<twelems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -481,6 +701,7 @@ void Loader::readTowers()
|
|||||||
|
|
||||||
void Loader::readMaps()
|
void Loader::readMaps()
|
||||||
{
|
{
|
||||||
|
maps.clear();
|
||||||
QDomNodeList melems = doc->elementsByTagName("map");
|
QDomNodeList melems = doc->elementsByTagName("map");
|
||||||
for (int i=0; i<melems.size(); i++)
|
for (int i=0; i<melems.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -503,7 +724,7 @@ void Loader::readMaps()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Loader::validate()
|
void Loader::validate(QString filename)
|
||||||
{
|
{
|
||||||
QFile sfile("schema.xml");
|
QFile sfile("schema.xml");
|
||||||
if (!sfile.open(QIODevice::ReadOnly))
|
if (!sfile.open(QIODevice::ReadOnly))
|
||||||
@@ -512,9 +733,9 @@ void Loader::validate()
|
|||||||
if (!schema.load(&sfile))
|
if (!schema.load(&sfile))
|
||||||
qFatal("Error parsing schema.xml");
|
qFatal("Error parsing schema.xml");
|
||||||
QXmlSchemaValidator sval(schema);
|
QXmlSchemaValidator sval(schema);
|
||||||
QFile dfile("data.xml");
|
QFile dfile(filename);
|
||||||
if (!dfile.open(QIODevice::ReadOnly))
|
if (!dfile.open(QIODevice::ReadOnly))
|
||||||
qFatal("No file data.xml found!");
|
qFatal("ERROR File not found!");
|
||||||
if (!sval.validate(&dfile))
|
if (!sval.validate(&dfile))
|
||||||
qFatal("Validation failure!");
|
qFatal("Validation failure!");
|
||||||
else
|
else
|
||||||
|
|||||||
25
loader.h
25
loader.h
@@ -156,16 +156,10 @@ class Loader : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit Loader(QObject *parent = 0);
|
explicit Loader(QObject *parent = 0);
|
||||||
void create();
|
//void create();
|
||||||
void reload();
|
void save(QString filename);
|
||||||
Game_Data * loadlevel();
|
void load(QString filename);
|
||||||
signals:
|
Game_Data * loadlevel(int id);
|
||||||
|
|
||||||
public slots:
|
|
||||||
|
|
||||||
private:
|
|
||||||
QDomDocument * doc;
|
|
||||||
QFile * file;
|
|
||||||
|
|
||||||
QHash <int,tbAlien> aliens;
|
QHash <int,tbAlien> aliens;
|
||||||
QHash <int,tbMap> maps;
|
QHash <int,tbMap> maps;
|
||||||
@@ -181,6 +175,14 @@ private:
|
|||||||
QMultiHash <int,tbTowerOnLevel> levTowers;
|
QMultiHash <int,tbTowerOnLevel> levTowers;
|
||||||
QMultiHash <int,tbUpgrade> upgrades;
|
QMultiHash <int,tbUpgrade> upgrades;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
private:
|
||||||
|
QDomDocument * doc;
|
||||||
|
QFile * file;
|
||||||
|
|
||||||
void readAliens();
|
void readAliens();
|
||||||
void readMaps();
|
void readMaps();
|
||||||
void readLevels();
|
void readLevels();
|
||||||
@@ -195,8 +197,7 @@ private:
|
|||||||
void readWaveParts();
|
void readWaveParts();
|
||||||
void readUpgrades();
|
void readUpgrades();
|
||||||
|
|
||||||
void validate();
|
void validate(QString filename);
|
||||||
void load();
|
|
||||||
QString CreateMapExample();
|
QString CreateMapExample();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
12
schema.xml
12
schema.xml
@@ -95,6 +95,7 @@
|
|||||||
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
||||||
<xsd:attribute name="armor" type="xsd:float" use="optional"/>
|
<xsd:attribute name="armor" type="xsd:float" use="optional"/>
|
||||||
<xsd:attribute name="regeneration" type="xsd:float" use="optional"/>
|
<xsd:attribute name="regeneration" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="flying" type="xsd:boolean" use="optional"/>
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
|
|
||||||
<xsd:complexType name="splashType">
|
<xsd:complexType name="splashType">
|
||||||
@@ -168,6 +169,16 @@
|
|||||||
<xsd:attribute name="expRequired" type="xsd:float" use="required"/>
|
<xsd:attribute name="expRequired" type="xsd:float" use="required"/>
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="upgradeType">
|
||||||
|
<xsd:attribute name="tower" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="trigger" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
<xsd:attribute name="cost" type="xsd:positiveInteger" use="required"/>
|
||||||
|
<xsd:attribute name="radius" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="reload" type="xsd:positiveInteger" use="optional"/>
|
||||||
|
<xsd:attribute name="damage" type="xsd:float" use="optional"/>
|
||||||
|
<xsd:attribute name="damageRadius" type="xsd:float" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
<xsd:complexType name="wavePartType">
|
<xsd:complexType name="wavePartType">
|
||||||
<xsd:attribute name="alien" type="xsd:positiveInteger" use="required"/>
|
<xsd:attribute name="alien" type="xsd:positiveInteger" use="required"/>
|
||||||
<xsd:attribute name="wave" type="xsd:positiveInteger" use="required"/>
|
<xsd:attribute name="wave" type="xsd:positiveInteger" use="required"/>
|
||||||
@@ -203,6 +214,7 @@
|
|||||||
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||||
<xsd:attribute name="map" type="xsd:nonNegativeInteger" use="required"/>
|
<xsd:attribute name="map" type="xsd:nonNegativeInteger" use="required"/>
|
||||||
|
<xsd:attribute name="score" type="xsd:positiveInteger" use="required"/>
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
|
|
||||||
</xsd:schema>
|
</xsd:schema>
|
||||||
|
|||||||
254
settreader.cpp
254
settreader.cpp
@@ -1,254 +0,0 @@
|
|||||||
#include <settreader.h>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
|
|
||||||
SettingsReader::SettingsReader(const QString & fname) {
|
|
||||||
isFile = true;
|
|
||||||
file = new QFile(fname);
|
|
||||||
file->open(QIODevice::ReadWrite);
|
|
||||||
stream = new QTextStream(file);
|
|
||||||
parse();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SettingsReader::SettingsReader(QString * string) {
|
|
||||||
isFile = false;
|
|
||||||
str = string;
|
|
||||||
stream = new QTextStream(string);
|
|
||||||
parse();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SettingsReader::~SettingsReader() {
|
|
||||||
settname.clear();
|
|
||||||
settval.clear();
|
|
||||||
settcom.clear();
|
|
||||||
setttab.clear();
|
|
||||||
settlines.clear();
|
|
||||||
setttype.clear();
|
|
||||||
all.clear();
|
|
||||||
stream->setDevice(0);
|
|
||||||
delete stream;
|
|
||||||
if (isFile) {
|
|
||||||
file->close();
|
|
||||||
delete file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QString SettingsReader::getValue(QString vname, QString def, bool * exist) {
|
|
||||||
for (int i = 0; i < settname.size(); i++) {
|
|
||||||
if (settname.at(i) == vname) {
|
|
||||||
if (exist != 0) *exist = true;
|
|
||||||
return settval.at(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (exist != 0) *exist = false;
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::addLine(const QString & name, const QString & value, const QString & type) {
|
|
||||||
if (setttab.size() > 0 && all.size() > 0) *stream << setttab.at(setttab.size() - 1) << name << " = " << value << " #" << type << endl;
|
|
||||||
else *stream << name << " = " << value << " #" << type << endl;
|
|
||||||
settname.append(name);
|
|
||||||
settval.append(value);
|
|
||||||
settcom.append("");
|
|
||||||
setttype.append(type);
|
|
||||||
if (setttab.size() > 0) setttab.append(setttab.at(setttab.size() - 1));
|
|
||||||
else setttab.append(" ");
|
|
||||||
settlines.push_back(all.size());
|
|
||||||
all.append(name + " = " + value + " #" + type);
|
|
||||||
stream->flush();
|
|
||||||
if (isFile) file->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::insertLine(int number, const QString & name, const QString & value, const QString & type) {
|
|
||||||
if (number >= settname.size()) {
|
|
||||||
addLine(name, value, type);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
settname.insert(number, name);
|
|
||||||
settval.insert(number, value);
|
|
||||||
settcom.insert(number, "");
|
|
||||||
setttab.insert(number, setttab.at(number));
|
|
||||||
setttype.insert(number, type);
|
|
||||||
settlines.insert(number, settlines.at(number));
|
|
||||||
for (int i = number + 1; i < settlines.size(); i++) settlines[i]++;
|
|
||||||
all.insert(settlines.at(number), name + " = " + value + " #" + type);
|
|
||||||
stream->flush();
|
|
||||||
if (isFile) file->flush();
|
|
||||||
writeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int SettingsReader::numValues() {
|
|
||||||
return settval.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QString SettingsReader::getValue(int number) {
|
|
||||||
return settval.at(number);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QString SettingsReader::getName(int number) {
|
|
||||||
return settname.at(number);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QString SettingsReader::getComment(int number) {
|
|
||||||
return settcom.at(number);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
char SettingsReader::getType(int number) {
|
|
||||||
return setttype.at(number)[0].cell();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int SettingsReader::getNumber(const QString & name) {
|
|
||||||
for (int i = 0; i < settname.size(); i++) {
|
|
||||||
if (settname.at(i) == name) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::setValue(int number, const QString & value, bool write) {
|
|
||||||
QString tmp = settname.at(number) + " = " + value + " #" + setttype.at(number) + " " + settcom.at(number);
|
|
||||||
settval.replace(number, value);
|
|
||||||
all.replace(settlines[number], tmp);
|
|
||||||
if (write) writeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::setValue(const QString & name, const QString & value, bool write) {
|
|
||||||
int number = getNumber(name);
|
|
||||||
if (number == -1) return;
|
|
||||||
QString tmp = settname.at(number) + " = " + value + " #" + setttype.at(number) + " " + settcom.at(number);
|
|
||||||
settval.replace(number, value);
|
|
||||||
all.replace(settlines[number], tmp);
|
|
||||||
if (write) writeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::setName(int number, const QString & name) {
|
|
||||||
QString tmp = name + " = " + settval.at(number) + " #" + setttype.at(number) + " " + settcom.at(number);
|
|
||||||
settname.replace(number, name);
|
|
||||||
all.replace(settlines[number], tmp);
|
|
||||||
writeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::setType(int number, const QString & type) {
|
|
||||||
QString tmp = settname.at(number) + " = " + settval.at(number) + " #" + type + " " + settcom.at(number);
|
|
||||||
setttype.replace(number, type);
|
|
||||||
all.replace(settlines[number], tmp);
|
|
||||||
writeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::setComment(int number, const QString & comment) {
|
|
||||||
QString tmp = settname.at(number) + " = " + settval.at(number) + " #" + setttype.at(number) + " " + comment;
|
|
||||||
settcom.replace(number, comment);
|
|
||||||
all.replace(settlines[number], tmp);
|
|
||||||
writeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::deleteLine(const QString & name) {
|
|
||||||
bool exist = false;
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < settname.size(); i++) {
|
|
||||||
if (settname.at(i) == name) {
|
|
||||||
exist = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!exist) return;
|
|
||||||
deleteLine(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::deleteLine(int number) {
|
|
||||||
settname.remove(number);
|
|
||||||
settval.remove(number);
|
|
||||||
settcom.remove(number);
|
|
||||||
setttab.remove(number);
|
|
||||||
setttype.remove(number);
|
|
||||||
all.remove(settlines[number]);
|
|
||||||
for (int i = number; i < settlines.size(); i++) settlines[i]--;
|
|
||||||
settlines.remove(number);
|
|
||||||
writeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::writeAll() {
|
|
||||||
if (isFile) file->resize(0);
|
|
||||||
else *str = "";
|
|
||||||
stream->seek(0);
|
|
||||||
int c = 0;
|
|
||||||
for (int i = 0; i < all.size(); i++) {
|
|
||||||
if (c < settlines.size() && c < setttab.size()) {
|
|
||||||
if (settlines[c] == i) {
|
|
||||||
*stream << setttab.at(c);
|
|
||||||
c++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*stream << all.at(i) << endl;
|
|
||||||
}
|
|
||||||
if (isFile) file->flush();
|
|
||||||
readAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::readAll() {
|
|
||||||
settname.clear();
|
|
||||||
settval.clear();
|
|
||||||
settcom.clear();
|
|
||||||
setttab.clear();
|
|
||||||
settlines.clear();
|
|
||||||
setttype.clear();
|
|
||||||
all.clear();
|
|
||||||
if (isFile) file->flush();
|
|
||||||
parse();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SettingsReader::parse() {
|
|
||||||
QString str, tab, comm;
|
|
||||||
int ind, sind;
|
|
||||||
stream->seek(0);
|
|
||||||
lines = 0;
|
|
||||||
if (isFile) if (!file->exists()) return;
|
|
||||||
while (!stream->atEnd()) {
|
|
||||||
str = stream->readLine();
|
|
||||||
tab = str.left(str.indexOf(str.trimmed().left(1)));
|
|
||||||
str = str.trimmed();
|
|
||||||
all.append(str);
|
|
||||||
ind = str.indexOf('=');
|
|
||||||
if ((ind > 0) && !(str.left(1) == "#")) {
|
|
||||||
sind = str.indexOf('#');
|
|
||||||
if (sind > 0) {
|
|
||||||
comm = str.right(str.length() - sind - 1).trimmed();
|
|
||||||
setttype.append(comm.left(1));
|
|
||||||
comm = comm.right(comm.length() - 1).trimmed();
|
|
||||||
settcom.append(comm);
|
|
||||||
str.truncate(sind);
|
|
||||||
} else {
|
|
||||||
setttype.append("s");
|
|
||||||
settcom.append("");
|
|
||||||
}
|
|
||||||
settname.append((str.left(ind)).trimmed());
|
|
||||||
settval.append((str.right(str.length() - ind - 1)).trimmed());
|
|
||||||
setttab.append(tab);
|
|
||||||
settlines.push_back(lines);
|
|
||||||
}
|
|
||||||
lines++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
54
settreader.h
54
settreader.h
@@ -1,54 +0,0 @@
|
|||||||
#ifndef __SETT_READER_H__
|
|
||||||
#define __SETT_READER_H__
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QTextStream>
|
|
||||||
#include <QStringList>
|
|
||||||
#include <QVector>
|
|
||||||
#include <QFile>
|
|
||||||
|
|
||||||
class SettingsReader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
SettingsReader(const QString & fname);
|
|
||||||
SettingsReader(QString * string);
|
|
||||||
~SettingsReader();
|
|
||||||
|
|
||||||
QString getValue(QString vname, QString def = "", bool * exist = 0);
|
|
||||||
QString getValue(int number);
|
|
||||||
QString getName(int number);
|
|
||||||
QString getComment(int number);
|
|
||||||
char getType(int number);
|
|
||||||
int getNumber(const QString & name);
|
|
||||||
void setValue(int number, const QString & value, bool write = true);
|
|
||||||
void setValue(const QString & name, const QString & value, bool write = true);
|
|
||||||
void setName(int number, const QString & name);
|
|
||||||
void setType(int number, const QString & type);
|
|
||||||
void setComment(int number, const QString & comment);
|
|
||||||
int numValues();
|
|
||||||
void addLine(const QString & name, const QString & value, const QString & type = "s");
|
|
||||||
void insertLine(int number, const QString & name, const QString & value, const QString & type = "s");
|
|
||||||
void deleteLine(const QString & name);
|
|
||||||
void deleteLine(int number);
|
|
||||||
void readAll();
|
|
||||||
void writeAll();
|
|
||||||
|
|
||||||
private:
|
|
||||||
void parse();
|
|
||||||
|
|
||||||
bool isFile;
|
|
||||||
int lines;
|
|
||||||
QFile * file;
|
|
||||||
QString * str;
|
|
||||||
QTextStream * stream;
|
|
||||||
QVector<QString> settname;
|
|
||||||
QVector<QString> settval;
|
|
||||||
QVector<QString> settcom;
|
|
||||||
QVector<QString> setttab;
|
|
||||||
QVector<QString> setttype;
|
|
||||||
QVector<QString> all;
|
|
||||||
QVector<int> settlines;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
BIN
settreader.o
Normal file
BIN
settreader.o
Normal file
Binary file not shown.
Reference in New Issue
Block a user