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);
|
||||
//addata = new Game_Data(admap);
|
||||
adloader = new Loader();
|
||||
addata = adloader->loadlevel(1);
|
||||
if (addata != 0) qDebug("Sucsess");
|
||||
else qDebug("Error");
|
||||
//admap->load();
|
||||
//adload->create();
|
||||
//adload->readAliens();
|
||||
|
||||
BIN
aliendefender
Executable file
BIN
aliendefender
Executable file
Binary file not shown.
@@ -160,7 +160,7 @@
|
||||
<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-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">DESKTOP_SESSION=gnome</value>
|
||||
<value type="QString">DISPLAY=:0.0</value>
|
||||
@@ -168,7 +168,7 @@
|
||||
<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-UECX54</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>
|
||||
@@ -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">PWD=/home/andrey</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">SPEECHD_PORT=6561</value>
|
||||
<value type="QString">SSH_AGENT_PID=1178</value>
|
||||
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-UECX54/ssh</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-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_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>
|
||||
<value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
|
||||
<valuelist key="abstractProcess.arguments" type="QVariantList">
|
||||
|
||||
@@ -128,9 +128,8 @@ struct SplashType
|
||||
|
||||
struct WaveType
|
||||
{
|
||||
int Id;
|
||||
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 prise;
|
||||
};
|
||||
|
||||
7
data.xml
7
data.xml
@@ -2,6 +2,7 @@
|
||||
<!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>
|
||||
@@ -11,6 +12,7 @@
|
||||
<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"/>
|
||||
@@ -20,10 +22,15 @@
|
||||
<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"/>
|
||||
|
||||
359
loader.cpp
359
loader.cpp
@@ -5,14 +5,14 @@ Loader::Loader(QObject *parent) :
|
||||
{
|
||||
doc = new QDomDocument("data");
|
||||
//create();
|
||||
load();
|
||||
//load();
|
||||
}
|
||||
|
||||
|
||||
void Loader::load()
|
||||
void Loader::load(QString filename)
|
||||
{
|
||||
validate();
|
||||
file = new QFile("data.xml");
|
||||
validate(filename);
|
||||
file = new QFile(filename);
|
||||
if (!file->open(QIODevice::ReadOnly))
|
||||
qFatal("No file data.xml found!");
|
||||
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))
|
||||
return;
|
||||
cfile.resize(0);
|
||||
QDomElement elem;
|
||||
QDomElement root = doc->createElement("ADdata");
|
||||
doc->appendChild(root);
|
||||
QDomElement child = doc->createElement("aliens");
|
||||
QDomElement root = data.createElement("ADdata");
|
||||
data.appendChild(root);
|
||||
QDomElement child = data.createElement("aliens");
|
||||
root.appendChild(child);
|
||||
elem = doc->createElement("alien");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("name","my alien");
|
||||
elem.setAttribute("speed",0.012);
|
||||
elem.setAttribute("health",100);
|
||||
elem.setAttribute("prise",0);
|
||||
elem.setAttribute("id",10);
|
||||
elem.setAttribute("imageType",1);
|
||||
elem = doc->createElement("alien");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("name","MONSTR");
|
||||
elem.setAttribute("speed",0.0099);
|
||||
elem.setAttribute("health",200);
|
||||
elem.setAttribute("prise",1);
|
||||
elem.setAttribute("id",12);
|
||||
elem.setAttribute("imageType",1);
|
||||
child = doc->createElement("towers");
|
||||
for (int i=0; i<aliens.size(); i++)
|
||||
{
|
||||
tbAlien al = aliens.values().at(i);
|
||||
elem = data.createElement("alien");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("id",al.id);
|
||||
elem.setAttribute("name",al.name);
|
||||
elem.setAttribute("health",al.health);
|
||||
if (al.armor > 0)
|
||||
elem.setAttribute("armor",al.armor);
|
||||
if (al.isFlying)
|
||||
elem.setAttribute("flying","true");
|
||||
elem.setAttribute("prise",al.prise);
|
||||
if (al.regeneration > 0)
|
||||
elem.setAttribute("regeneration",al.regeneration);
|
||||
elem.setAttribute("score",al.score);
|
||||
elem.setAttribute("speed",al.speed);
|
||||
elem.setAttribute("imageType",al.imgType);
|
||||
}
|
||||
child = data.createElement("maps");
|
||||
root.appendChild(child);
|
||||
elem = doc->createElement("tower");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("name","my tower");
|
||||
elem.setAttribute("imageType",1);
|
||||
elem.setAttribute("reload",20);
|
||||
elem.setAttribute("buildTime",100);
|
||||
elem.setAttribute("price",10);
|
||||
elem.setAttribute("radius",1.2);
|
||||
elem.setAttribute("splashType",0);
|
||||
elem.setAttribute("id",0);
|
||||
elem = doc->createElement("tower");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("name","Wall");
|
||||
elem.setAttribute("imageType",1);
|
||||
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");
|
||||
for (int i=0; i<maps.size(); i++)
|
||||
{
|
||||
tbMap map = maps.values().at(i);
|
||||
elem = data.createElement("map");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("name",map.name);
|
||||
elem.setAttribute("maxPlayers",map.maxPlayers);
|
||||
elem.setAttribute("id",map.id);
|
||||
elem.setAttribute("imageType",map.imgType);
|
||||
elem.setAttribute("width",map.size.width());
|
||||
elem.setAttribute("height",map.size.height());
|
||||
elem.setAttribute("data",QString(map.data));
|
||||
}
|
||||
child = data.createElement("waves");
|
||||
root.appendChild(child);
|
||||
elem = doc->createElement("map");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("name","Map 16x16");
|
||||
elem.setAttribute("maxPlayers","2");
|
||||
elem.setAttribute("id",1);
|
||||
elem.setAttribute("imageType",1);
|
||||
elem.setAttribute("data",CreateMapExample());
|
||||
child = doc->createElement("splashes");
|
||||
for (int i=0; i<waves.size(); i++)
|
||||
{
|
||||
tbWave w = waves.values().at(i);
|
||||
elem = data.createElement("wave");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("id",w.id);
|
||||
elem.setAttribute("prise",w.prise);
|
||||
elem.setAttribute("timeout",w.timeout);
|
||||
}
|
||||
child = data.createElement("levels");
|
||||
root.appendChild(child);
|
||||
elem = doc->createElement("splash");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("name","shot");
|
||||
elem.setAttribute("imageType",1);
|
||||
elem.setAttribute("damage",2.5);
|
||||
elem.setAttribute("speed",100);
|
||||
elem.setAttribute("autoControl","true");
|
||||
elem.setAttribute("radius",1.2);
|
||||
elem.setAttribute("id",0);
|
||||
cfile.write(doc->toByteArray());
|
||||
for (int i=0; i<levels.size(); i++)
|
||||
{
|
||||
tbLevel lev = levels.values().at(i);
|
||||
elem = data.createElement("level");
|
||||
child.appendChild(elem);
|
||||
elem.setAttribute("id",lev.id);
|
||||
elem.setAttribute("map",lev.mapId);
|
||||
elem.setAttribute("name",lev.name);
|
||||
elem.setAttribute("score",lev.score);
|
||||
}
|
||||
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();
|
||||
//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()
|
||||
{
|
||||
QVector < QVector < int > > Cells;
|
||||
@@ -154,6 +363,7 @@ QString Loader::CreateMapExample()
|
||||
|
||||
void Loader::readAliens()
|
||||
{
|
||||
aliens.clear();
|
||||
QDomNodeList alelems = doc->elementsByTagName("alien");
|
||||
for (int i=0; i<alelems.size(); i++)
|
||||
{
|
||||
@@ -169,6 +379,7 @@ void Loader::readAliens()
|
||||
al.imgType = nm.namedItem("imageType").nodeValue().toInt();
|
||||
al.regeneration = nm.namedItem("regeneration").nodeValue().toFloat();
|
||||
al.score = nm.namedItem("score").nodeValue().toInt();
|
||||
al.isFlying = (nm.namedItem("flying").nodeValue() == "true");
|
||||
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);
|
||||
}
|
||||
@@ -180,6 +391,7 @@ void Loader::readAliens()
|
||||
|
||||
void Loader::readWaves()
|
||||
{
|
||||
waves.clear();
|
||||
QDomNodeList welems = doc->elementsByTagName("wave");
|
||||
for (int i=0; i<welems.size(); i++)
|
||||
{
|
||||
@@ -200,6 +412,7 @@ void Loader::readWaves()
|
||||
|
||||
void Loader::readWaveParts()
|
||||
{
|
||||
waveParts.clear();
|
||||
QDomNodeList wpelems = doc->elementsByTagName("wavePart");
|
||||
for (int i=0; i<wpelems.size(); i++)
|
||||
{
|
||||
@@ -233,6 +446,7 @@ void Loader::readWaveParts()
|
||||
|
||||
void Loader::readChains()
|
||||
{
|
||||
chains.clear();
|
||||
QDomNodeList celems = doc->elementsByTagName("chain");
|
||||
for (int i=0; i<celems.size(); i++)
|
||||
{
|
||||
@@ -280,6 +494,7 @@ void Loader::readChains()
|
||||
|
||||
void Loader::readLevWaves()
|
||||
{
|
||||
levWaves.clear();
|
||||
QDomNodeList lwelems = doc->elementsByTagName("waveOnLevel");
|
||||
for (int i=0; i<lwelems.size(); i++)
|
||||
{
|
||||
@@ -312,6 +527,7 @@ void Loader::readLevWaves()
|
||||
|
||||
void Loader::readLevTowers()
|
||||
{
|
||||
levTowers.clear();
|
||||
QDomNodeList ltelems = doc->elementsByTagName("towerOnLevel");
|
||||
for (int i=0; i<ltelems.size(); i++)
|
||||
{
|
||||
@@ -344,6 +560,7 @@ void Loader::readLevTowers()
|
||||
|
||||
void Loader::readLevels()
|
||||
{
|
||||
levels.clear();
|
||||
QDomNodeList lelems = doc->elementsByTagName("level");
|
||||
for (int i=0; i<lelems.size(); i++)
|
||||
{
|
||||
@@ -373,6 +590,7 @@ void Loader::readLevels()
|
||||
|
||||
void Loader::readTriggers()
|
||||
{
|
||||
triggers.clear();
|
||||
QString str;
|
||||
QDomNodeList trelems = doc->elementsByTagName("trigger");
|
||||
for (int i=0; i<trelems.size(); i++)
|
||||
@@ -388,7 +606,7 @@ void Loader::readTriggers()
|
||||
trig.count = nm.namedItem("count").nodeValue().toInt();
|
||||
trig.timer = nm.namedItem("timer").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();
|
||||
trig.delParent = (str == "true");
|
||||
str = nm.namedItem("type").nodeValue();
|
||||
@@ -418,6 +636,7 @@ void Loader::readTriggers()
|
||||
|
||||
void Loader::readSplashes()
|
||||
{
|
||||
splashes.clear();
|
||||
QString str;
|
||||
QDomNodeList selems = doc->elementsByTagName("splash");
|
||||
for (int i=0; i<selems.size(); i++)
|
||||
@@ -443,6 +662,7 @@ void Loader::readSplashes()
|
||||
|
||||
void Loader::readTowers()
|
||||
{
|
||||
towers.clear();
|
||||
QDomNodeList twelems = doc->elementsByTagName("tower");
|
||||
for (int i=0; i<twelems.size(); i++)
|
||||
{
|
||||
@@ -481,6 +701,7 @@ void Loader::readTowers()
|
||||
|
||||
void Loader::readMaps()
|
||||
{
|
||||
maps.clear();
|
||||
QDomNodeList melems = doc->elementsByTagName("map");
|
||||
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");
|
||||
if (!sfile.open(QIODevice::ReadOnly))
|
||||
@@ -512,9 +733,9 @@ void Loader::validate()
|
||||
if (!schema.load(&sfile))
|
||||
qFatal("Error parsing schema.xml");
|
||||
QXmlSchemaValidator sval(schema);
|
||||
QFile dfile("data.xml");
|
||||
QFile dfile(filename);
|
||||
if (!dfile.open(QIODevice::ReadOnly))
|
||||
qFatal("No file data.xml found!");
|
||||
qFatal("ERROR File not found!");
|
||||
if (!sval.validate(&dfile))
|
||||
qFatal("Validation failure!");
|
||||
else
|
||||
|
||||
25
loader.h
25
loader.h
@@ -156,16 +156,10 @@ class Loader : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Loader(QObject *parent = 0);
|
||||
void create();
|
||||
void reload();
|
||||
Game_Data * loadlevel();
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
QDomDocument * doc;
|
||||
QFile * file;
|
||||
//void create();
|
||||
void save(QString filename);
|
||||
void load(QString filename);
|
||||
Game_Data * loadlevel(int id);
|
||||
|
||||
QHash <int,tbAlien> aliens;
|
||||
QHash <int,tbMap> maps;
|
||||
@@ -181,6 +175,14 @@ private:
|
||||
QMultiHash <int,tbTowerOnLevel> levTowers;
|
||||
QMultiHash <int,tbUpgrade> upgrades;
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
QDomDocument * doc;
|
||||
QFile * file;
|
||||
|
||||
void readAliens();
|
||||
void readMaps();
|
||||
void readLevels();
|
||||
@@ -195,8 +197,7 @@ private:
|
||||
void readWaveParts();
|
||||
void readUpgrades();
|
||||
|
||||
void validate();
|
||||
void load();
|
||||
void validate(QString filename);
|
||||
QString CreateMapExample();
|
||||
};
|
||||
|
||||
|
||||
12
schema.xml
12
schema.xml
@@ -95,6 +95,7 @@
|
||||
<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">
|
||||
@@ -168,6 +169,16 @@
|
||||
<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"/>
|
||||
@@ -203,6 +214,7 @@
|
||||
<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>
|
||||
|
||||
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