summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore21
-rw-r--r--AUTHORS63
-rw-r--r--CMakeLists.txt4
-rw-r--r--ChangeLog3
-rw-r--r--English.lproj/InfoPlist.stringsbin0 -> 204 bytes
-rw-r--r--English.lproj/SDLMain.nib/classes.nib8
-rw-r--r--English.lproj/SDLMain.nib/info.nib20
-rw-r--r--English.lproj/SDLMain.nib/objects.xib77
-rw-r--r--English.lproj/main.nib/classes.nib8
-rw-r--r--English.lproj/main.nib/info.nib20
-rw-r--r--English.lproj/main.nib/objects.xib77
-rw-r--r--INSTALL16
-rw-r--r--Info.plist30
-rw-r--r--LICENSE.rtf15
-rw-r--r--NEWS47
-rw-r--r--README5
-rw-r--r--SDLMain.nib/classes.nib8
-rw-r--r--SDLMain.nib/info.nib20
-rw-r--r--SDLMain.nib/objects.xib80
-rw-r--r--The Mana World.icnsbin0 -> 65136 bytes
-rw-r--r--aethyra.cbp314
-rwxr-xr-xautogen.sh13
-rwxr-xr-xconfigure.ac4
-rw-r--r--data/help/changes.txt68
-rw-r--r--data/help/commands.txt8
-rw-r--r--data/help/header.txt4
-rw-r--r--data/help/index.txt1
-rw-r--r--data/help/support.txt4
-rw-r--r--data/help/windows.txt15
-rw-r--r--src/CMakeLists.txt8
-rw-r--r--src/Makefile.am2
-rwxr-xr-xsrc/SDLMain.h11
-rwxr-xr-xsrc/SDLMain.m383
-rw-r--r--src/aethyra.rc3
-rw-r--r--src/animatedsprite.cpp41
-rw-r--r--src/being.cpp46
-rw-r--r--src/being.h17
-rw-r--r--src/engine.cpp6
-rw-r--r--src/equipment.h16
-rw-r--r--src/floor_item.h2
-rw-r--r--src/game.cpp15
-rw-r--r--src/gui/buddywindow.cpp83
-rw-r--r--src/gui/char_select.cpp2
-rw-r--r--src/gui/char_server.cpp10
-rw-r--r--src/gui/char_server.h3
-rw-r--r--src/gui/chat.cpp58
-rw-r--r--src/gui/equipmentwindow.cpp8
-rw-r--r--src/gui/equipmentwindow.h3
-rw-r--r--src/gui/gui.cpp2
-rw-r--r--src/gui/inventorywindow.cpp4
-rw-r--r--src/gui/itemcontainer.cpp27
-rw-r--r--src/gui/itemcontainer.h15
-rw-r--r--src/gui/itemshortcutcontainer.cpp4
-rw-r--r--src/gui/minimap.cpp4
-rw-r--r--src/gui/newskill.cpp193
-rw-r--r--src/gui/npc_text.cpp1
-rw-r--r--src/gui/npclistdialog.h6
-rw-r--r--src/gui/setup_video.cpp11
-rw-r--r--src/gui/skill.cpp8
-rw-r--r--src/gui/skill.h1
-rw-r--r--src/gui/status.h4
-rw-r--r--src/gui/table_model.h6
-rw-r--r--src/gui/updatewindow.cpp22
-rw-r--r--src/gui/viewport.cpp9
-rw-r--r--src/gui/window.cpp1
-rw-r--r--src/inventory.cpp7
-rw-r--r--src/inventory.h7
-rw-r--r--src/joystick.cpp2
-rw-r--r--src/localplayer.cpp5
-rw-r--r--src/log.h4
-rw-r--r--src/logindata.h2
-rw-r--r--src/main.cpp35
-rw-r--r--src/map.cpp52
-rw-r--r--src/monster.cpp9
-rw-r--r--src/monster.h6
-rw-r--r--src/net/beinghandler.cpp24
-rw-r--r--src/net/buysellhandler.cpp2
-rw-r--r--src/net/charserverhandler.cpp2
-rw-r--r--src/net/equipmenthandler.cpp3
-rw-r--r--src/net/loginhandler.cpp12
-rw-r--r--src/net/loginhandler.h5
-rw-r--r--src/net/network.h6
-rw-r--r--src/net/playerhandler.cpp3
-rw-r--r--src/net/protocol.h1
-rw-r--r--src/net/tradehandler.cpp4
-rw-r--r--src/npc.cpp4
-rw-r--r--src/particlecontainer.cpp177
-rw-r--r--src/particlecontainer.h125
-rw-r--r--src/player.cpp1
-rw-r--r--src/player_relations.cpp6
-rw-r--r--src/resources/colordb.cpp9
-rw-r--r--src/resources/imageset.h6
-rw-r--r--src/resources/mapreader.cpp69
-rw-r--r--src/text.h45
-rw-r--r--src/tileset.h2
-rw-r--r--src/utils/fastsqrt.h48
-rw-r--r--src/winver.h2
-rw-r--r--themanaworld.xcodeproj/garfield.mode11329
-rw-r--r--themanaworld.xcodeproj/garfield.mode1v31407
-rw-r--r--themanaworld.xcodeproj/garfield.pbxuser925
-rw-r--r--themanaworld.xcodeproj/project.pbxproj1722
-rw-r--r--tools/tmxcopy/Makefile18
-rw-r--r--tools/tmxcopy/base64.cpp1
-rw-r--r--tools/tmxcopy/base64.h1
-rw-r--r--tools/tmxcopy/map.cpp2
-rw-r--r--tools/tmxcopy/tmxcopy.cbp110
-rw-r--r--tools/tmxcopy/tostring.h2
-rw-r--r--tools/tmxcopy/xmlutils.cpp1
-rw-r--r--tools/tmxcopy/xmlutils.h1
109 files changed, 7740 insertions, 452 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..4f353fe4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,21 @@
+# files created by autoreconf
+Makefile.in
+aclocal.m4
+autom4te.cache
+config.h.in
+configure
+depcomp
+install-sh
+missing
+
+# files created by configure
+Makefile
+config.h
+config.log
+config.status
+src/.deps
+stamp-h1
+
+# files created during build
+*.o
+src/tmw
diff --git a/AUTHORS b/AUTHORS
index a9d7cb5e..34618b84 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,3 +1,4 @@
+<<<<<<< HEAD:AUTHORS
---------------------------
Aethyra Dev Team
---------------------------
@@ -69,3 +70,65 @@ The Mana World Dev Team
SimEdw (network code)
Sull (hosting CVS and related services)
Vlady (several items)
+=======
+---------------------------------
+-- The Mana World Contributors --
+---------------------------------
+
+ This file lists all contributors up to the current release. Check the wiki
+ for the currently active development team.
+
+== Contributors to client/server development ==
+
+Aaron Marks <nymacro gmail.com>
+Alexander Baldeck (Shura) <alexander archlinux.org>
+Andrej Sinicyn <andrej4000 gmail.com>
+Björn Steinbrink (Doener) <b.steinbrink gmx.de>
+Bjørn Lindeijer <bjorn lindeijer.nl>
+Cedric Borgese (moi1392) <cedric.borgese gmail.com>
+David Athay <ko2fan gmail.com>
+Dennis Friis <peavey placid.dk>
+Douglas Boffey <dougaboffey netscape.net>
+Duane Bailey <nayryeliab gmail.com>
+Eugenio Favalli <elvenprogrammer gmail.com>
+Eric Scrivner <zenogais gmail.com>
+Fate <fate.tmw googlemail.com>
+Fredrik Reveny <chetic gmail.com>
+Guillaume Melquiond (Silene) <guillaume.melquiond gmail.com>
+Jan-Fabian Humann (Mra) <malastare gmx.net>
+José Ávila <linux javila.net>
+Kiyoshi Kyokai <kiyoshi.kyokai gmail.com>
+Lloyd Bryant <lloyd_bryant netzero.net>
+Marcel W. Wysocki <maci satgnu.org>
+Mateusz Kaduk (Usiu) <mateusz.kaduk gmail.com>
+Matthias Hartmann <hartmann.matthias gmail.com>
+Philipp Sehmisch (Crush) <tmw crushnet.org>
+Rogier Polak <rogier.l.a.polak gmail.com>
+Simon Edwardsson <simon crossnet.se>
+Yohann Ferreira <bertram cegetel.net>
+
+== Contributors to game content ==
+
+Clef
+Gnulia
+Frode Lindeijer (Modanung) <f.lindeijer gmail.com>
+Jared Adams <jaxad0127 gmail.com>
+Joni Orponen (Rotonen) <joni.orponen gmail.com>
+Krzysztof Daszuta <irukard gmail.com>
+Magick
+Neko-mon
+Neorice
+Pajarico Guaje <pajarico users.sourceforge.net>
+Vlady
+Ryan Voss (Talaroc) <arashi86 gmail.com>
+Scott Ellis <quiche_on_a_leash hotmail.co.uk>
+Tatjana
+Ti Sing Hao
+
+== Other contributors ==
+
+Jean-Francois Lampron <sull.kf gmail.com>
+Rodney Dawes <dobey novell.com>
+Ultramichy
+Zuzanna K. Filutowska <platyna users.sourceforge.net>
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:AUTHORS
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7ac379de..afc6ab69 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,10 @@
PROJECT(AETHYRA)
+<<<<<<< HEAD:CMakeLists.txt
SET(VERSION 0.0.27)
+=======
+SET(VERSION 0.0.26)
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:CMakeLists.txt
# where to look for cmake modules
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules)
diff --git a/ChangeLog b/ChangeLog
index 712bac17..dc6d534d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+<<<<<<< HEAD:ChangeLog
2008-11-01 Bjørn Lindeijer <bjorn@lindeijer.nl>
* src/openglgraphics.h, src/openglgraphics.cpp: Made an option around
@@ -6142,3 +6143,5 @@
window a shorter.
* data/graphics/images/login_wallpaper.png: New login wallpaper by
Momotaro.
+=======
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:ChangeLog
diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings
new file mode 100644
index 00000000..7080cf94
--- /dev/null
+++ b/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/English.lproj/SDLMain.nib/classes.nib b/English.lproj/SDLMain.nib/classes.nib
new file mode 100644
index 00000000..c4b887e7
--- /dev/null
+++ b/English.lproj/SDLMain.nib/classes.nib
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBVersion</key>
+ <string>1</string>
+</dict>
+</plist>
diff --git a/English.lproj/SDLMain.nib/info.nib b/English.lproj/SDLMain.nib/info.nib
new file mode 100644
index 00000000..0411a4a5
--- /dev/null
+++ b/English.lproj/SDLMain.nib/info.nib
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBFramework Version</key>
+ <string>670</string>
+ <key>IBLastKnownRelativeProjectPath</key>
+ <string>../themanaworld.xcodeproj</string>
+ <key>IBOldestOS</key>
+ <integer>5</integer>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>29</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>9F33</string>
+ <key>targetFramework</key>
+ <string>IBCarbonFramework</string>
+</dict>
+</plist>
diff --git a/English.lproj/SDLMain.nib/objects.xib b/English.lproj/SDLMain.nib/objects.xib
new file mode 100644
index 00000000..6d0c83db
--- /dev/null
+++ b/English.lproj/SDLMain.nib/objects.xib
@@ -0,0 +1,77 @@
+<?xml version="1.0" standalone="yes"?>
+<object class="NSIBObjectData">
+ <object name="rootObject" class="NSCustomObject" id="1">
+ </object>
+ <array count="8" name="allObjects">
+ <object class="IBCarbonMenuItem" id="229">
+ <string name="title">Quit</string>
+ <string name="keyEquivalent">q</string>
+ <boolean name="notPreviousAlternate">TRUE</boolean>
+ <ostype name="command">quit</ostype>
+ </object>
+ <object class="IBCarbonWindow" id="166">
+ <boolean name="receiveUpdates">FALSE</boolean>
+ <boolean name="liveResize">TRUE</boolean>
+ <boolean name="compositing">TRUE</boolean>
+ <boolean name="isConstrained">FALSE</boolean>
+ <string name="title">Window</string>
+ <object name="rootControl" class="IBCarbonRootControl" id="167">
+ <string name="viewFrame">0 0 480 360 </string>
+ <string name="bounds">0 0 360 480 </string>
+ </object>
+ <string name="windowRect">204 300 564 780 </string>
+ <string name="ScreenRectAtEncodeTime">0 0 768 1024 </string>
+ </object>
+ <object class="IBCarbonMenu" id="184">
+ <string name="title">themanaworld</string>
+ <string name="name">_NSAppleMenu</string>
+ <array count="3" name="items">
+ <object class="IBCarbonMenuItem" id="187">
+ <string name="title">About themanaworld</string>
+ <int name="keyEquivalentModifier">0</int>
+ <ostype name="command">abou</ostype>
+ </object>
+ <object class="IBCarbonMenuItem" id="230">
+ <boolean name="separator">TRUE</boolean>
+ <boolean name="disabled">TRUE</boolean>
+ <boolean name="notPreviousAlternate">TRUE</boolean>
+ </object>
+ <reference idRef="229"/>
+ </array>
+ </object>
+ <reference idRef="230"/>
+ <object class="IBCarbonMenu" id="29">
+ <string name="title">main</string>
+ <string name="name">_NSMainMenu</string>
+ <array count="1" name="items">
+ <object class="IBCarbonMenuItem" id="185">
+ <string name="title">themanaworld</string>
+ <reference name="submenu" idRef="184"/>
+ </object>
+ </array>
+ </object>
+ <reference idRef="167"/>
+ <reference idRef="187"/>
+ <reference idRef="185"/>
+ </array>
+ <array count="8" name="allParents">
+ <reference idRef="184"/>
+ <reference idRef="1"/>
+ <reference idRef="185"/>
+ <reference idRef="184"/>
+ <reference idRef="1"/>
+ <reference idRef="166"/>
+ <reference idRef="184"/>
+ <reference idRef="29"/>
+ </array>
+ <dictionary count="3" name="nameTable">
+ <string>File&apos;s Owner</string>
+ <reference idRef="1"/>
+ <string>MainWindow</string>
+ <reference idRef="166"/>
+ <string>MenuBar</string>
+ <reference idRef="29"/>
+ </dictionary>
+ <string name="targetFramework">IBCarbonFramework</string>
+ <unsigned_int name="nextObjectID">231</unsigned_int>
+</object>
diff --git a/English.lproj/main.nib/classes.nib b/English.lproj/main.nib/classes.nib
new file mode 100644
index 00000000..c4b887e7
--- /dev/null
+++ b/English.lproj/main.nib/classes.nib
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBVersion</key>
+ <string>1</string>
+</dict>
+</plist>
diff --git a/English.lproj/main.nib/info.nib b/English.lproj/main.nib/info.nib
new file mode 100644
index 00000000..0411a4a5
--- /dev/null
+++ b/English.lproj/main.nib/info.nib
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBFramework Version</key>
+ <string>670</string>
+ <key>IBLastKnownRelativeProjectPath</key>
+ <string>../themanaworld.xcodeproj</string>
+ <key>IBOldestOS</key>
+ <integer>5</integer>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>29</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>9F33</string>
+ <key>targetFramework</key>
+ <string>IBCarbonFramework</string>
+</dict>
+</plist>
diff --git a/English.lproj/main.nib/objects.xib b/English.lproj/main.nib/objects.xib
new file mode 100644
index 00000000..6d0c83db
--- /dev/null
+++ b/English.lproj/main.nib/objects.xib
@@ -0,0 +1,77 @@
+<?xml version="1.0" standalone="yes"?>
+<object class="NSIBObjectData">
+ <object name="rootObject" class="NSCustomObject" id="1">
+ </object>
+ <array count="8" name="allObjects">
+ <object class="IBCarbonMenuItem" id="229">
+ <string name="title">Quit</string>
+ <string name="keyEquivalent">q</string>
+ <boolean name="notPreviousAlternate">TRUE</boolean>
+ <ostype name="command">quit</ostype>
+ </object>
+ <object class="IBCarbonWindow" id="166">
+ <boolean name="receiveUpdates">FALSE</boolean>
+ <boolean name="liveResize">TRUE</boolean>
+ <boolean name="compositing">TRUE</boolean>
+ <boolean name="isConstrained">FALSE</boolean>
+ <string name="title">Window</string>
+ <object name="rootControl" class="IBCarbonRootControl" id="167">
+ <string name="viewFrame">0 0 480 360 </string>
+ <string name="bounds">0 0 360 480 </string>
+ </object>
+ <string name="windowRect">204 300 564 780 </string>
+ <string name="ScreenRectAtEncodeTime">0 0 768 1024 </string>
+ </object>
+ <object class="IBCarbonMenu" id="184">
+ <string name="title">themanaworld</string>
+ <string name="name">_NSAppleMenu</string>
+ <array count="3" name="items">
+ <object class="IBCarbonMenuItem" id="187">
+ <string name="title">About themanaworld</string>
+ <int name="keyEquivalentModifier">0</int>
+ <ostype name="command">abou</ostype>
+ </object>
+ <object class="IBCarbonMenuItem" id="230">
+ <boolean name="separator">TRUE</boolean>
+ <boolean name="disabled">TRUE</boolean>
+ <boolean name="notPreviousAlternate">TRUE</boolean>
+ </object>
+ <reference idRef="229"/>
+ </array>
+ </object>
+ <reference idRef="230"/>
+ <object class="IBCarbonMenu" id="29">
+ <string name="title">main</string>
+ <string name="name">_NSMainMenu</string>
+ <array count="1" name="items">
+ <object class="IBCarbonMenuItem" id="185">
+ <string name="title">themanaworld</string>
+ <reference name="submenu" idRef="184"/>
+ </object>
+ </array>
+ </object>
+ <reference idRef="167"/>
+ <reference idRef="187"/>
+ <reference idRef="185"/>
+ </array>
+ <array count="8" name="allParents">
+ <reference idRef="184"/>
+ <reference idRef="1"/>
+ <reference idRef="185"/>
+ <reference idRef="184"/>
+ <reference idRef="1"/>
+ <reference idRef="166"/>
+ <reference idRef="184"/>
+ <reference idRef="29"/>
+ </array>
+ <dictionary count="3" name="nameTable">
+ <string>File&apos;s Owner</string>
+ <reference idRef="1"/>
+ <string>MainWindow</string>
+ <reference idRef="166"/>
+ <string>MenuBar</string>
+ <reference idRef="29"/>
+ </dictionary>
+ <string name="targetFramework">IBCarbonFramework</string>
+ <unsigned_int name="nextObjectID">231</unsigned_int>
+</object>
diff --git a/INSTALL b/INSTALL
index 5e94f0ff..4124002d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -5,7 +5,11 @@ Homepage: http://www.aethyra.com/
IRC: irc.freenode.net / #aethyra
1) Requirements
+<<<<<<< HEAD:INSTALL
2) Compiling Aethyra
+=======
+2) Compiling And Installing The Mana World
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:INSTALL
3) Notes
@@ -26,8 +30,12 @@ a source release. To get Aethyra to compile, you need a compiler
* zlib 1.2.x http://www.gzip.org/zlib/
* libcurl http://curl.haxx.se/libcurl/
+<<<<<<< HEAD:INSTALL
If you checked Aethyra out from Subversion you will also need these tools to
compile:
+=======
+If you've cloned the Git repository, you will also need these tools to compile:
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:INSTALL
* GNU automake 1.9 http://www.gnu.org/software/automake/
* GNU autoconf http://www.gnu.org/software/autoconf/
@@ -40,7 +48,15 @@ you to figure this out.
===============================================
1) Go to the directory you have extracted the source to.
+<<<<<<< HEAD:INSTALL
2) If you checked out from SVN, run "./autobuild.sh" to install the client.
+=======
+2) If you've cloned the Git repository, run "autoreconf -i" to generate
+ configure and install any missing auxiliary files.
+3) Run "./configure"
+4) Run "make"
+5) Run "make install" as root
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:INSTALL
It should have installed Aethyra on your system now, and you can
run it with "aethyra". By default all files are installed to /usr/local, you can
diff --git a/Info.plist b/Info.plist
new file mode 100644
index 00000000..36084dd8
--- /dev/null
+++ b/Info.plist
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>The Mana World</string>
+ <key>CFBundleIconFile</key>
+ <string>The Mana World.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>TMW</string>
+ <key>CFBundleName</key>
+ <string>The Mana World</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>tmw.</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Copyright 2008 The Mana World Development Team</string>
+ <key>NSMainNibFile</key>
+ <string>SDLMain</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+ <key>NSPrincipleClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/LICENSE.rtf b/LICENSE.rtf
new file mode 100644
index 00000000..2592d38a
--- /dev/null
+++ b/LICENSE.rtf
@@ -0,0 +1,15 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\paperw11900\paperh16840\margl1440\margr1440\vieww9480\viewh8400\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 The Mana World is released under the GPL - more info at www.themanaworld.org\
+\
+SDL is used under the LGPL - more info at www.libsdl.org\
+\
+SDL_image, SDL_ttf, SDL_mixer and SDL_net are used under the LGPL - more info at www.libsdl.org/libs\
+\
+physfs is used under the BSD license - more info at http://icculus.org/physfs/\
+\
+zlib is used under the BSD license - more info at www.zlib.net} \ No newline at end of file
diff --git a/NEWS b/NEWS
index d45eb89b..52dbf700 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,52 @@
+0.0.27 (...)
+- Added support for showing map name above minimap
+- Added showing how long the ban is when banned
+- Added --data parameter for developers
+- Added particle effect for critical hits
+- Added support for dynamic skill names and hair colors
+- Added ability to add equipment to the shortcut bar
+- Added ability to change configuration during login phase (from Aethyra)
+- Mouse cursor will now hide when not used for some time
+- Inventory window now displays amount of slots used
+- Center minimap on player when it is larger than the minimap window
+- Extended particle emitters with properties that can change over time
+- Extended the GUI font to support more characters
+- Only require a restart to switch to full screen with OpenGL on Windows
+- Make sure news and update file list aren't cached (from Aethyra)
+- Made NPC dialogs resizable (from Aethyra)
+- Fixed visibility of trade window on startup
+- Fixed a client input freeze when closing NPC script from server
+- Fixed dead players to lie on the ground instead of standing around
+- Fixed shortcuts being activated when trade window was visible
+- Fixed a crash when equipment window is open
+- Fixed money value on failing to buy (from Aethyra)
+
+0.0.26 (29 August 2008)
+- Added support for a newer version of eAthena server
+- Added support for showing custom being effects
+- Added new features to the particle engine
+- Position names and chat such that there is no overlap, when possible
+- Fixed a crash when loading a corrupt map that has too much layer data
+
+0.0.25 (27 July 2008)
+- Added support for whispering to other players
+- Added ability to ignore other players
+- Added command line argument for specifying the update host (-H)
+- Added support for receiving the update host from the server
+- Added support for displaying a shield sprite
+- Added shortcut window, allowing you to quickly access inventory items
+- Added message when gaining money from trade or quest
+- Added support for an arbitrary number of map layers
+- Added support for basing one sprite definition on another
+- Added the possibility to assign particle effects to NPCs
+- Added remembering whether windows are visible or not
+- Updated to work with Guichan 0.8.x
+- Improved accuracy of monster targeting with the mouse
+- Page up and page down will now scroll the chat window
- Item icons are now loaded on demand and unloaded when no longer used
- Fixed display of critical hits
+- Fixed multi-channel image dyeing
+- Fixed updating of money display after buying
0.0.24.1 (7 April 2008)
- Added /clear command to clear chat window
diff --git a/README b/README
index 012e1683..e5053509 100644
--- a/README
+++ b/README
@@ -1,7 +1,11 @@
AETHYRA
===================
+<<<<<<< HEAD:README
Version: 0.0.25 Date: 9/16/2008
+=======
+ Version: 0.0.26 Date: 29/8/2008
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:README
Development team:
- See AUTHORS file for a list
@@ -46,6 +50,7 @@ Use arrow keys to move around. Other keys:
- F5 toggle skills window
- F6 toggle minimap
- F7 toggle chat window
+- F8 toggle shortcut window
- F9 show setup window
- F10 toggle debug window
- Alt + 0-9 show emotions / usuable at skill level 2.
diff --git a/SDLMain.nib/classes.nib b/SDLMain.nib/classes.nib
new file mode 100644
index 00000000..c4b887e7
--- /dev/null
+++ b/SDLMain.nib/classes.nib
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBVersion</key>
+ <string>1</string>
+</dict>
+</plist>
diff --git a/SDLMain.nib/info.nib b/SDLMain.nib/info.nib
new file mode 100644
index 00000000..a753dd52
--- /dev/null
+++ b/SDLMain.nib/info.nib
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBFramework Version</key>
+ <string>670</string>
+ <key>IBLastKnownRelativeProjectPath</key>
+ <string>themanaworld.xcodeproj</string>
+ <key>IBOldestOS</key>
+ <integer>5</integer>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>29</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>9F33</string>
+ <key>targetFramework</key>
+ <string>IBCarbonFramework</string>
+</dict>
+</plist>
diff --git a/SDLMain.nib/objects.xib b/SDLMain.nib/objects.xib
new file mode 100644
index 00000000..f4adb409
--- /dev/null
+++ b/SDLMain.nib/objects.xib
@@ -0,0 +1,80 @@
+<?xml version="1.0" standalone="yes"?>
+<object class="NSIBObjectData">
+ <object name="rootObject" class="NSCustomObject" id="1">
+ </object>
+ <array count="8" name="allObjects">
+ <object class="IBCarbonMenu" id="184">
+ <string name="title">themanaworld</string>
+ <string name="name">_NSAppleMenu</string>
+ <array count="3" name="items">
+ <object class="IBCarbonMenuItem" id="187">
+ <string name="title">About themanaworld</string>
+ <int name="keyEquivalentModifier">0</int>
+ <ostype name="command">abou</ostype>
+ </object>
+ <object class="IBCarbonMenuItem" id="230">
+ <boolean name="separator">TRUE</boolean>
+ <boolean name="disabled">TRUE</boolean>
+ <boolean name="notPreviousAlternate">TRUE</boolean>
+ </object>
+ <object class="IBCarbonMenuItem" id="229">
+ <string name="title">Quit</string>
+ <string name="keyEquivalent">q</string>
+ <boolean name="notPreviousAlternate">TRUE</boolean>
+ <ostype name="command">quit</ostype>
+ </object>
+ </array>
+ </object>
+ <object class="IBCarbonWindow" id="166">
+ <boolean name="receiveUpdates">FALSE</boolean>
+ <boolean name="hasCloseBox">FALSE</boolean>
+ <boolean name="hasHorizontalZoom">FALSE</boolean>
+ <boolean name="isResizable">FALSE</boolean>
+ <boolean name="hasVerticalZoom">FALSE</boolean>
+ <boolean name="compositing">TRUE</boolean>
+ <boolean name="isConstrained">FALSE</boolean>
+ <string name="title">Window</string>
+ <object name="rootControl" class="IBCarbonRootControl" id="167">
+ <string name="viewFrame">0 0 800 600 </string>
+ <string name="bounds">0 0 600 800 </string>
+ </object>
+ <string name="windowRect">154 408 754 1208 </string>
+ <string name="ScreenRectAtEncodeTime">64 0 1028 1680 </string>
+ </object>
+ <object class="IBCarbonMenuItem" id="185">
+ <string name="title">The Mana World</string>
+ <reference name="submenu" idRef="184"/>
+ </object>
+ <reference idRef="167"/>
+ <reference idRef="187"/>
+ <object class="IBCarbonMenu" id="29">
+ <string name="title">main</string>
+ <string name="name">_NSMainMenu</string>
+ <array count="1" name="items">
+ <reference idRef="185"/>
+ </array>
+ </object>
+ <reference idRef="229"/>
+ <reference idRef="230"/>
+ </array>
+ <array count="8" name="allParents">
+ <reference idRef="185"/>
+ <reference idRef="1"/>
+ <reference idRef="29"/>
+ <reference idRef="166"/>
+ <reference idRef="184"/>
+ <reference idRef="1"/>
+ <reference idRef="184"/>
+ <reference idRef="184"/>
+ </array>
+ <dictionary count="3" name="nameTable">
+ <string>File&apos;s Owner</string>
+ <reference idRef="1"/>
+ <string>MainWindow</string>
+ <reference idRef="166"/>
+ <string>MenuBar</string>
+ <reference idRef="29"/>
+ </dictionary>
+ <string name="targetFramework">IBCarbonFramework</string>
+ <unsigned_int name="nextObjectID">231</unsigned_int>
+</object>
diff --git a/The Mana World.icns b/The Mana World.icns
new file mode 100644
index 00000000..7230a099
--- /dev/null
+++ b/The Mana World.icns
Binary files differ
diff --git a/aethyra.cbp b/aethyra.cbp
index bcd0398b..efc735c9 100644
--- a/aethyra.cbp
+++ b/aethyra.cbp
@@ -44,7 +44,7 @@
<Add option="-Wall" />
<Add option="-g" />
<Add option="`sdl-config --cflags`" />
- <Add directory="/usr/local/include/libxml2" />
+ <Add directory="\usr\local\include\libxml2" />
</Compiler>
<Linker>
<Add option="`sdl-config --libs`" />
@@ -66,8 +66,9 @@
<Add alias="All" targets="default;" />
</VirtualTargets>
<Compiler>
- <Add directory="../../../../../../mingw/include/SDL" />
+ <Add directory="..\..\..\..\..\..\mingw\include\SDL" />
</Compiler>
+<<<<<<< HEAD:aethyra.cbp
<Unit filename="src/animatedsprite.cpp" />
<Unit filename="src/animatedsprite.h" />
<Unit filename="src/animationparticle.cpp" />
@@ -373,7 +374,316 @@
<Unit filename="src/utils/xml.h" />
<Unit filename="src/winver.h">
<Option target="unix" />
+=======
+ <Unit filename="src\animatedsprite.cpp" />
+ <Unit filename="src\animatedsprite.h" />
+ <Unit filename="src\animationparticle.cpp" />
+ <Unit filename="src\animationparticle.h" />
+ <Unit filename="src\being.cpp" />
+ <Unit filename="src\being.h" />
+ <Unit filename="src\beingmanager.cpp" />
+ <Unit filename="src\beingmanager.h" />
+ <Unit filename="src\configlistener.h" />
+ <Unit filename="src\configuration.cpp" />
+ <Unit filename="src\configuration.h" />
+ <Unit filename="src\engine.cpp" />
+ <Unit filename="src\engine.h" />
+ <Unit filename="src\equipment.cpp" />
+ <Unit filename="src\equipment.h" />
+ <Unit filename="src\floor_item.cpp" />
+ <Unit filename="src\floor_item.h" />
+ <Unit filename="src\flooritemmanager.cpp" />
+ <Unit filename="src\flooritemmanager.h" />
+ <Unit filename="src\game.cpp" />
+ <Unit filename="src\game.h" />
+ <Unit filename="src\graphics.cpp" />
+ <Unit filename="src\graphics.h" />
+ <Unit filename="src\gui\box.cpp" />
+ <Unit filename="src\gui\box.h" />
+ <Unit filename="src\gui\browserbox.cpp" />
+ <Unit filename="src\gui\browserbox.h" />
+ <Unit filename="src\gui\buddywindow.cpp" />
+ <Unit filename="src\gui\buddywindow.h" />
+ <Unit filename="src\gui\button.cpp" />
+ <Unit filename="src\gui\button.h" />
+ <Unit filename="src\gui\buy.cpp" />
+ <Unit filename="src\gui\buy.h" />
+ <Unit filename="src\gui\buysell.cpp" />
+ <Unit filename="src\gui\buysell.h" />
+ <Unit filename="src\gui\char_select.cpp" />
+ <Unit filename="src\gui\char_select.h" />
+ <Unit filename="src\gui\char_server.cpp" />
+ <Unit filename="src\gui\char_server.h" />
+ <Unit filename="src\gui\chargedialog.cpp" />
+ <Unit filename="src\gui\chargedialog.h" />
+ <Unit filename="src\gui\chat.cpp" />
+ <Unit filename="src\gui\chat.h" />
+ <Unit filename="src\gui\chatinput.cpp" />
+ <Unit filename="src\gui\chatinput.h" />
+ <Unit filename="src\gui\checkbox.cpp" />
+ <Unit filename="src\gui\checkbox.h" />
+ <Unit filename="src\gui\confirm_dialog.cpp" />
+ <Unit filename="src\gui\confirm_dialog.h" />
+ <Unit filename="src\gui\connection.cpp" />
+ <Unit filename="src\gui\connection.h" />
+ <Unit filename="src\gui\debugwindow.cpp" />
+ <Unit filename="src\gui\debugwindow.h" />
+ <Unit filename="src\gui\equipmentwindow.cpp" />
+ <Unit filename="src\gui\equipmentwindow.h" />
+ <Unit filename="src\gui\focushandler.cpp" />
+ <Unit filename="src\gui\focushandler.h" />
+ <Unit filename="src\gui\gccontainer.cpp" />
+ <Unit filename="src\gui\gccontainer.h" />
+ <Unit filename="src\gui\gui.cpp" />
+ <Unit filename="src\gui\gui.h" />
+ <Unit filename="src\gui\hbox.cpp" />
+ <Unit filename="src\gui\hbox.h" />
+ <Unit filename="src\gui\help.cpp" />
+ <Unit filename="src\gui\help.h" />
+ <Unit filename="src\gui\inttextbox.cpp" />
+ <Unit filename="src\gui\inttextbox.h" />
+ <Unit filename="src\gui\inventorywindow.cpp" />
+ <Unit filename="src\gui\inventorywindow.h" />
+ <Unit filename="src\gui\item_amount.cpp" />
+ <Unit filename="src\gui\item_amount.h" />
+ <Unit filename="src\gui\itemcontainer.cpp" />
+ <Unit filename="src\gui\itemcontainer.h" />
+ <Unit filename="src\gui\itemshortcutcontainer.cpp" />
+ <Unit filename="src\gui\itemshortcutcontainer.h" />
+ <Unit filename="src\gui\itemshortcutwindow.cpp" />
+ <Unit filename="src\gui\itemshortcutwindow.h" />
+ <Unit filename="src\gui\linkhandler.h" />
+ <Unit filename="src\gui\listbox.cpp" />
+ <Unit filename="src\gui\listbox.h" />
+ <Unit filename="src\gui\login.cpp" />
+ <Unit filename="src\gui\login.h" />
+ <Unit filename="src\gui\menuwindow.cpp" />
+ <Unit filename="src\gui\menuwindow.h" />
+ <Unit filename="src\gui\minimap.cpp" />
+ <Unit filename="src\gui\minimap.h" />
+ <Unit filename="src\gui\ministatus.cpp" />
+ <Unit filename="src\gui\ministatus.h" />
+ <Unit filename="src\gui\newskill.cpp" />
+ <Unit filename="src\gui\newskill.h" />
+ <Unit filename="src\gui\npc_text.cpp" />
+ <Unit filename="src\gui\npc_text.h" />
+ <Unit filename="src\gui\npclistdialog.cpp" />
+ <Unit filename="src\gui\npclistdialog.h" />
+ <Unit filename="src\gui\ok_dialog.cpp" />
+ <Unit filename="src\gui\ok_dialog.h" />
+ <Unit filename="src\gui\passwordfield.cpp" />
+ <Unit filename="src\gui\passwordfield.h" />
+ <Unit filename="src\gui\playerbox.cpp" />
+ <Unit filename="src\gui\playerbox.h" />
+ <Unit filename="src\gui\popupmenu.cpp" />
+ <Unit filename="src\gui\popupmenu.h" />
+ <Unit filename="src\gui\progressbar.cpp" />
+ <Unit filename="src\gui\progressbar.h" />
+ <Unit filename="src\gui\radiobutton.cpp" />
+ <Unit filename="src\gui\radiobutton.h" />
+ <Unit filename="src\gui\register.cpp" />
+ <Unit filename="src\gui\register.h" />
+ <Unit filename="src\gui\scrollarea.cpp" />
+ <Unit filename="src\gui\scrollarea.h" />
+ <Unit filename="src\gui\selectionlistener.h" />
+ <Unit filename="src\gui\sell.cpp" />
+ <Unit filename="src\gui\sell.h" />
+ <Unit filename="src\gui\setup.cpp" />
+ <Unit filename="src\gui\setup.h" />
+ <Unit filename="src\gui\setup_audio.cpp" />
+ <Unit filename="src\gui\setup_audio.h" />
+ <Unit filename="src\gui\setup_joystick.cpp" />
+ <Unit filename="src\gui\setup_joystick.h" />
+ <Unit filename="src\gui\setup_keyboard.cpp" />
+ <Unit filename="src\gui\setup_keyboard.h" />
+ <Unit filename="src\gui\setup_players.cpp" />
+ <Unit filename="src\gui\setup_players.h" />
+ <Unit filename="src\gui\setup_video.cpp" />
+ <Unit filename="src\gui\setup_video.h" />
+ <Unit filename="src\gui\setuptab.h" />
+ <Unit filename="src\gui\shop.cpp" />
+ <Unit filename="src\gui\shop.h" />
+ <Unit filename="src\gui\shoplistbox.cpp" />
+ <Unit filename="src\gui\shoplistbox.h" />
+ <Unit filename="src\gui\skill.cpp" />
+ <Unit filename="src\gui\skill.h" />
+ <Unit filename="src\gui\slider.cpp" />
+ <Unit filename="src\gui\slider.h" />
+ <Unit filename="src\gui\status.cpp" />
+ <Unit filename="src\gui\status.h" />
+ <Unit filename="src\gui\tabbedcontainer.cpp" />
+ <Unit filename="src\gui\tabbedcontainer.h" />
+ <Unit filename="src\gui\table.cpp" />
+ <Unit filename="src\gui\table.h" />
+ <Unit filename="src\gui\table_model.cpp" />
+ <Unit filename="src\gui\table_model.h" />
+ <Unit filename="src\gui\textbox.cpp" />
+ <Unit filename="src\gui\textbox.h" />
+ <Unit filename="src\gui\textfield.cpp" />
+ <Unit filename="src\gui\textfield.h" />
+ <Unit filename="src\gui\trade.cpp" />
+ <Unit filename="src\gui\trade.h" />
+ <Unit filename="src\gui\updatewindow.cpp" />
+ <Unit filename="src\gui\updatewindow.h" />
+ <Unit filename="src\gui\vbox.cpp" />
+ <Unit filename="src\gui\vbox.h" />
+ <Unit filename="src\gui\viewport.cpp" />
+ <Unit filename="src\gui\viewport.h" />
+ <Unit filename="src\gui\widgets\resizegrip.cpp" />
+ <Unit filename="src\gui\widgets\resizegrip.h" />
+ <Unit filename="src\gui\window.cpp" />
+ <Unit filename="src\gui\window.h" />
+ <Unit filename="src\gui\windowcontainer.cpp" />
+ <Unit filename="src\gui\windowcontainer.h" />
+ <Unit filename="src\guichanfwd.h" />
+ <Unit filename="src\imageparticle.cpp" />
+ <Unit filename="src\imageparticle.h" />
+ <Unit filename="src\inventory.cpp" />
+ <Unit filename="src\inventory.h" />
+ <Unit filename="src\item.cpp" />
+ <Unit filename="src\item.h" />
+ <Unit filename="src\itemshortcut.cpp" />
+ <Unit filename="src\itemshortcut.h" />
+ <Unit filename="src\joystick.cpp" />
+ <Unit filename="src\joystick.h" />
+ <Unit filename="src\keyboardconfig.cpp" />
+ <Unit filename="src\keyboardconfig.h" />
+ <Unit filename="src\localplayer.cpp" />
+ <Unit filename="src\localplayer.h" />
+ <Unit filename="src\lockedarray.h" />
+ <Unit filename="src\log.cpp" />
+ <Unit filename="src\log.h" />
+ <Unit filename="src\logindata.h" />
+ <Unit filename="src\main.cpp" />
+ <Unit filename="src\main.h" />
+ <Unit filename="src\map.cpp" />
+ <Unit filename="src\map.h" />
+ <Unit filename="src\monster.cpp" />
+ <Unit filename="src\monster.h" />
+ <Unit filename="src\net\beinghandler.cpp" />
+ <Unit filename="src\net\beinghandler.h" />
+ <Unit filename="src\net\buysellhandler.cpp" />
+ <Unit filename="src\net\buysellhandler.h" />
+ <Unit filename="src\net\charserverhandler.cpp" />
+ <Unit filename="src\net\charserverhandler.h" />
+ <Unit filename="src\net\chathandler.cpp" />
+ <Unit filename="src\net\chathandler.h" />
+ <Unit filename="src\net\equipmenthandler.cpp" />
+ <Unit filename="src\net\equipmenthandler.h" />
+ <Unit filename="src\net\inventoryhandler.cpp" />
+ <Unit filename="src\net\inventoryhandler.h" />
+ <Unit filename="src\net\itemhandler.cpp" />
+ <Unit filename="src\net\itemhandler.h" />
+ <Unit filename="src\net\loginhandler.cpp" />
+ <Unit filename="src\net\loginhandler.h" />
+ <Unit filename="src\net\maploginhandler.cpp" />
+ <Unit filename="src\net\maploginhandler.h" />
+ <Unit filename="src\net\messagehandler.cpp" />
+ <Unit filename="src\net\messagehandler.h" />
+ <Unit filename="src\net\messagein.cpp" />
+ <Unit filename="src\net\messagein.h" />
+ <Unit filename="src\net\messageout.cpp" />
+ <Unit filename="src\net\messageout.h" />
+ <Unit filename="src\net\network.cpp" />
+ <Unit filename="src\net\network.h" />
+ <Unit filename="src\net\npchandler.cpp" />
+ <Unit filename="src\net\npchandler.h" />
+ <Unit filename="src\net\packet.h" />
+ <Unit filename="src\net\playerhandler.cpp" />
+ <Unit filename="src\net\playerhandler.h" />
+ <Unit filename="src\net\protocol.cpp" />
+ <Unit filename="src\net\protocol.h" />
+ <Unit filename="src\net\skillhandler.cpp" />
+ <Unit filename="src\net\skillhandler.h" />
+ <Unit filename="src\net\tradehandler.cpp" />
+ <Unit filename="src\net\tradehandler.h" />
+ <Unit filename="src\npc.cpp" />
+ <Unit filename="src\npc.h" />
+ <Unit filename="src\openglgraphics.cpp" />
+ <Unit filename="src\openglgraphics.h" />
+ <Unit filename="src\particle.cpp" />
+ <Unit filename="src\particle.h" />
+ <Unit filename="src\particleemitter.cpp" />
+ <Unit filename="src\particleemitter.h" />
+ <Unit filename="src\particleemitterprop.h" />
+ <Unit filename="src\player.cpp" />
+ <Unit filename="src\player.h" />
+ <Unit filename="src\player_relations.cpp" />
+ <Unit filename="src\player_relations.h" />
+ <Unit filename="src\properties.h" />
+ <Unit filename="src\resources\action.cpp" />
+ <Unit filename="src\resources\action.h" />
+ <Unit filename="src\resources\ambientoverlay.cpp" />
+ <Unit filename="src\resources\ambientoverlay.h" />
+ <Unit filename="src\resources\animation.cpp" />
+ <Unit filename="src\resources\animation.h" />
+ <Unit filename="src\resources\buddylist.cpp" />
+ <Unit filename="src\resources\buddylist.h" />
+ <Unit filename="src\resources\dye.cpp" />
+ <Unit filename="src\resources\dye.h" />
+ <Unit filename="src\resources\image.cpp" />
+ <Unit filename="src\resources\image.h" />
+ <Unit filename="src\resources\imageloader.cpp" />
+ <Unit filename="src\resources\imageloader.h" />
+ <Unit filename="src\resources\imageset.cpp" />
+ <Unit filename="src\resources\imageset.h" />
+ <Unit filename="src\resources\imagewriter.cpp" />
+ <Unit filename="src\resources\imagewriter.h" />
+ <Unit filename="src\resources\itemdb.cpp" />
+ <Unit filename="src\resources\itemdb.h" />
+ <Unit filename="src\resources\iteminfo.cpp" />
+ <Unit filename="src\resources\iteminfo.h" />
+ <Unit filename="src\resources\mapreader.cpp" />
+ <Unit filename="src\resources\mapreader.h" />
+ <Unit filename="src\resources\monsterdb.cpp" />
+ <Unit filename="src\resources\monsterdb.h" />
+ <Unit filename="src\resources\monsterinfo.cpp" />
+ <Unit filename="src\resources\monsterinfo.h" />
+ <Unit filename="src\resources\music.cpp" />
+ <Unit filename="src\resources\music.h" />
+ <Unit filename="src\resources\npcdb.cpp" />
+ <Unit filename="src\resources\npcdb.h" />
+ <Unit filename="src\resources\resource.cpp" />
+ <Unit filename="src\resources\resource.h" />
+ <Unit filename="src\resources\resourcemanager.cpp" />
+ <Unit filename="src\resources\resourcemanager.h" />
+ <Unit filename="src\resources\soundeffect.cpp" />
+ <Unit filename="src\resources\soundeffect.h" />
+ <Unit filename="src\resources\spritedef.cpp" />
+ <Unit filename="src\resources\spritedef.h" />
+ <Unit filename="src\serverinfo.h" />
+ <Unit filename="src\shopitem.cpp" />
+ <Unit filename="src\shopitem.h" />
+ <Unit filename="src\simpleanimation.cpp" />
+ <Unit filename="src\simpleanimation.h" />
+ <Unit filename="src\sound.cpp" />
+ <Unit filename="src\sound.h" />
+ <Unit filename="src\sprite.h" />
+ <Unit filename="src\text.cpp" />
+ <Unit filename="src\text.h" />
+ <Unit filename="src\textmanager.cpp" />
+ <Unit filename="src\textmanager.h" />
+ <Unit filename="src\textparticle.cpp" />
+ <Unit filename="src\textparticle.h" />
+ <Unit filename="src\tileset.h" />
+ <Unit filename="src\tmw.rc">
+ <Option compilerVar="CPP" />
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:tmw.cbp
</Unit>
+ <Unit filename="src\utils\base64.cpp" />
+ <Unit filename="src\utils\base64.h" />
+ <Unit filename="src\utils\colorconversion.cpp" />
+ <Unit filename="src\utils\colorconversion.h" />
+ <Unit filename="src\utils\dtor.h" />
+ <Unit filename="src\utils\fastsqrt.h" />
+ <Unit filename="src\utils\strprintf.cpp" />
+ <Unit filename="src\utils\strprintf.h" />
+ <Unit filename="src\utils\tostring.h" />
+ <Unit filename="src\utils\trim.h" />
+ <Unit filename="src\utils\xml.cpp" />
+ <Unit filename="src\utils\xml.h" />
+ <Unit filename="src\vector.h" />
+ <Unit filename="src\winver.h" />
<Extensions>
<code_completion />
<envvars />
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index 8f047c99..00000000
--- a/autogen.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-echo "Generating build information using aclocal, autoheader, automake and autoconf."
-echo
-
-# Regerate configuration files
-aclocal
-autoheader
-automake --gnu --add-missing --copy
-autoconf
-
-echo
-echo "Now you are ready to run ./configure"
diff --git a/configure.ac b/configure.ac
index ac227410..afcca24b 100755
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,9 @@
AC_PREREQ(2.59)
+<<<<<<< HEAD:configure.ac
AC_INIT([Aethyra], [SVN-0.0.27], [irarice@gmail.com], [aethyra])
+=======
+AC_INIT([The Mana World], [0.0.26], [elvenprogrammer@gmail.com], [tmw])
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:configure.ac
AC_CONFIG_HEADERS([config.h:config.h.in])
AC_LANG_CPLUSPLUS
diff --git a/data/help/changes.txt b/data/help/changes.txt
index 869a29ff..e679e928 100644
--- a/data/help/changes.txt
+++ b/data/help/changes.txt
@@ -3,6 +3,74 @@
##3 === RECENT CHANGES ===
+<<<<<<< HEAD:data/help/changes.txt
Go to http://gitorious.org/projects/tmw/repos/aethyra for a detailed
list of changes.
+=======
+ 0.0.26 (29 August 2008)
+ - Added support for a newer version of eAthena server
+ - Added support for showing custom being effects
+ - Added new features to the particle engine
+ - Position names and chat such that there is no overlap, when possible
+ - Fixed a crash when loading a corrupt map that has too much layer data
+
+ 0.0.25 (27 July 2008)
+ - Added support for whispering to other players
+ - Added ability to ignore other players
+ - Added command line argument for specifying the update host (-H)
+ - Added support for receiving the update host from the server
+ - Added support for displaying a shield sprite
+ - Added shortcut window, allowing you to quickly access inventory items
+ - Added message when gaining money from trade or quest
+ - Added support for an arbitrary number of map layers
+ - Added support for basing one sprite definition on another
+ - Added the possibility to assign particle effects to NPCs
+ - Added remembering whether windows are visible or not
+ - Updated to work with Guichan 0.8.x
+ - Improved accuracy of monster targeting with the mouse
+ - Page up and page down will now scroll the chat window
+ - Item icons are now loaded on demand and unloaded when no longer used
+ - Fixed display of critical hits
+ - Fixed multi-channel image dyeing
+ - Fixed updating of money display after buying
+
+ 0.0.24.1 (7 April 2008)
+ - Added /clear command to clear chat window
+ - Added ability to close quit dialog by pressing ESC
+ - Added key for targetting nearest player
+ - Added the possibility to assign particle effects to monsters
+ - Added possibility to pass through players with key controls
+ - Fixed crash on exit after connection to server was lost
+ - Fixed initialization of some variables
+ - Fixed an error with chat messages without a sender that include a colon
+ - Fixed minimap to not keep reappearing when hidden
+ - Fixed a GCC 4.3 compile error
+ - Fixed music loading from non-default location
+ - Fixed crash on trying to show out of range emoticon
+ - Updated Dev-C++ and Code::Blocks project files
+
+ 0.0.24 (24 December 2007)
+ - Added female specific hair styles
+ - Added user-definable key settings
+ - Added XP gaining notification
+ - Added close button to most windows
+ - Added support for dynamic sprite recoloring
+ - Added notification when the connection to the server is lost
+ - Updated to work with Guichan 0.7.x
+ - Mouse cursor now indicates when resize is possible
+ - Changed amount slider in buy and sell dialogs to start at 1
+ - Made weapon sprites and sounds customizable
+ - Made buy and sell dialogs resizable
+ - Merged equipment database with items database
+ - Chat window log no longer goes back forever
+ - Chat messages are trimmed (spaces are removed on both sides)
+ - Fixed segmentation fault with some OpenGL drivers
+ - Fixed updating of defense when increasing vitality
+ - Fixed a bug that prevented being-controlled particles from being deleted
+ - Fixed a crash in the particle engine related to child emitters
+ - Fixed encoding issues with user home directory
+ - Fixed a crash in equipment window on failure to load an item icon
+ - Fixed a crash on filling up your inventory
+ - Fixed item list in shops not to scroll back when selling
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:data/help/changes.txt
diff --git a/data/help/commands.txt b/data/help/commands.txt
index eaacdf02..e80c537e 100644
--- a/data/help/commands.txt
+++ b/data/help/commands.txt
@@ -17,6 +17,7 @@
##2F5##P toggle skills window
##2F6##P toggle minimap
##2F7##P toggle chat window
+ ##2F8##P toggle shortcut window
##2F9##P show setup window
##2F10##P toggle debug window
##2Alt + 0-9##P show emotions
@@ -47,11 +48,18 @@
/whisper <name> <message>
+<<<<<<< HEAD:data/help/commands.txt
This will send <message> to player <name>, if that player is logged in.
to whisper to users with spaces in there name you must incase the user name in qoutes
(e.g. /whisper "user name" <message>)
For further help type /help in the chat console.
+=======
+ This will send <message> to player <name>, if that player is logged in. If the
+ name has a space in it, put double quotes around it like this:
+
+ /whisper "<name>" <message>
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:data/help/commands.txt
##2IGNORING COMMUNICATION
diff --git a/data/help/header.txt b/data/help/header.txt
index 789e3d93..a560895c 100644
--- a/data/help/header.txt
+++ b/data/help/header.txt
@@ -2,7 +2,11 @@
##1 AETHYRA
##1 ==========================================
+<<<<<<< HEAD:data/help/header.txt
##2Version:##6 Aethyra GIT 0.0.27 ##2Date:##5 December 2008
+=======
+ ##2Version:##6 0.0.26 ##2Date:##329 August 2008
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:data/help/header.txt
##2 Website: http://www.aethyra.org
diff --git a/data/help/index.txt b/data/help/index.txt
index b0568c35..4dcc2332 100644
--- a/data/help/index.txt
+++ b/data/help/index.txt
@@ -5,6 +5,7 @@
-> @@changes|Recent Changes@@
-> @@commands|Commands@@
+ -> @@windows|Windows@@
-> @@skills|Skills@@
-> @@support|Support@@
diff --git a/data/help/support.txt b/data/help/support.txt
index 44fd08f3..819516de 100644
--- a/data/help/support.txt
+++ b/data/help/support.txt
@@ -7,7 +7,11 @@
can't find a solution to your problem, feel free to check our
Bugs/Support section of the forum:
+<<<<<<< HEAD:data/help/support.txt
##2 http://forums.aethyra.com
+=======
+##2 http://forums.themanaworld.org/viewforum.php?f=3
+>>>>>>> a7c21e6f8add37af7412449742ec55c8daa8571a:data/help/support.txt
or come visit us on our IRC channel:
diff --git a/data/help/windows.txt b/data/help/windows.txt
new file mode 100644
index 00000000..f1d0150a
--- /dev/null
+++ b/data/help/windows.txt
@@ -0,0 +1,15 @@
+ <- @@index|Back to Index@@
+
+
+##3 === WINDOWS ===
+
+##2SHORTCUT:
+
+ To add an item to the shortcut bar click on the item in the inventory window,
+ then click on the box in the shortcut-window which should be associated with
+ the item. To reorder items within the shortcut-window simply click and drag
+ them between the boxes. To remove items you simply drag them outside of the
+ window and drop them.
+
+ Currently only stackable items like food, but not weapons or clothes can be
+ used with the shortcut window.
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4e8654e6..b54c7c6c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -148,6 +148,8 @@ SET(SRCS
gui/setup_joystick.h
gui/setup_keyboard.cpp
gui/setup_keyboard.h
+ gui/setup_players.cpp
+ gui/setup_players.h
gui/setuptab.h
gui/setup_video.cpp
gui/setup_video.h
@@ -165,6 +167,10 @@ SET(SRCS
gui/status.h
gui/tabbedcontainer.cpp
gui/tabbedcontainer.h
+ gui/table.cpp
+ gui/table.h
+ gui/table_model.cpp
+ gui/table_model.h
gui/textbox.cpp
gui/textbox.h
gui/textfield.cpp
@@ -329,6 +335,8 @@ SET(SRCS
particleemitterprop.h
player.cpp
player.h
+ player_relations.cpp
+ player_relations.h
properties.h
serverinfo.h
shopitem.cpp
diff --git a/src/Makefile.am b/src/Makefile.am
index 75434d8e..507db6f8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -289,6 +289,8 @@ aethyra_SOURCES = gui/widgets/dropdown.cpp \
openglgraphics.h \
particle.cpp \
particle.h \
+ particlecontainer.cpp \
+ particlecontainer.h \
particleemitter.cpp \
particleemitter.h \
particleemitterprop.h \
diff --git a/src/SDLMain.h b/src/SDLMain.h
new file mode 100755
index 00000000..4683df57
--- /dev/null
+++ b/src/SDLMain.h
@@ -0,0 +1,11 @@
+/* SDLMain.m - main entry point for our Cocoa-ized SDL app
+ Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
+ Non-NIB-Code & other changes: Max Horn <max@quendi.de>
+
+ Feel free to customize this file to suit your needs
+*/
+
+#import <Cocoa/Cocoa.h>
+
+@interface SDLMain : NSObject
+@end
diff --git a/src/SDLMain.m b/src/SDLMain.m
new file mode 100755
index 00000000..3d02719c
--- /dev/null
+++ b/src/SDLMain.m
@@ -0,0 +1,383 @@
+/* SDLMain.m - main entry point for our Cocoa-ized SDL app
+ Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
+ Non-NIB-Code & other changes: Max Horn <max@quendi.de>
+
+ Feel free to customize this file to suit your needs
+ */
+
+#import "SDL.h"
+#import "SDLMain.h"
+#import <sys/param.h> /* for MAXPATHLEN */
+#import <unistd.h>
+
+/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
+ but the method still is there and works. To avoid warnings, we declare
+ it ourselves here. */
+@interface NSApplication(SDL_Missing_Methods)
+- (void)setAppleMenu:(NSMenu *)menu;
+@end
+
+/* Use this flag to determine whether we use SDLMain.nib or not */
+#define SDL_USE_NIB_FILE 0
+
+/* Use this flag to determine whether we use CPS (docking) or not */
+#define SDL_USE_CPS 1
+#ifdef SDL_USE_CPS
+/* Portions of CPS.h */
+typedef struct CPSProcessSerNum
+ {
+ UInt32 lo;
+ UInt32 hi;
+ } CPSProcessSerNum;
+
+extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn);
+extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
+extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn);
+
+#endif /* SDL_USE_CPS */
+
+static int gArgc;
+static char **gArgv;
+static BOOL gFinderLaunch;
+static BOOL gCalledAppMainline = FALSE;
+
+static NSString *getApplicationName(void)
+{
+ NSDictionary *dict;
+ NSString *appName = 0;
+
+ /* Determine the application name */
+ dict = (NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
+ if (dict)
+ appName = [dict objectForKey: @"CFBundleName"];
+
+ if (![appName length])
+ appName = [[NSProcessInfo processInfo] processName];
+
+ return appName;
+}
+
+#if SDL_USE_NIB_FILE
+/* A helper category for NSString */
+@interface NSString (ReplaceSubString)
+- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
+@end
+#endif
+
+@interface SDLApplication : NSApplication
+@end
+
+@implementation SDLApplication
+/* Invoked from the Quit menu item */
+- (void)terminate:(id)sender
+{
+ /* Post a SDL_QUIT event */
+ SDL_Event event;
+ event.type = SDL_QUIT;
+ SDL_PushEvent(&event);
+}
+@end
+
+/* The main class of the application, the application's delegate */
+@implementation SDLMain
+
+/* Set the working directory to the .app's parent directory */
+- (void) setupWorkingDirectory:(BOOL)shouldChdir
+{
+ if (shouldChdir)
+ {
+ char parentdir[MAXPATHLEN];
+ CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
+ CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
+ if (CFURLGetFileSystemRepresentation(url2, true, (UInt8 *)parentdir, MAXPATHLEN)) {
+ assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */
+ }
+ CFRelease(url);
+ CFRelease(url2);
+ }
+
+}
+
+#if SDL_USE_NIB_FILE
+
+/* Fix menu to contain the real app name instead of "SDL App" */
+- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
+{
+ NSRange aRange;
+ NSEnumerator *enumerator;
+ NSMenuItem *menuItem;
+
+ aRange = [[aMenu title] rangeOfString:@"SDL App"];
+ if (aRange.length != 0)
+ [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
+
+ enumerator = [[aMenu itemArray] objectEnumerator];
+ while ((menuItem = [enumerator nextObject]))
+ {
+ aRange = [[menuItem title] rangeOfString:@"SDL App"];
+ if (aRange.length != 0)
+ [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
+ if ([menuItem hasSubmenu])
+ [self fixMenu:[menuItem submenu] withAppName:appName];
+ }
+ [ aMenu sizeToFit ];
+}
+
+#else
+
+static void setApplicationMenu(void)
+{
+ /* warning: this code is very odd */
+ NSMenu *appleMenu;
+ NSMenuItem *menuItem;
+ NSString *title;
+ NSString *appName;
+
+ appName = getApplicationName();
+ appleMenu = [[NSMenu alloc] initWithTitle:@""];
+
+ /* Add menu items */
+ title = [@"About " stringByAppendingString:appName];
+ [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
+
+ [appleMenu addItem:[NSMenuItem separatorItem]];
+
+ title = [@"Hide " stringByAppendingString:appName];
+ [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"];
+
+ menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
+ [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
+
+ [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
+
+ [appleMenu addItem:[NSMenuItem separatorItem]];
+
+ title = [@"Quit " stringByAppendingString:appName];
+ [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"];
+
+
+ /* Put menu into the menubar */
+ menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
+ [menuItem setSubmenu:appleMenu];
+ [[NSApp mainMenu] addItem:menuItem];
+
+ /* Tell the application object that this is now the application menu */
+ [NSApp setAppleMenu:appleMenu];
+
+ /* Finally give up our references to the objects */
+ [appleMenu release];
+ [menuItem release];
+}
+
+/* Create a window menu */
+static void setupWindowMenu(void)
+{
+ NSMenu *windowMenu;
+ NSMenuItem *windowMenuItem;
+ NSMenuItem *menuItem;
+
+ windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
+
+ /* "Minimize" item */
+ menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"];
+ [windowMenu addItem:menuItem];
+ [menuItem release];
+
+ /* Put menu into the menubar */
+ windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
+ [windowMenuItem setSubmenu:windowMenu];
+ [[NSApp mainMenu] addItem:windowMenuItem];
+
+ /* Tell the application object that this is now the window menu */
+ [NSApp setWindowsMenu:windowMenu];
+
+ /* Finally give up our references to the objects */
+ [windowMenu release];
+ [windowMenuItem release];
+}
+
+/* Replacement for NSApplicationMain */
+static void CustomApplicationMain (int argc, char **argv)
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ SDLMain *sdlMain;
+
+ /* Ensure the application object is initialised */
+ [SDLApplication sharedApplication];
+
+#ifdef SDL_USE_CPS
+ {
+ CPSProcessSerNum PSN;
+ /* Tell the dock about us */
+ if (!CPSGetCurrentProcess(&PSN))
+ if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
+ if (!CPSSetFrontProcess(&PSN))
+ [SDLApplication sharedApplication];
+ }
+#endif /* SDL_USE_CPS */
+
+ /* Set up the menubar */
+ [NSApp setMainMenu:[[NSMenu alloc] init]];
+ setApplicationMenu();
+ setupWindowMenu();
+
+ /* Create SDLMain and make it the app delegate */
+ sdlMain = [[SDLMain alloc] init];
+ [NSApp setDelegate:sdlMain];
+
+ /* Start the main event loop */
+ [NSApp run];
+
+ [sdlMain release];
+ [pool release];
+}
+
+#endif
+
+
+/*
+ * Catch document open requests...this lets us notice files when the app
+ * was launched by double-clicking a document, or when a document was
+ * dragged/dropped on the app's icon. You need to have a
+ * CFBundleDocumentsType section in your Info.plist to get this message,
+ * apparently.
+ *
+ * Files are added to gArgv, so to the app, they'll look like command line
+ * arguments. Previously, apps launched from the finder had nothing but
+ * an argv[0].
+ *
+ * This message may be received multiple times to open several docs on launch.
+ *
+ * This message is ignored once the app's mainline has been called.
+ */
+- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
+{
+ const char *temparg;
+ size_t arglen;
+ char *arg;
+ char **newargv;
+
+ if (!gFinderLaunch) /* MacOS is passing command line args. */
+ return FALSE;
+
+ if (gCalledAppMainline) /* app has started, ignore this document. */
+ return FALSE;
+
+ temparg = [filename UTF8String];
+ arglen = SDL_strlen(temparg) + 1;
+ arg = (char *) SDL_malloc(arglen);
+ if (arg == NULL)
+ return FALSE;
+
+ newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
+ if (newargv == NULL)
+ {
+ SDL_free(arg);
+ return FALSE;
+ }
+ gArgv = newargv;
+
+ SDL_strlcpy(arg, temparg, arglen);
+ gArgv[gArgc++] = arg;
+ gArgv[gArgc] = NULL;
+ return TRUE;
+}
+
+
+/* Called when the internal event loop has just started running */
+- (void) applicationDidFinishLaunching: (NSNotification *) note
+{
+ int status;
+
+ /* Set the working directory to the .app's parent directory */
+ [self setupWorkingDirectory:gFinderLaunch];
+
+#if SDL_USE_NIB_FILE
+ /* Set the main menu to contain the real app name instead of "SDL App" */
+ [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
+#endif
+
+ /* Hand off to main application code */
+ gCalledAppMainline = TRUE;
+ status = SDL_main (gArgc, gArgv);
+
+ /* We're done, thank you for playing */
+ exit(status);
+}
+@end
+
+
+@implementation NSString (ReplaceSubString)
+
+- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
+{
+ unsigned int bufferSize;
+ unsigned int selfLen = [self length];
+ unsigned int aStringLen = [aString length];
+ unichar *buffer;
+ NSRange localRange;
+ NSString *result;
+
+ bufferSize = selfLen + aStringLen - aRange.length;
+ buffer = NSAllocateMemoryPages(bufferSize*sizeof(unichar));
+
+ /* Get first part into buffer */
+ localRange.location = 0;
+ localRange.length = aRange.location;
+ [self getCharacters:buffer range:localRange];
+
+ /* Get middle part into buffer */
+ localRange.location = 0;
+ localRange.length = aStringLen;
+ [aString getCharacters:(buffer+aRange.location) range:localRange];
+
+ /* Get last part into buffer */
+ localRange.location = aRange.location + aRange.length;
+ localRange.length = selfLen - localRange.location;
+ [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
+
+ /* Build output string */
+ result = [NSString stringWithCharacters:buffer length:bufferSize];
+
+ NSDeallocateMemoryPages(buffer, bufferSize);
+
+ return result;
+}
+
+@end
+
+
+
+#ifdef main
+# undef main
+#endif
+
+
+/* Main entry point to executable - should *not* be SDL_main! */
+int main (int argc, char **argv)
+{
+ /* Copy the arguments into a global variable */
+ /* This is passed if we are launched by double-clicking */
+ if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
+ gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
+ gArgv[0] = argv[0];
+ gArgv[1] = NULL;
+ gArgc = 1;
+ gFinderLaunch = YES;
+ } else {
+ int i;
+ gArgc = argc;
+ gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
+ for (i = 0; i <= argc; i++)
+ gArgv[i] = argv[i];
+ gFinderLaunch = NO;
+ }
+
+#if SDL_USE_NIB_FILE
+ [SDLApplication poseAsClass:[NSApplication class]];
+ NSApplicationMain (argc, argv);
+#else
+ CustomApplicationMain (argc, argv);
+#endif
+ return 0;
+}
diff --git a/src/aethyra.rc b/src/aethyra.rc
index f35c547d..d2db954f 100644
--- a/src/aethyra.rc
+++ b/src/aethyra.rc
@@ -19,5 +19,4 @@ FILETYPE VFT_APP {
VALUE "ProductVersion", PACKAGE_VERSION
}
}
-}
-
+}
diff --git a/src/animatedsprite.cpp b/src/animatedsprite.cpp
index c86c5392..ba71d0e0 100644
--- a/src/animatedsprite.cpp
+++ b/src/animatedsprite.cpp
@@ -55,7 +55,8 @@ AnimatedSprite *AnimatedSprite::load(const std::string& filename, int variant)
{
ResourceManager *resman = ResourceManager::getInstance();
SpriteDef *s = resman->getSprite(filename, variant);
- if (!s) return NULL;
+ if (!s)
+ return NULL;
AnimatedSprite *as = new AnimatedSprite(s);
s->decRef();
return as;
@@ -66,22 +67,18 @@ AnimatedSprite::~AnimatedSprite()
mSprite->decRef();
}
-void
-AnimatedSprite::reset()
+void AnimatedSprite::reset()
{
mFrameIndex = 0;
mFrameTime = 0;
mLastTime = 0;
}
-void
-AnimatedSprite::play(SpriteAction spriteAction)
+void AnimatedSprite::play(SpriteAction spriteAction)
{
Action *action = mSprite->getAction(spriteAction);
if (!action)
- {
return;
- }
mAction = action;
Animation *animation = mAction->getAnimation(mDirection);
@@ -95,20 +92,15 @@ AnimatedSprite::play(SpriteAction spriteAction)
}
}
-void
-AnimatedSprite::update(int time)
+void AnimatedSprite::update(int time)
{
// Avoid freaking out at first frame or when tick_time overflows
if (time < mLastTime || mLastTime == 0)
- {
mLastTime = time;
- }
// If not enough time has passed yet, do nothing
if (time <= mLastTime || !mAnimation)
- {
return;
- }
unsigned int dt = time - mLastTime;
mLastTime = time;
@@ -120,13 +112,10 @@ AnimatedSprite::update(int time)
}
}
-bool
-AnimatedSprite::updateCurrentAnimation(unsigned int time)
+bool AnimatedSprite::updateCurrentAnimation(unsigned int time)
{
if (!mFrame || Animation::isTerminator(*mFrame))
- {
return false;
- }
mFrameTime += time;
@@ -136,9 +125,7 @@ AnimatedSprite::updateCurrentAnimation(unsigned int time)
mFrameIndex++;
if (mFrameIndex == mAnimation->getLength())
- {
mFrameIndex = 0;
- }
mFrame = mAnimation->getFrame(mFrameIndex);
@@ -153,30 +140,24 @@ AnimatedSprite::updateCurrentAnimation(unsigned int time)
return true;
}
-bool
-AnimatedSprite::draw(Graphics* graphics, int posX, int posY) const
+bool AnimatedSprite::draw(Graphics* graphics, int posX, int posY) const
{
if (!mFrame || !mFrame->image)
- {
return false;
- }
return graphics->drawImage(mFrame->image,
posX + mFrame->offsetX,
posY + mFrame->offsetY);
}
-void
-AnimatedSprite::setDirection(SpriteDirection direction)
+void AnimatedSprite::setDirection(SpriteDirection direction)
{
if (mDirection != direction)
{
mDirection = direction;
if (!mAction)
- {
return;
- }
Animation *animation = mAction->getAnimation(mDirection);
@@ -189,14 +170,12 @@ AnimatedSprite::setDirection(SpriteDirection direction)
}
}
-int
-AnimatedSprite::getWidth() const
+int AnimatedSprite::getWidth() const
{
return mFrame ? mFrame->image->getWidth() : 0;
}
-int
-AnimatedSprite::getHeight() const
+int AnimatedSprite::getHeight() const
{
return mFrame ? mFrame->image->getHeight() : 0;
}
diff --git a/src/being.cpp b/src/being.cpp
index ded3abd8..d98af29c 100644
--- a/src/being.cpp
+++ b/src/being.cpp
@@ -49,6 +49,11 @@
#define BEING_EFFECTS_FILE "effects.xml"
+#include "utils/xml.h"
+
+#define BEING_EFFECTS_FILE "effects.xml"
+#define HAIR_FILE "hair.xml"
+
int Being::instances = 0;
int Being::mNumberOfHairstyles = 1;
ImageSet *Being::emotionSet = NULL;
@@ -77,7 +82,9 @@ Being::Being(int id, int job, Map *map):
mPx(0), mPy(0),
mSprites(VECTOREND_SPRITE, NULL),
mSpriteIDs(VECTOREND_SPRITE, 0),
- mSpriteColors(VECTOREND_SPRITE, "")
+ mSpriteColors(VECTOREND_SPRITE, ""),
+ mStatusParticleEffects(&mStunParticleEffects, false),
+ mChildParticleEffects(&mStatusParticleEffects, false)
{
setMap(map);
@@ -109,13 +116,6 @@ Being::~Being()
delete_all(mSprites);
clearPath();
- for ( std::list<Particle *>::iterator i = mChildParticleEffects.begin();
- i != mChildParticleEffects.end();
- i++)
- {
- (*i)->kill();
- }
-
setMap(NULL);
instances--;
@@ -250,12 +250,7 @@ void Being::setMap(Map *map)
void Being::controlParticle(Particle *particle)
{
- if (particle)
- {
- // The effect may not die without the beings permission or we segfault
- particle->disableAutoDelete();
- mChildParticleEffects.push_back(particle);
- }
+ mChildParticleEffects.addLocally(particle);
}
void Being::setAction(Action action)
@@ -323,7 +318,7 @@ void Being::setDirection(Uint8 direction)
for (int i = 0; i < VECTOREND_SPRITE; i++)
{
- if (mSprites[i] != NULL)
+ if (mSprites[i] != NULL)
mSprites[i]->setDirection(dir);
}
}
@@ -402,6 +397,7 @@ void Being::logic()
int oldPx = mPx;
int oldPy = mPy;
+
// Update pixel coordinates
mPx = mX * 32 + getXOffset();
mPy = mY * 32 + getYOffset();
@@ -428,24 +424,8 @@ void Being::logic()
}
}
- if (mParticleEffects)
- {
- //Update particle effects
- for (std::list<Particle *>::iterator i = mChildParticleEffects.begin();
- i != mChildParticleEffects.end();)
- {
- (*i)->setPosition((float)mPx + 16.0f, (float)mPy + 32.0f);
- if ((*i)->isExtinct())
- {
- (*i)->kill();
- i = mChildParticleEffects.erase(i);
- }
- else
- {
- i++;
- }
- }
- }
+ //Update particle effects
+ mChildParticleEffects.setPositions((float)mPx + 16.0f, (float)mPy + 32.0f);
}
void Being::draw(Graphics *graphics, int offsetX, int offsetY) const
diff --git a/src/being.h b/src/being.h
index 958e8f60..7202701a 100644
--- a/src/being.h
+++ b/src/being.h
@@ -27,10 +27,12 @@
#include <SDL_types.h>
#include <string>
#include <vector>
+#include <bitset>
#include "animatedsprite.h"
#include "effectmanager.h"
#include "map.h"
+#include "particlecontainer.h"
#include "sprite.h"
#include "gui/speechbubble.h"
@@ -38,6 +40,7 @@
#include "resources/colordb.h"
#define FIRST_IGNORE_EMOTE 14
+#define STATUS_EFFECTS 32
class AnimatedSprite;
class Equipment;
@@ -364,6 +367,12 @@ class Being : public Sprite
const std::auto_ptr<Equipment> mEquipment;
+ static int getHairColorsNr(void);
+
+ static int getHairStylesNr(void);
+
+ static std::string getHairColor(int index);
+
protected:
/**
* Sets the new path for this being.
@@ -393,6 +402,8 @@ class Being : public Sprite
bool mIsGM;
bool mParticleEffects; /**< Whether to display particles or not */
+ typedef std::bitset<STATUS_EFFECTS> StatusEffects;
+
/** Engine-related infos about weapon. */
const ItemInfo* mEquippedWeapon;
@@ -405,11 +416,15 @@ class Being : public Sprite
Uint8 mGender;
Uint32 mSpeechTime;
Sint32 mPx, mPy; /**< Pixel coordinates */
+ Uint16 mStunMode; /**< Stun mode; zero if not stunned */
+ StatusEffects mStatusEffects; /**< Bitset of active status effects */
std::vector<AnimatedSprite*> mSprites;
std::vector<int> mSpriteIDs;
std::vector<std::string> mSpriteColors;
- std::list<Particle *> mChildParticleEffects;
+ ParticleList mStunParticleEffects;
+ ParticleVector mStatusParticleEffects;
+ ParticleList mChildParticleEffects;
private:
/**
diff --git a/src/engine.cpp b/src/engine.cpp
index b51f4852..74e11336 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -114,6 +114,12 @@ void Engine::changeMap(const std::string &mapPath)
minimap->setProportion(0.5);
}
}
+ if (newMap->hasProperty("name"))
+ {
+ minimap->setCaption(newMap->getProperty("name"));
+ } else {
+ minimap->setCaption("Map");
+ }
minimap->setMapImage(mapImage);
beingManager->setMap(newMap);
particleEngine->setMap(newMap);
diff --git a/src/equipment.h b/src/equipment.h
index 2427539c..e6145d12 100644
--- a/src/equipment.h
+++ b/src/equipment.h
@@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * $Id: equipment.h 4347 2008-06-12 09:06:01Z b_lindeijer $
*/
#ifndef _TMW_EQUIPMENT_H_
@@ -45,26 +43,22 @@ class Equipment
/**
* Set equipment at the given slot.
*/
- void
- setEquipment(int index, int inventoryIndex);
+ void setEquipment(int index, int inventoryIndex);
/**
* Remove equipment from the given slot.
*/
- void
- removeEquipment(int index) { if (index >= 0 && index < EQUIPMENT_SIZE) mEquipment[index] = 0; }
+ void removeEquipment(int index) { if (index >= 0 && index < EQUIPMENT_SIZE) mEquipment[index] = 0; }
/**
- * Get the item used in the arrow slot.
+ * Returns the item used in the arrow slot.
*/
- int
- getArrows() { return mArrows; }
+ int getArrows() const { return mArrows; }
/**
* Set the item used in the arrow slot.
*/
- void
- setArrows(int arrows) {mArrows = arrows;}
+ void setArrows(int arrows) { mArrows = arrows; }
private:
int mEquipment[EQUIPMENT_SIZE];
diff --git a/src/floor_item.h b/src/floor_item.h
index 7771d935..b747310b 100644
--- a/src/floor_item.h
+++ b/src/floor_item.h
@@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * $Id: floor_item.h 4347 2008-06-12 09:06:01Z b_lindeijer $
*/
#ifndef _TMW_FLOORITEM_H_
diff --git a/src/game.cpp b/src/game.cpp
index e8ba9046..93bec013 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -68,6 +68,7 @@
#include "gui/trade.h"
#include "gui/viewport.h"
+#include "net/protocol.h"
#include "net/beinghandler.h"
#include "net/buysellhandler.h"
#include "net/chathandler.h"
@@ -81,6 +82,7 @@
#include "net/protocol.h"
#include "net/skillhandler.h"
#include "net/tradehandler.h"
+#include "net/messageout.h"
#include "resources/imagewriter.h"
@@ -489,7 +491,7 @@ void Game::handleInput()
// Keys pressed together with Alt/Meta
// Emotions and some internal gui windows
#ifndef __APPLE__
- if (event.key.keysym.mod & KMOD_ALT)
+ if (event.key.keysym.mod & KMOD_LALT)
#else
if (event.key.keysym.mod & KMOD_LMETA)
#endif
@@ -580,6 +582,7 @@ void Game::handleInput()
{
chatWindow->scroll(DEFAULT_CHAT_WINDOW_SCROLL);
used = true;
+ return;
}
break;
@@ -837,7 +840,8 @@ void Game::handleInput()
}
// Target the nearest player if 'q' is pressed
- if ( keyboard.isKeyActive(keyboard.KEY_TARGET_PLAYER) && !keyboard.isKeyActive(keyboard.KEY_TARGET) )
+ if ( keyboard.isKeyActive(keyboard.KEY_TARGET_PLAYER) &&
+ !keyboard.isKeyActive(keyboard.KEY_TARGET) )
{
Being *target = beingManager->findNearestLivingBeing(player_node, 20, Being::PLAYER);
@@ -845,7 +849,9 @@ void Game::handleInput()
}
// Target the nearest monster if 'a' pressed
- if ( keyboard.isKeyActive(keyboard.KEY_TARGET_CLOSEST) && !keyboard.isKeyActive(keyboard.KEY_TARGET) )
+ if ((keyboard.isKeyActive(keyboard.KEY_TARGET_CLOSEST) ||
+ (joystick && joystick->buttonPressed(3))) &&
+ !keyboard.isKeyActive(keyboard.KEY_TARGET))
{
Being *target = beingManager->findNearestLivingBeing(x, y, 20, Being::MONSTER);
@@ -853,7 +859,8 @@ void Game::handleInput()
}
// Target the nearest npc if 'n' pressed
- if ( keyboard.isKeyActive(keyboard.KEY_TARGET_NPC) && !keyboard.isKeyActive(keyboard.KEY_TARGET) )
+ if ( keyboard.isKeyActive(keyboard.KEY_TARGET_NPC) &&
+ !keyboard.isKeyActive(keyboard.KEY_TARGET) )
{
Being *target = beingManager->findNearestLivingBeing(x, y, 20, Being::NPC);
diff --git a/src/gui/buddywindow.cpp b/src/gui/buddywindow.cpp
new file mode 100644
index 00000000..14a941a5
--- /dev/null
+++ b/src/gui/buddywindow.cpp
@@ -0,0 +1,83 @@
+/*
+ * The Mana World
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with The Mana World; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "buddywindow.h"
+
+#include <guichan/widgets/listbox.hpp>
+
+#include "button.h"
+#include "chat.h"
+#include "scrollarea.h"
+
+#include "../resources/buddylist.h"
+
+extern ChatWindow *chatWindow;
+
+BuddyWindow::BuddyWindow():
+ Window("Buddy")
+{
+ setContentSize(124, 202);
+
+ mBuddyList = new BuddyList();
+
+ mListbox = new gcn::ListBox();
+ mListbox->setListModel(mBuddyList);
+
+ ScrollArea *scrollArea = new ScrollArea(mListbox);
+ scrollArea->setDimension(gcn::Rectangle(
+ 7, 5, 110, 170));
+ add(scrollArea);
+
+ Button *talk = new Button("Talk", "Talk", this);
+ Button *remove = new Button("Remove", "Remove", this);
+ Button *cancel = new Button("Cancel", "Cancel", this);
+
+ talk->setPosition(2,180);
+ remove->setPosition(talk->getWidth()+2,180);
+ cancel->setPosition(talk->getWidth()+remove->getWidth()+2,180);
+
+ add(talk);
+ add(remove);
+ add(cancel);
+}
+
+void BuddyWindow::action(const gcn::ActionEvent &event)
+{
+ if (event.getId() == "Talk") {
+ int selected = mListbox->getSelected();
+ if ( selected > -1 )
+ {
+ std::string who = mBuddyList->getElementAt(selected);
+ chatWindow->setInputText(who +": ");
+ }
+ }
+ else if (event.getId() == "Remove") {
+ int selected = mListbox->getSelected();
+ if ( selected > -1 )
+ {
+ std::string who = mBuddyList->getElementAt(selected);
+ mBuddyList->removeBuddy(who);
+ }
+ }
+ else if (event.getId() == "Cancel") {
+ setVisible(false);
+ }
+}
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index 93783ded..53cc1e8d 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -256,8 +256,6 @@ CharCreateDialog::CharCreateDialog(Window *parent, int slot, Network *network,
int numberOfHairColors = ColorDB::size();
- printf("%d\n", numberOfHairColors);
-
mPlayer->setHairStyle(rand() % mPlayer->getNumOfHairstyles(), rand() % numberOfHairColors);
mNameField = new TextField("");
diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp
index 8f68e6e1..054aff84 100644
--- a/src/gui/char_server.cpp
+++ b/src/gui/char_server.cpp
@@ -45,8 +45,10 @@ class ServerListModel : public gcn::ListModel {
std::string getElementAt(int i);
};
-ServerSelectDialog::ServerSelectDialog(LoginData *loginData):
- Window("Select Server"), mLoginData(loginData)
+ServerSelectDialog::ServerSelectDialog(LoginData *loginData, int nextState):
+ Window("Select Server"),
+ mLoginData(loginData),
+ mNextState(nextState)
{
mServerListModel = new ServerListModel();
mServerList = new ListBox(mServerListModel);
@@ -103,10 +105,10 @@ ServerSelectDialog::action(const gcn::ActionEvent &event)
mLoginData->hostname = iptostring(si->address);
mLoginData->port = si->port;
mLoginData->updateHost = si->updateHost;
- state = UPDATE_STATE;
+ state = mNextState;
}
else if (event.getId() == "cancel") {
- state = LOGIN_STATE;
+ state = LOGIN_STATE;
}
}
diff --git a/src/gui/char_server.h b/src/gui/char_server.h
index bb81d3a5..e05792f8 100644
--- a/src/gui/char_server.h
+++ b/src/gui/char_server.h
@@ -44,7 +44,7 @@ class ServerSelectDialog : public Window, public gcn::ActionListener {
*
* @see Window::Window
*/
- ServerSelectDialog(LoginData *loginData);
+ ServerSelectDialog(LoginData *loginData, int nextState);
/**
* Destructor.
@@ -61,6 +61,7 @@ class ServerSelectDialog : public Window, public gcn::ActionListener {
ServerListModel *mServerListModel;
gcn::ListBox *mServerList;
gcn::Button *mOkButton;
+ int mNextState;
};
#endif
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index dd11cebb..3f12c462 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -257,7 +257,7 @@ bool ChatWindow::isInputFocused()
return mChatInput->isFocused();
}
-void ChatWindow::chatSend(const std::string & nick, std::string msg)
+void ChatWindow::chatSend(const std::string &nick, std::string msg)
{
/* Some messages are managed client side, while others
* require server handling by proper packet. Probably
@@ -302,37 +302,42 @@ void ChatWindow::chatSend(const std::string & nick, std::string msg)
trim(msg);
}
- if (command == "announce") {
+ if (command == "announce")
+ {
MessageOut outMsg(mNetwork);
outMsg.writeInt16(0x0099);
outMsg.writeInt16(msg.length() + 4);
outMsg.writeString(msg, msg.length());
return;
}
- if (command == "help") {
+ else if (command == "help")
+ {
+ msg.erase(0, 6);
+ trim(msg);
std::size_t space = msg.find(" ");
std::string msg1;
- if (space == std::string::npos) {
+ if (space == std::string::npos)
+ {
msg1 = "";
- } else {
+ }
+ else
+ {
msg1 = msg.substr(space + 1, msg.length());
msg = msg.substr(0, space);
}
- if (msg != "" && msg.at(0) == '/') {
+ if (msg != "" && msg.at(0) == '/')
+ {
msg.erase(0, 1);
}
- while (msg1 != "" && msg1.at(0) == ' ') {
- msg1.erase(0, 1);
- }
+ trim(msg1);
help(msg, msg1);
- return;
}
- if (command == "where") {
+ else if (command == "where")
+ {
// Display the current map, X, and Y
std::ostringstream where;
- where << map_path << " " << player_node->mX << " " << player_node->mY;
+ where << map_path << " " << player_node->mX << "," << player_node->mY;
chatLog(where.str(), BY_SERVER);
- return;
}
if (command == "who") {
MessageOut outMsg(mNetwork);
@@ -648,20 +653,23 @@ void ChatWindow::help(const std::string & msg1, const std::string & msg2)
chatLog("For more information, type /help <command>", BY_SERVER);
return;
}
- if (msg1 == "announce") {
+ if (msg1 == "announce")
+ {
chatLog("Command: /announce <msg>", BY_SERVER);
chatLog("*** only available to a GM ***", BY_SERVER);
chatLog("This command sends the message <msg> to "
"all players currently online.", BY_SERVER);
return;
}
- if (msg1 == "clear") {
+ if (msg1 == "clear")
+ {
chatLog("Command: /clear", BY_SERVER);
chatLog("This command clears the chat log of previous chat.",
BY_SERVER);
return;
}
- if (msg1 == "help") {
+ if (msg1 == "help")
+ {
chatLog("Command: /help", BY_SERVER);
chatLog("This command displays a list of all commands available.",
BY_SERVER);
@@ -669,22 +677,26 @@ void ChatWindow::help(const std::string & msg1, const std::string & msg2)
chatLog("This command displays help on <command>.", BY_SERVER);
return;
}
- if (msg1 == "party") {
+ if (msg1 == "party")
+ {
mParty->help(msg2);
return;
}
- if (msg1 == "present") {
+ if (msg1 == "present")
+ {
chatLog("Command: /present", BY_SERVER);
chatLog("This command gets a list of players within hearing "
"and sends it to either the record log if recording, or the "
"chat log otherwise.", BY_SERVER);
return;
}
- if (msg1 == "record") {
+ if (msg1 == "record")
+ {
mRecorder->help(msg2);
return;
}
- if (msg1 == "toggle") {
+ if (msg1 == "toggle")
+ {
chatLog("Command: /toggle <state>", BY_SERVER);
chatLog("This command sets whether the return key should toggle the "
"chat log, or whether the chat log turns off automatically.",
@@ -696,7 +708,8 @@ void ChatWindow::help(const std::string & msg1, const std::string & msg2)
chatLog("This command displays the return toggle status.", BY_SERVER);
return;
}
- if (msg1 == "where") {
+ if (msg1 == "where")
+ {
chatLog("Command: /where", BY_SERVER);
chatLog("This command displays the name of the current map.",
BY_SERVER);
@@ -709,7 +722,8 @@ void ChatWindow::help(const std::string & msg1, const std::string & msg2)
"double quotes (\").", BY_SERVER);
return;
}
- if (msg1 == "who") {
+ if (msg1 == "who")
+ {
chatLog("Command: /who", BY_SERVER);
chatLog("This command displays the number of players currently "
"online.", BY_SERVER);
diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp
index bf85f033..7e1ef315 100644
--- a/src/gui/equipmentwindow.cpp
+++ b/src/gui/equipmentwindow.cpp
@@ -22,6 +22,8 @@
#include "equipmentwindow.h"
#include "../equipment.h"
+#include "../inventory.h"
+#include "../localplayer.h"
#include "../graphics.h"
#include "../inventory.h"
#include "../item.h"
@@ -40,7 +42,7 @@ EquipmentWindow::EquipmentWindow(Equipment *equipment):
setCloseButton(true);
setDefaultSize(5, 230, 200, 120);
loadWindowState();
- inventory = player_node->getInventory();
+ mInventory = player_node->getInventory();
}
EquipmentWindow::~EquipmentWindow()
@@ -62,7 +64,7 @@ void EquipmentWindow::draw(gcn::Graphics *graphics)
graphics->drawRectangle(gcn::Rectangle(10 + 36 * (i % 4),
36 * (i / 4) + 25, 32, 32));
- if (!(item = inventory->getItem(mEquipment->getEquipment(i))))
+ if (!(item = mInventory->getItem(mEquipment->getEquipment(i))))
continue;
image = item->getImage();
@@ -75,7 +77,7 @@ void EquipmentWindow::draw(gcn::Graphics *graphics)
graphics->drawRectangle(gcn::Rectangle(160, 25, 32, 32));
- if (!(item = inventory->getItem(mEquipment->getArrows())))
+ if (!(item = mInventory->getItem(mEquipment->getArrows())))
return;
image = item->getImage();
diff --git a/src/gui/equipmentwindow.h b/src/gui/equipmentwindow.h
index 7aacfc1e..b669f5b1 100644
--- a/src/gui/equipmentwindow.h
+++ b/src/gui/equipmentwindow.h
@@ -23,6 +23,7 @@
#define _TMW_EQUIPMENT_H
#include "window.h"
+#include "../inventory.h"
#include "../guichanfwd.h"
#include "../inventory.h"
@@ -54,7 +55,7 @@ class EquipmentWindow : public Window
private:
Equipment *mEquipment;
- Inventory *inventory;
+ Inventory *mInventory;
};
extern EquipmentWindow *equipmentWindow;
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index a382ef85..70f82d9d 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -110,7 +110,7 @@ Gui::Gui(Graphics *graphics):
Window::setWindowContainer(guiTop);
setTop(guiTop);
- // Set global font
+ // Set global font (based on ISO-8859-15)
try {
mGuiFont = new gcn::ImageFont("graphics/gui/sansserif8.png",
" !\"#$%&'()*+,-./"
diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp
index a8b20d40..424fca59 100644
--- a/src/gui/inventorywindow.cpp
+++ b/src/gui/inventorywindow.cpp
@@ -73,7 +73,7 @@ InventoryWindow::InventoryWindow():
mWeightLabel->setPosition(8, 8);
mSlots = "Slots: " +
toString(player_node->getInventory()->getNumberOfSlotsUsed()) +
- "/" + toString(player_node->getInventory()->getSize() - 2);
+ "/" + toString(player_node->getInventory()->getInventorySize());
mSlotsLabel = new TextBox();
mItemEffectLabel = new TextBox();
@@ -113,7 +113,7 @@ void InventoryWindow::logic()
mSlots = "Slots: " +
toString(player_node->getInventory()->getNumberOfSlotsUsed()) +
- "/" + toString(player_node->getInventory()->getSize() - 2);
+ "/" + toString(player_node->getInventory()->getInventorySize());
draw();
}
diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp
index fca0c72d..9e17f3da 100644
--- a/src/gui/itemcontainer.cpp
+++ b/src/gui/itemcontainer.cpp
@@ -64,8 +64,7 @@ ItemContainer::~ItemContainer()
mSelImg->decRef();
}
-void
-ItemContainer::logic()
+void ItemContainer::logic()
{
gcn::Widget::logic();
@@ -78,8 +77,7 @@ ItemContainer::logic()
}
}
-void
-ItemContainer::draw(gcn::Graphics *graphics)
+void ItemContainer::draw(gcn::Graphics *graphics)
{
int columns = getWidth() / gridWidth;
@@ -146,8 +144,7 @@ void ItemContainer::recalculateHeight()
setHeight(height);
}
-Item*
-ItemContainer::getSelectedItem()
+Item *ItemContainer::getSelectedItem()
{
refindSelectedItem(); // Make sure that we're still current
@@ -157,8 +154,7 @@ ItemContainer::getSelectedItem()
return mInventory->getItem(mSelectedItemIndex);
}
-void
-ItemContainer::selectNone()
+void ItemContainer::selectNone()
{
setSelectedItemIndex(NO_ITEM);
}
@@ -166,15 +162,15 @@ ItemContainer::selectNone()
void ItemContainer::refindSelectedItem()
{
if (mSelectedItemIndex != NO_ITEM) {
-
+
if (mInventory->getItem(mSelectedItemIndex) &&
mInventory->getItem(mSelectedItemIndex)->getId() == mLastSelectedItemId)
return; // we're already fine
-
+
// Otherwise ensure the invariant: we must point to an item of the specified last ID,
// or nowhere at all.
- for (int i = 0; i <= mMaxItems + mOffset; i++)
+ for (int i = 0; i <= mMaxItems + 1; i++)
if (mInventory->getItem(i) &&
mInventory->getItem(i)->getId() == mLastSelectedItemId) {
mSelectedItemIndex = i;
@@ -198,7 +194,6 @@ void ItemContainer::setSelectedItemIndex(int index)
newSelectedItemIndex = NO_ITEM;
else
newSelectedItemIndex = index;
-
if (mSelectedItemIndex != newSelectedItemIndex)
{
mSelectedItemIndex = newSelectedItemIndex;
@@ -212,8 +207,7 @@ void ItemContainer::setSelectedItemIndex(int index)
}
}
-void
-ItemContainer::distributeValueChangedEvent()
+void ItemContainer::distributeValueChangedEvent()
{
gcn::SelectionEvent event(this);
std::list<gcn::SelectionListener*>::iterator i_end = mListeners.end();
@@ -225,8 +219,7 @@ ItemContainer::distributeValueChangedEvent()
}
}
-void
-ItemContainer::mousePressed(gcn::MouseEvent &event)
+void ItemContainer::mousePressed(gcn::MouseEvent &event)
{
int button = event.getButton();
@@ -243,8 +236,6 @@ ItemContainer::mousePressed(gcn::MouseEvent &event)
Item *item = mInventory->getItem(index);
if (item)
- {
itemShortcut->setItemSelected(item->getId());
- }
}
}
diff --git a/src/gui/itemcontainer.h b/src/gui/itemcontainer.h
index 5d22b658..8927b001 100644
--- a/src/gui/itemcontainer.h
+++ b/src/gui/itemcontainer.h
@@ -108,29 +108,30 @@ class ItemContainer : public gcn::Widget,
private:
/**
- * Find the current item index by the most recently used item ID
+
+ * Sets the currently selected item. Invalid (e.g., negative) indices set `no item'.
*/
- void refindSelectedItem(void);
+ void setSelectedItemIndex(int index);
/**
- * Sets the currently selected item. Invalid (e.g., negative) indices set `no item'.
+ * Find the current item index by the most recently used item ID
*/
- void setSelectedItemIndex(int index);
+ void refindSelectedItem(void);
/**
* Determine and set the height of the container.
*/
- void recalculateHeight();
+ void recalculateHeight(void);
/**
* Sends out selection events to the list of selection listeners.
*/
- void distributeValueChangedEvent();
+ void distributeValueChangedEvent(void);
Inventory *mInventory;
Image *mSelImg;
int mSelectedItemIndex;
- int mLastSelectedItemId; // last selected item ID. If we lose the item, find again by ID.
+ int mLastSelectedItemId; // last selected item ID. If we lose the item, find again by ID.
int mMaxItems;
int mOffset;
diff --git a/src/gui/itemshortcutcontainer.cpp b/src/gui/itemshortcutcontainer.cpp
index f8a0959a..de5e1956 100644
--- a/src/gui/itemshortcutcontainer.cpp
+++ b/src/gui/itemshortcutcontainer.cpp
@@ -86,7 +86,7 @@ ItemShortcutContainer::draw(gcn::Graphics *graphics)
// Draw item keyboard shortcut.
const char *key = SDL_GetKeyName(
- (SDLKey) keyboard.getKeyValue(keyboard.KEY_SHORTCUT_0+i));
+ (SDLKey) keyboard.getKeyValue(keyboard.KEY_SHORTCUT_0 + i));
g->drawText(key, itemX + 2, itemY + 2, gcn::Graphics::LEFT);
if (itemShortcut->getItem(i) < 0)
@@ -100,6 +100,8 @@ ItemShortcutContainer::draw(gcn::Graphics *graphics)
item->isEquipped() ? "Eq." : toString(item->getQuantity());
Image* image = item->getImage();
if (image) {
+ const std::string label =
+ item->isEquipped() ? "Eq." : toString(item->getQuantity());
g->drawImage(image, itemX, itemY);
g->drawText(
label,
diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp
index 3a2e483d..8339e478 100644
--- a/src/gui/minimap.cpp
+++ b/src/gui/minimap.cpp
@@ -40,17 +40,13 @@ Minimap::Minimap():
Minimap::~Minimap()
{
if (mMapImage)
- {
mMapImage->decRef();
- }
}
void Minimap::setMapImage(Image *img)
{
if (mMapImage)
- {
mMapImage->decRef();
- }
mMapImage = img;
diff --git a/src/gui/newskill.cpp b/src/gui/newskill.cpp
new file mode 100644
index 00000000..20fc01bd
--- /dev/null
+++ b/src/gui/newskill.cpp
@@ -0,0 +1,193 @@
+/*
+ * The Mana World
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with The Mana World; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+ /* This file implements the new skill dialog for use under the latest
+ * version of the skill system as of 2005/02/20
+ */
+
+#include "newskill.h"
+
+#include <guichan/widgets/label.hpp>
+
+#include "button.h"
+#include "progressbar.h"
+
+#include "../graphics.h"
+
+const char *skill_name[] = {
+ // 0-99
+ // weapon skills 0-9
+ "Short Blades", "Long Blades", "Hammers", "Archery", "Whip",
+ "Staves", "Throwing", "Piercing", "Hand to Hand", NULL,
+ // magic skills 10-19
+ "Epyri (Fire)", "Merene (Water)", "Geon (Earth)", "Izurial (Air)",
+ "Lumine (Light)", "Tenebrae (Dark)", "Chronos (Time)", "Teless (Space)",
+ "Gen (Mana)", NULL,
+ // craft skills 20-29
+ "Metalworking", "Woodworking", "Jeweler", "Cook", "Tailor",
+ "Alchemist", "Artisan", "Synthesis", NULL, NULL,
+ // general skills 30-39
+ "Running", "Searching", "Sneak", "Trading", "Intimidate",
+ "Athletics", NULL, NULL, NULL,NULL,
+ // combat skills 40-49
+ "Dodge", "Accuracy", "Critical", "Block", "Parry", "Diehard", "Magic Aura",
+ "Counter", NULL, NULL,
+ // resistance skills 50-59
+ "Poison", "Silence", "Petrify", "Paralyze", "Blind", "Slow", "Zombie",
+ "Critical", NULL, NULL,
+ // element reistance 60-69
+ "Heat (Fire)", "Chill (Water)", "Stone (Earth)", "Wind (Air)",
+ "Shine (Light)", "Shadow (Dark)", "Decay (Time)", "Chaos (Space)", NULL,
+ NULL,
+ // hunting skills 70-79
+ "Insects", "Birds", "Lizards", "Amorphs", "Undead", "Machines", "Arcana",
+ "Humanoids", "Plantoids", NULL,
+ // stats 80-89
+ "Strength", "Fortitude", "Vitality", "Menality", "Awareness", "Mana",
+ "Dexterity", NULL, NULL, NULL,
+ // unused (reserved) 90-99
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+
+NewSkillDialog::NewSkillDialog():
+ Window("Skills")
+{
+ startPoint = 0;
+ for (int i = 0; i < N_SKILL_CAT_SIZE; i++)
+ {
+ mSkillLabel[i] = new gcn::Label("Empty ");
+ mSkillLevel[i] = new gcn::Label("00000");
+ mSkillbar[i] = new ProgressBar(0.0f,100,15,0,0,255);
+ mSkillLevel[i]->setAlignment(Graphics::RIGHT);
+ add(mSkillLabel[i],40,5+i*25);
+ add(mSkillLevel[i],150,5+i*25);
+ add(mSkillbar[i],180,5+i*25);
+ }
+ // initialize the skills
+ for (int i = 0; i < N_SKILL; i++)
+ {
+ mPlayerSkill[i].level = 0;
+ mPlayerSkill[i].exp = 0;
+ }
+ resetNSD();
+
+ // create controls
+ Button *catButton[N_SKILL_CAT];
+ catButton[0] = new Button("Weapons", "g1", this);
+ catButton[1] = new Button("Magic", "g2", this);
+ catButton[2] = new Button("Craft", "g3", this);
+ catButton[3] = new Button("General", "g4", this);
+ catButton[4] = new Button("Combat", "g5", this);
+ catButton[5] = new Button("E. Resist", "g6", this);
+ catButton[6] = new Button("S. Resist", "g7", this);
+ catButton[7] = new Button("Hunting", "g8", this);
+ catButton[8] = new Button("Stat", "g9", this);
+
+ setContentSize(350, 250);
+
+ for (int i = 0; i < 9; ++i) {
+ catButton[i]->setDimension(gcn::Rectangle(0, 0, 60, 20));
+ catButton[i]->setPosition(290, 20 * i);
+ add(catButton[i]);
+ }
+
+ Button *closeButton = new Button("Close", "close", this);
+ closeButton->setDimension(gcn::Rectangle(0,0,60,20));
+ closeButton->setPosition(290, 230);
+ add(closeButton);
+
+ // finsihing touches
+ setLocationRelativeTo(getParent());
+}
+
+void NewSkillDialog::action(const gcn::ActionEvent &event)
+{
+ int osp = startPoint;
+ if (event.getId() == "close")
+ {
+ setVisible(false);
+ }
+ else if (event.getId() == "g1") // weapons group 0-9
+ {
+ startPoint =0;
+ }
+ else if (event.getId() == "g2") // magic group 10-19
+ {
+ startPoint =10;
+ }
+ else if (event.getId() == "g3") // craft group 20-29
+ {
+ startPoint =20;
+ }
+ else if (event.getId() == "g4") // general group 30-39
+ {
+ startPoint =30;
+ }
+ else if (event.getId() == "g5") // combat group 40-49
+ {
+ startPoint =40;
+ }
+ else if (event.getId() == "g6") // e. resist group 50-59
+ {
+ startPoint =50;
+ }
+ else if (event.getId() == "g7") // s resist group 60-69
+ {
+ startPoint =60;
+ }
+ else if (event.getId() == "g8") // hunting group 70-79
+ {
+ startPoint =70;
+ }
+ else if (event.getId() == "g9") // stats group 80-89
+ {
+ startPoint =80;
+ }
+ if (osp != startPoint)
+ {
+ resetNSD();
+ }
+}
+
+void NewSkillDialog::resetNSD()
+{
+ for (int a = 0; a < N_SKILL_CAT_SIZE; a++)
+ {
+ if (skill_name[a + startPoint])
+ {
+ mSkillLabel[a]->setCaption(skill_name[a + startPoint]);
+ mSkillLabel[a]->setVisible(true);
+ char tmp[5];
+ sprintf(tmp, "%d", mPlayerSkill[a+startPoint].level);
+ mSkillLevel[a]->setCaption(tmp);
+ mSkillLevel[a]->setVisible(true);
+ mSkillbar[a]->setProgress(0.0f);
+ mSkillbar[a]->setVisible(true);
+ }
+ else
+ {
+ mSkillLevel[a]->setVisible(false);
+ mSkillLabel[a]->setVisible(false);
+ mSkillbar[a]->setVisible(false);
+ }
+ }
+}
diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp
index d83e9dea..b53de828 100644
--- a/src/gui/npc_text.cpp
+++ b/src/gui/npc_text.cpp
@@ -59,7 +59,6 @@ void NpcTextDialog::setText(const std::string &text)
{
const gcn::Rectangle &area = getChildrenArea();
const int width = area.width;
- const int height = area.height;
mText = text;
mTextBox->setMinWidth(width - 30);
diff --git a/src/gui/npclistdialog.h b/src/gui/npclistdialog.h
index 04c5c4d9..099d03c0 100644
--- a/src/gui/npclistdialog.h
+++ b/src/gui/npclistdialog.h
@@ -86,9 +86,9 @@ class NpcListDialog : public Window, public gcn::ActionListener,
private:
gcn::ListBox *mItemList;
- ScrollArea *scrollArea;
- Button *okButton;
- Button *cancelButton;
+ gcn::ScrollArea *scrollArea;
+ gcn::Button *okButton;
+ gcn::Button *cancelButton;
std::vector<std::string> mItems;
};
diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp
index ec5b1d0a..15841615 100644
--- a/src/gui/setup_video.cpp
+++ b/src/gui/setup_video.cpp
@@ -289,11 +289,12 @@ void Setup_Video::apply()
bool fullscreen = mFsCheckBox->isSelected();
if (fullscreen != (config.getValue("screen", 0) == 1))
{
-
- /* Commented out the openGL test because
- * the fullscreen mode change works fine, but
- * will need to test it on windows so not
- * deleting entirely until then --kraant*/
+ /* The OpenGL test is only necessary on Windows, since switching
+ * to/from full screen works fine on Linux. On Windows we'd have to
+ * reinitialize the OpenGL state and reload all textures.
+ *
+ * See http://libsdl.org/cgi/docwiki.cgi/SDL_SetVideoMode
+ */
#ifdef WIN32
// checks for opengl usage
diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp
index 36c3a305..8e61dea4 100644
--- a/src/gui/skill.cpp
+++ b/src/gui/skill.cpp
@@ -87,7 +87,8 @@ public:
SkillInfo const *info;
char tmp[128];
- if (skill->id >= 0 && (unsigned int) skill->id < skill_db.size())
+ if (skill->id >= 0
+ && (unsigned int) skill->id < skill_db.size())
info = &skill_db[skill->id];
else
info = &fakeSkillInfo;
@@ -195,13 +196,14 @@ void SkillDialog::update()
if (selectedSkill >= 0) {
int skillId = mSkillList[selectedSkill]->id;
bool modifiable;
-
+
if (skillId >= 0 && (unsigned int) skillId < skill_db.size())
modifiable = skill_db[skillId].modifiable;
else
modifiable = false;
- mIncButton->setEnabled(modifiable && player_node->mSkillPoint > 0);
+ mIncButton->setEnabled(modifiable
+ && player_node->mSkillPoint > 0);
} else
mIncButton->setEnabled(false);
diff --git a/src/gui/skill.h b/src/gui/skill.h
index ee579dd5..2095e098 100644
--- a/src/gui/skill.h
+++ b/src/gui/skill.h
@@ -30,6 +30,7 @@
#include "scrollarea.h"
#include "table.h"
#include "window.h"
+#include "table.h"
#include "../guichanfwd.h"
diff --git a/src/gui/status.h b/src/gui/status.h
index 4fbce445..eb4171c9 100644
--- a/src/gui/status.h
+++ b/src/gui/status.h
@@ -68,7 +68,9 @@ class StatusWindow : public Window, public gcn::ActionListener
/**
* Status Part
*/
- gcn::Label *mLvlLabel, *mJobLvlLabel, *mGpLabel, *mHpLabel, *mHpValueLabel;
+ gcn::Label *mLvlLabel, *mJobLvlLabel;
+ gcn::Label *mGpLabel;
+ gcn::Label *mHpLabel, *mHpValueLabel;
gcn::Label *mMpLabel, *mMpValueLabel;
gcn::Label *mXpLabel, *mXpValueLabel, *mJobXpLabel, *mJobValueLabel;
ProgressBar *mHpBar, *mMpBar;
diff --git a/src/gui/table_model.h b/src/gui/table_model.h
index 4022e369..a52a7561 100644
--- a/src/gui/table_model.h
+++ b/src/gui/table_model.h
@@ -127,9 +127,9 @@ public:
*/
virtual void resize(void);
- virtual int getRows();
- virtual int getColumns();
- virtual int getRowHeight();
+ virtual int getRows(void);
+ virtual int getColumns(void);
+ virtual int getRowHeight(void);
virtual int getColumnWidth(int index);
virtual gcn::Widget *getElementAt(int row, int column);
diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp
index 1097f072..36d00bec 100644
--- a/src/gui/updatewindow.cpp
+++ b/src/gui/updatewindow.cpp
@@ -309,14 +309,15 @@ int UpdaterWindow::downloadThread(void *ptr)
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 15);
- struct curl_slist *pHeaders=NULL;
- if(uw->mDownloadStatus != UPDATE_RESOURCES){
- /*caching breaks things when resources2.txt is cached
- *so caching is turned off on the proxy with this header
- *change*/
- pHeaders = curl_slist_append(pHeaders, "pragma: no-cache");
- pHeaders = curl_slist_append(pHeaders, "Cache-Control: no-cache");
- curl_easy_setopt(curl, CURLOPT_HTTPHEADER, pHeaders);
+ struct curl_slist *pHeaders = NULL;
+ if (uw->mDownloadStatus != UPDATE_RESOURCES)
+ {
+ // Make sure the resources2.txt and news.txt aren't cached,
+ // in order to always get the latest version.
+ pHeaders = curl_slist_append(pHeaders, "pragma: no-cache");
+ pHeaders =
+ curl_slist_append(pHeaders, "Cache-Control: no-cache");
+ curl_easy_setopt(curl, CURLOPT_HTTPHEADER, pHeaders);
}
if ((res = curl_easy_perform(curl)) != 0)
@@ -343,8 +344,9 @@ int UpdaterWindow::downloadThread(void *ptr)
curl_easy_cleanup(curl);
- if(uw->mDownloadStatus != UPDATE_RESOURCES){
- curl_slist_free_all(pHeaders);
+ if (uw->mDownloadStatus != UPDATE_RESOURCES)
+ {
+ curl_slist_free_all(pHeaders);
}
if (!uw->mStoreInMemory)
diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp
index 3f0f546e..e50903b6 100644
--- a/src/gui/viewport.cpp
+++ b/src/gui/viewport.cpp
@@ -48,6 +48,8 @@
extern volatile int tick_time;
+extern volatile int tick_time;
+
Viewport::Viewport():
mMap(0),
mPixelViewX(0.0f),
@@ -196,17 +198,16 @@ Viewport::draw(gcn::Graphics *gcnGraphics)
}
}
- // Draw names
+ // Draw text
if (textManager)
{
- textManager->draw(graphics, (int) mPixelViewX, (int) mPixelViewY);
+ textManager->draw(graphics, mPixelViewX, mPixelViewY);
}
- // Draw player speech, and emotion sprite as needed
+ // Draw player names, speech, and emotion sprite as needed
Beings &beings = beingManager->getAll();
for (BeingIterator i = beings.begin(); i != beings.end(); i++)
{
- (*i)->drawSpeech(graphics, -(int) mPixelViewX, -(int) mPixelViewY);
(*i)->drawEmotion(graphics, -(int) mPixelViewX, -(int) mPixelViewY);
}
diff --git a/src/gui/window.cpp b/src/gui/window.cpp
index 48964121..30456a81 100644
--- a/src/gui/window.cpp
+++ b/src/gui/window.cpp
@@ -22,6 +22,7 @@
#include <algorithm>
#include <cassert>
#include <climits>
+#include <cassert>
#include <guichan/exception.hpp>
diff --git a/src/inventory.cpp b/src/inventory.cpp
index d346a50b..da9aed02 100644
--- a/src/inventory.cpp
+++ b/src/inventory.cpp
@@ -50,7 +50,7 @@ Inventory::~Inventory()
Item* Inventory::getItem(int index) const
{
- if (index < 0 || index >= mSize)
+ if (index < 0 || index >= INVENTORY_SIZE || !mItems[index] || mItems[index]->getQuantity() <= 0)
return 0;
return mItems[index];
@@ -146,3 +146,8 @@ int Inventory::getLastUsedSlot() const
return -1;
}
+
+int Inventory::getInventorySize() const
+{
+ return INVENTORY_SIZE - 2;
+}
diff --git a/src/inventory.h b/src/inventory.h
index 566ca17c..91bb7d04 100644
--- a/src/inventory.h
+++ b/src/inventory.h
@@ -24,6 +24,8 @@
class Item;
+#define INVENTORY_SIZE 102
+
class Inventory
{
public:
@@ -100,6 +102,11 @@ class Inventory
*/
int getLastUsedSlot() const;
+ /**
+ * Returns the number of slots available in the inventory.
+ */
+ int getInventorySize() const;
+
protected:
Item **mItems; /**< The holder of items */
int mSize; /**< The max number of inventory items */
diff --git a/src/joystick.cpp b/src/joystick.cpp
index b3aba4fc..4cee4464 100644
--- a/src/joystick.cpp
+++ b/src/joystick.cpp
@@ -25,6 +25,8 @@
#include "joystick.h"
#include "log.h"
+#include <cassert>
+
int Joystick::joystickCount = 0;
void Joystick::init()
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index 7fdbc09b..292f70e0 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -30,6 +30,7 @@
#include "monster.h"
#include "particle.h"
#include "sound.h"
+#include "monster.h"
#include "gui/gui.h"
@@ -508,9 +509,9 @@ void LocalPlayer::stopAttack()
{
setAction(STAND);
mLastTarget = -1;
- setTarget(NULL);
- mLastTarget = -1;
}
+ setTarget(NULL);
+ mLastTarget = -1;
}
Being* LocalPlayer::getTarget() const
diff --git a/src/log.h b/src/log.h
index 6fe9dccd..30078e35 100644
--- a/src/log.h
+++ b/src/log.h
@@ -68,8 +68,8 @@ class Logger
;
/**
- * Log an error and quit. The error will pop-up in Windows and will be
- * printed to standard error everywhere else.
+ * Log an error and quit. The error will pop-up on Windows and Mac, and
+ * will be printed to standard error everywhere else.
*/
void error(const std::string &error_text);
diff --git a/src/logindata.h b/src/logindata.h
index d2fe3043..6b733269 100644
--- a/src/logindata.h
+++ b/src/logindata.h
@@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * $Id: logindata.h 3606 2007-09-27 14:54:09Z b_lindeijer $
*/
#ifndef _TMW_LOGINDATA_H
diff --git a/src/main.cpp b/src/main.cpp
index 279bae71..4049aa78 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -60,6 +60,7 @@
#include "gui/progressbar.h"
#include "gui/register.h"
#include "gui/setup.h"
+#include "gui/updatewindow.h"
#include "gui/textfield.h"
#include "gui/updatewindow.h"
@@ -185,6 +186,10 @@ void setUpdatesDir()
config.getValue("updatehost", "http://www.aethyra.org/updates");
}
+ // Remove any trailing slash at the end of the update host
+ if (updateHost.at(updateHost.size() - 1) == '/')
+ updateHost.resize(updateHost.size() - 1);
+
// Parse out any "http://" or "ftp://", and set the updates directory
size_t pos;
pos = updateHost.find("://");
@@ -478,7 +483,7 @@ void printVersion()
void parseOptions(int argc, char *argv[], Options &options)
{
- const char *optstring = "hvuU:P:Dp:C:H:";
+ const char *optstring = "hvud:U:P:Dp:C:H:";
const struct option long_options[] = {
{ "configfile", required_argument, 0, 'C' },
@@ -498,9 +503,8 @@ void parseOptions(int argc, char *argv[], Options &options)
int result = getopt_long(argc, argv, optstring, long_options, NULL);
- if (result == -1) {
+ if (result == -1)
break;
- }
switch (result) {
case 'C':
@@ -583,9 +587,10 @@ void accountLogin(Network *network, LoginData *loginData)
outMsg.writeString(loginData->password, 24);
/*
- * eAthena calls the last byte "client version 2", but it isn't
- * used at all. We're retasking it, with bit 0 to indicate whether
- * the client can handle the 0x63 "update host" packet
+ * eAthena calls the last byte "client version 2", but it isn't used at
+ * at all. We're retasking it, with bit 0 to indicate whether the client
+ * can handle the 0x63 "update host" packet. Clients prior to 0.0.25 send
+ * 0 here.
*/
outMsg.writeInt8(0x01);
@@ -903,17 +908,25 @@ int main(int argc, char *argv[])
case CHAR_SERVER_STATE:
logger->log("State: CHAR_SERVER");
- if (n_server == 1) {
+
+ if (n_server == 1)
+ {
SERVER_INFO *si = *server_info;
loginData.hostname = iptostring(si->address);
loginData.port = si->port;
loginData.updateHost = si->updateHost;
state = UPDATE_STATE;
- } else {
- currentDialog = new ServerSelectDialog(&loginData);
+ }
+ else
+ {
+ int nextState = (options.skipUpdate) ?
+ LOADDATA_STATE : UPDATE_STATE;
+ currentDialog = new ServerSelectDialog(&loginData,
+ nextState);
positionDialog(currentDialog, screenWidth,
screenHeight);
- if (options.chooseDefault || options.playername != "") {
+ if (options.chooseDefault || options.playername != "")
+ {
((ServerSelectDialog*) currentDialog)->action(
gcn::ActionEvent(NULL, "ok"));
}
@@ -964,7 +977,7 @@ int main(int argc, char *argv[])
case UPDATE_STATE:
// Determine which source to use for the update host
- if(!options.updateHost.empty())
+ if (!options.updateHost.empty())
updateHost = options.updateHost;
else
updateHost = loginData.updateHost;
diff --git a/src/map.cpp b/src/map.cpp
index 612d9020..02b046fb 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -71,22 +71,22 @@ MapLayer::MapLayer(int x, int y, int width, int height, bool isFringeLayer):
mTiles = new Image*[size];
std::fill_n(mTiles, size, (Image*) 0);
}
-
+
MapLayer::~MapLayer()
{
delete[] mTiles;
}
-
+
void MapLayer::setTile(int x, int y, Image *img)
{
mTiles[x + y * mWidth] = img;
}
-
+
Image* MapLayer::getTile(int x, int y) const
{
return mTiles[x + y * mWidth];
}
-
+
void MapLayer::draw(Graphics *graphics,
int startX, int startY,
int endX, int endY,
@@ -97,43 +97,43 @@ void MapLayer::draw(Graphics *graphics,
startY -= mY;
endX -= mX;
endY -= mY;
-
+
if (startX < 0) startX = 0;
if (startY < 0) startY = 0;
if (endX > mWidth) endX = mWidth;
if (endY > mHeight) endY = mHeight;
-
+
Sprites::const_iterator si = sprites.begin();
-
+
for (int y = startY; y < endY; y++)
{
// If drawing the fringe layer, make sure all sprites above this row of
// tiles have been drawn
if (mIsFringeLayer) {
- player_node->drawTargetCursor(graphics, scrollX, scrollY);
- while (si != sprites.end() && (*si)->getPixelY() <= y * 32 - 32) {
- (*si)->draw(graphics, -scrollX, -scrollY);
- si++;
- }
+ player_node->drawTargetCursor(graphics, scrollX, scrollY);
+ while (si != sprites.end() && (*si)->getPixelY() <= y * 32 - 32) {
+ (*si)->draw(graphics, -scrollX, -scrollY);
+ si++;
+ }
}
for (int x = startX; x < endX; x++)
{
- Image *img = getTile(x, y);
- if (img) {
- const int px = (x + mX) * 32 - scrollX;
- const int py = (y + mY) * 32 - scrollY + 32 - img->getHeight();
- graphics->drawImage(img, px, py);
- }
- }
+ Image *img = getTile(x, y);
+ if (img) {
+ const int px = (x + mX) * 32 - scrollX;
+ const int py = (y + mY) * 32 - scrollY + 32 - img->getHeight();
+ graphics->drawImage(img, px, py);
+ }
+ }
}
-
+
// Draw any remaining sprites
if (mIsFringeLayer) {
- while (si != sprites.end()) {
- (*si)->draw(graphics, -scrollX, -scrollY);
- si++;
- }
+ while (si != sprites.end()) {
+ (*si)->draw(graphics, -scrollX, -scrollY);
+ si++;
+ }
}
}
@@ -186,7 +186,7 @@ void Map::initializeOverlays()
void Map::addLayer(MapLayer *layer)
{
- mLayers.push_back(layer);
+ mLayers.push_back(layer);
}
void Map::addTileset(Tileset *tileset)
@@ -273,7 +273,7 @@ void Map::drawOverlay(Graphics *graphics,
class ContainsGidFunctor
{
public:
- bool operator() (Tileset* set) const
+ bool operator() (const Tileset* set) const
{
return (set->getFirstGid() <= gid &&
gid - set->getFirstGid() < (int)set->size());
diff --git a/src/monster.cpp b/src/monster.cpp
index 62be513d..04624b8c 100644
--- a/src/monster.cpp
+++ b/src/monster.cpp
@@ -21,6 +21,7 @@
#include "animatedsprite.h"
#include "game.h"
+#include "localplayer.h"
#include "monster.h"
#include "particle.h"
#include "sound.h"
@@ -43,8 +44,8 @@ Monster::Monster(Uint32 id, Uint16 job, Map *map):
// Setup Monster sprites
int c = BASE_SPRITE;
-
const std::list<std::string> &sprites = info.getSprites();
+
for (std::list<std::string>::const_iterator i = sprites.begin();
i != sprites.end();
i++)
@@ -77,7 +78,10 @@ Monster::Monster(Uint32 id, Uint16 job, Map *map):
Monster::~Monster()
{
if (mText)
+ {
delete mText;
+ player_node->setTarget(NULL);
+ }
}
void Monster::logic()
@@ -166,7 +170,8 @@ void Monster::handleAttack(Being *victim, int damage)
Being::handleAttack(victim, damage);
const MonsterInfo &mi = getInfo();
- sound.playSfx(mi.getSound((damage > 0) ? MONSTER_EVENT_HIT : MONSTER_EVENT_MISS));
+ sound.playSfx(mi.getSound((damage > 0) ?
+ MONSTER_EVENT_HIT : MONSTER_EVENT_MISS));
}
void Monster::takeDamage(int amount)
diff --git a/src/monster.h b/src/monster.h
index 0906dff3..cb8f7f18 100644
--- a/src/monster.h
+++ b/src/monster.h
@@ -75,8 +75,12 @@ class Monster : public Being
* Update the text when the monster moves
*/
void updateCoords();
+
private:
- Text *mText; /**< holds a text object when the mod displays it's name, 0 otherwise */
+ /**
+ * holds a text object when the mod displays it's name, 0 otherwise
+ */
+ Text *mText;
};
#endif
diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp
index b016b5cf..3c022af6 100644
--- a/src/net/beinghandler.cpp
+++ b/src/net/beinghandler.cpp
@@ -204,21 +204,15 @@ void BeingHandler::handleMessage(MessageIn *msg)
// If this is player's current target, clear it.
if (dstBeing == player_node->getTarget())
- {
player_node->stopAttack();
- }
if (dstBeing == current_npc)
current_npc = NULL;
if (msg->readInt8() == 1)
- {
dstBeing->setAction(Being::DEAD);
- }
else
- {
beingManager->destroyBeing(dstBeing);
- }
break;
@@ -236,27 +230,26 @@ void BeingHandler::handleMessage(MessageIn *msg)
switch (type)
{
case 0x0a: // Critical Damage
- if (dstBeing) {
+ if (dstBeing)
dstBeing->showCrit();
- }
- case 0x00: // Damage
- if (dstBeing) {
+ case 0x00: // Damage
+ if (dstBeing)
dstBeing->takeDamage(param1);
- }
- if (srcBeing) {
+ if (srcBeing)
srcBeing->handleAttack(dstBeing, param1);
- }
break;
case 0x02: // Sit
- if (srcBeing) {
+ if (srcBeing)
+ {
srcBeing->mFrame = 0;
srcBeing->setAction(Being::SIT);
}
break;
case 0x03: // Stand up
- if (srcBeing) {
+ if (srcBeing)
+ {
srcBeing->mFrame = 0;
srcBeing->setAction(Being::STAND);
}
@@ -518,3 +511,4 @@ void BeingHandler::handleMessage(MessageIn *msg)
break;
}
}
+
diff --git a/src/net/buysellhandler.cpp b/src/net/buysellhandler.cpp
index ad613889..b2fe99b9 100644
--- a/src/net/buysellhandler.cpp
+++ b/src/net/buysellhandler.cpp
@@ -113,6 +113,8 @@ void BuySellHandler::handleMessage(MessageIn *msg)
if (msg->readInt8() == 0) {
chatWindow->chatLog("Thanks for buying", BY_SERVER);
} else {
+ // Reset player money since buy dialog already assumed purchase
+ // would go fine
buyDialog->setMoney(player_node->mGp);
chatWindow->chatLog("Unable to buy", BY_SERVER);
}
diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp
index 833732db..281923f8 100644
--- a/src/net/charserverhandler.cpp
+++ b/src/net/charserverhandler.cpp
@@ -178,7 +178,7 @@ void CharServerHandler::handleMessage(MessageIn *msg)
errorMessage = "Duplicated login";
break;
default:
- errorMessage = "Unkown error with 0x0081";
+ errorMessage = "Unknown error with 0x0081";
break;
}
mCharInfo->unlock();
diff --git a/src/net/equipmenthandler.cpp b/src/net/equipmenthandler.cpp
index 23a8063f..2e0cc562 100644
--- a/src/net/equipmenthandler.cpp
+++ b/src/net/equipmenthandler.cpp
@@ -117,6 +117,7 @@ void EquipmentHandler::handleMessage(MessageIn *msg)
position++;
}
logger->log("Position %i", position);
+
item = player_node->getInventory()->getItem(player_node->mEquipment->getEquipment(position));
// Unequip any existing equipped item in this position
@@ -155,6 +156,7 @@ void EquipmentHandler::handleMessage(MessageIn *msg)
break;
item->setEquipped(false);
+
if (equipPoint & 0x8000) { // Arrows
player_node->mEquipment->setArrows(0);
}
@@ -176,6 +178,7 @@ void EquipmentHandler::handleMessage(MessageIn *msg)
break;
item = inventory->getItem(index);
+
if (item) {
item->setEquipped(true);
player_node->mEquipment->setArrows(index);
diff --git a/src/net/loginhandler.cpp b/src/net/loginhandler.cpp
index 9a7aaabd..2b98e4e4 100644
--- a/src/net/loginhandler.cpp
+++ b/src/net/loginhandler.cpp
@@ -48,11 +48,11 @@ void LoginHandler::handleMessage(MessageIn *msg)
{
case 0x0063:
int len;
-
- len = msg->readInt16() - 4;
+
+ len = msg->readInt16() - 4;
mUpdateHost = msg->readString(len);
- logger->log("Received update host \"%s\" from login server",
+ logger->log("Received update host \"%s\" from login server",
mUpdateHost.c_str());
break;
@@ -107,10 +107,12 @@ void LoginHandler::handleMessage(MessageIn *msg)
errorMessage = "Rejected from server";
break;
case 4:
- errorMessage = "You have been blocked by the GM Team";
+
+ errorMessage = "You have been permanently banned from the game. Please contact the GM Team";
break;
case 6:
- errorMessage = "You have been temporarily banned from the game until " + msg->readString(20) + ".\n Please contact the GM team";
+ errorMessage = "You have been temporarily banned from the game until "
+ + msg->readString(20) + ".\n Please contact the GM team via the forums";
break;
case 9:
errorMessage = "This user name is already taken";
diff --git a/src/net/loginhandler.h b/src/net/loginhandler.h
index 1e087619..047434b4 100644
--- a/src/net/loginhandler.h
+++ b/src/net/loginhandler.h
@@ -25,6 +25,7 @@
#include <string>
#include "messagehandler.h"
+#include <string>
struct LoginData;
@@ -37,10 +38,8 @@ class LoginHandler : public MessageHandler
void setLoginData(LoginData *loginData) { mLoginData = loginData; };
- protected:
- LoginData *mLoginData;
-
private:
+ LoginData *mLoginData;
std::string mUpdateHost;
};
diff --git a/src/net/network.h b/src/net/network.h
index 856808a2..43b4dbbc 100644
--- a/src/net/network.h
+++ b/src/net/network.h
@@ -27,9 +27,9 @@
#include <SDL_thread.h>
#include <string>
-#define TMW_CLIENT_PROTOCOL_VERSION 1
- /***< Protocol version, reported to the eAthena char and mapserver who
- can adjust the protocol accordingly */
+#define TMW_CLIENT_PROTOCOL_VERSION 1
+ /**< Protocol version, reported to the eAthena char and mapserver who
+ can adjust the protocol accordingly */
class MessageHandler;
class MessageIn;
diff --git a/src/net/playerhandler.cpp b/src/net/playerhandler.cpp
index c8442a89..a4a2dcc9 100644
--- a/src/net/playerhandler.cpp
+++ b/src/net/playerhandler.cpp
@@ -133,7 +133,8 @@ void PlayerHandler::handleMessage(MessageIn *msg)
player_node->stopAttack();
nearby = (engine->getCurrentMapName() == mapPath);
- // Switch the actual map, deleting the previous one
+
+ // Switch the actual map, deleting the previous one if necessary
engine->changeMap(mapPath);
current_npc = 0;
diff --git a/src/net/protocol.h b/src/net/protocol.h
index fabe6911..783283ba 100644
--- a/src/net/protocol.h
+++ b/src/net/protocol.h
@@ -27,6 +27,7 @@
*********************************/
#define SMSG_LOGIN_SUCCESS 0x0073 /**< Contains starting location */
#define SMSG_SERVER_PING 0x007f /**< Contains server tick */
+#define SMSG_UPDATE_HOST 0x0063 /**< Custom update host packet */
#define SMSG_PLAYER_UPDATE_1 0x01d8
#define SMSG_PLAYER_UPDATE_2 0x01d9
#define SMSG_PLAYER_MOVE 0x01da /**< A nearby player moves */
diff --git a/src/net/tradehandler.cpp b/src/net/tradehandler.cpp
index 11fe2c19..746e1d06 100644
--- a/src/net/tradehandler.cpp
+++ b/src/net/tradehandler.cpp
@@ -127,7 +127,7 @@ void TradeHandler::handleMessage(MessageIn *msg)
chatWindow->chatLog("Trade with " + tradePartnerName +
" cancelled", BY_SERVER);
// otherwise ignore silently
-
+
tradeWindow->setVisible(false);
player_node->setTrading(false);
break;
@@ -186,7 +186,7 @@ void TradeHandler::handleMessage(MessageIn *msg)
"partner is over weighted.",
BY_SERVER);
break;
- case 2:
+ case 2:
// Add item failed - player has no free slot
chatWindow->chatLog("Failed adding item. Trade "
"partner has no free slot.",
diff --git a/src/npc.cpp b/src/npc.cpp
index 78670581..8dbbf83c 100644
--- a/src/npc.cpp
+++ b/src/npc.cpp
@@ -21,6 +21,7 @@
#include "animatedsprite.h"
#include "graphics.h"
+#include "localplayer.h"
#include "npc.h"
#include "particle.h"
#include "text.h"
@@ -42,7 +43,7 @@ NPC::NPC(Uint32 id, Uint16 job, Map *map, Network *network):
{
NPCInfo info = NPCDB::get(job);
- //setup NPC sprites
+ // Setup NPC sprites
int c = BASE_SPRITE;
for (std::list<NPCsprite*>::const_iterator i = info.sprites.begin();
i != info.sprites.end();
@@ -75,6 +76,7 @@ NPC::~NPC()
if (mName)
{
delete mName;
+ player_node->setTarget(NULL);
}
}
diff --git a/src/particlecontainer.cpp b/src/particlecontainer.cpp
new file mode 100644
index 00000000..12ef5733
--- /dev/null
+++ b/src/particlecontainer.cpp
@@ -0,0 +1,177 @@
+/*
+ * The Mana World
+ * Copyright 2008 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with The Mana World; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <cassert>
+
+#include "particlecontainer.h"
+
+
+ParticleContainer::ParticleContainer(ParticleContainer *parent, bool delParent) :
+ mDelParent(delParent),
+ mNext(parent)
+{};
+
+ParticleContainer::~ParticleContainer()
+{
+ clearLocally();
+ if (mNext && mDelParent)
+ delete mNext;
+}
+
+void
+ParticleContainer::clear()
+{
+ clearLocally();
+ if (mNext)
+ mNext->clear();
+}
+
+
+void
+ParticleContainer::setPositions(float x, float y)
+{
+ if (mNext)
+ mNext->setPositions(x, y);
+}
+
+// -- particle list ----------------------------------------
+
+ParticleList::ParticleList(ParticleContainer *parent, bool delParent) :
+ ParticleContainer(parent, delParent) {};
+
+ParticleList::~ParticleList() {}
+
+void
+ParticleList::addLocally(Particle *particle)
+{
+ if (particle)
+ {
+ // The effect may not die without the beings permission or we segfault
+ particle->disableAutoDelete();
+ mElements.push_back(particle);
+ }
+}
+
+void
+ParticleList::removeLocally(Particle *particle)
+{
+ for (std::list<Particle *>::iterator it = mElements.begin();
+ it != mElements.end(); it++)
+ if (*it == particle) {
+ (*it)->kill();
+ mElements.erase(it);
+ }
+}
+
+void
+ParticleList::clearLocally()
+{
+ for (std::list<Particle *>::iterator it = mElements.begin();
+ it != mElements.end(); it++)
+ (*it)->kill();
+
+ mElements.clear();
+}
+
+void
+ParticleList::setPositions(float x, float y)
+{
+ ParticleContainer::setPositions(x, y);
+
+ for (std::list<Particle *>::iterator it = mElements.begin();
+ it != mElements.end();)
+ {
+ (*it)->setPosition(x, y);
+ if ((*it)->isExtinct())
+ {
+ (*it)->kill();
+ it = mElements.erase(it);
+ }
+ else
+ it++;
+ }
+}
+
+
+
+
+// -- particle vector ----------------------------------------
+
+ParticleVector::ParticleVector(ParticleContainer *parent, bool delParent) :
+ ParticleContainer(parent, delParent) {};
+
+ParticleVector::~ParticleVector() {};
+
+void
+ParticleVector::setLocally(int index, Particle *particle)
+{
+ assert(index >= 0);
+
+ delLocally(index);
+
+ if (mIndexedElements.size() <= (unsigned) index)
+ mIndexedElements.resize(index + 1, NULL);
+
+ mIndexedElements[index] = particle;
+}
+
+void
+ParticleVector::delLocally(int index)
+{
+ assert(index >= 0);
+
+ if (mIndexedElements.size() <= (unsigned) index)
+ return;
+
+ Particle *p = mIndexedElements[index];
+ if (p)
+ {
+ mIndexedElements[index] = NULL;
+ p->kill();
+ }
+}
+
+void
+ParticleVector::clearLocally()
+{
+ for (unsigned int i = 0; i < mIndexedElements.size(); i++)
+ delLocally(i);
+}
+
+void
+ParticleVector::setPositions(float x, float y)
+{
+ ParticleContainer::setPositions(x, y);
+
+ for (std::vector<Particle *>::iterator it = mIndexedElements.begin();
+ it != mIndexedElements.end(); it++)
+ if (*it)
+ {
+ (*it)->setPosition(x, y);
+
+ if ((*it)->isExtinct())
+ {
+ (*it)->kill();
+ *it = NULL;
+ }
+ }
+}
+
diff --git a/src/particlecontainer.h b/src/particlecontainer.h
new file mode 100644
index 00000000..cf002fbc
--- /dev/null
+++ b/src/particlecontainer.h
@@ -0,0 +1,125 @@
+/*
+ * The Mana World
+ * Copyright 2008 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with The Mana World; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef _PARTICLE_CONTAINER_H
+#define _PARTICLE_CONTAINER_H
+
+#include <list>
+#include <vector>
+
+#include "particle.h"
+
+
+/**
+ * Set of particle effects. May be stacked with other ParticleContainers. All
+ * operations herein affect such stacked containers, unless the operations end
+ * in `Locally'.
+ */
+class ParticleContainer
+{
+public:
+ /**
+ * Constructs a new particle container and assumes responsibility for
+ * its parent (for all operations defined herein, except when ending in `Locally')
+ *
+ * delParent means that the destructor should also free the parent.
+ */
+ ParticleContainer(ParticleContainer *parent = NULL, bool delParent = true);
+ virtual ~ParticleContainer();
+
+ /**
+ * Kills and removes all particle effects
+ */
+ void clear();
+
+ /**
+ * Kills and removes all particle effects (only in this container)
+ */
+ virtual void clearLocally() {};
+
+ /**
+ * Sets the positions of all elements
+ */
+ virtual void setPositions(float x, float y);
+
+protected:
+ bool mDelParent; /**< Delete mNext in destructor */
+ ParticleContainer *mNext; /**< Contained container, if any */
+};
+
+
+
+/**
+ * Linked list of particle effects.
+ */
+class ParticleList : public ParticleContainer
+{
+public:
+ ParticleList(ParticleContainer *parent = NULL, bool delParent = true);
+ virtual ~ParticleList();
+
+ /**
+ * Takes control of and adds a particle
+ */
+ void addLocally(Particle *);
+
+ /**
+ * `kills' and removes a particle
+ */
+ void removeLocally(Particle *);
+
+ virtual void clearLocally();
+
+ virtual void setPositions(float x, float y);
+
+protected:
+ std::list<Particle *> mElements; /**< Contained particle effects */
+};
+
+
+/**
+ * Particle container with indexing facilities
+ */
+class ParticleVector : public ParticleContainer
+{
+public:
+ ParticleVector(ParticleContainer *parent = NULL, bool delParent = true);
+ virtual ~ParticleVector();
+
+ /**
+ * Sets a particle at a specified index. Kills the previous particle
+ * there, if needed.
+ */
+ virtual void setLocally(int index, Particle *particle);
+
+ /**
+ * Removes a particle at a specified index
+ */
+ virtual void delLocally(int index);
+
+ virtual void clearLocally();
+ virtual void setPositions(float x, float y);
+
+protected:
+ std::vector<Particle *> mIndexedElements;
+};
+
+#endif
diff --git a/src/player.cpp b/src/player.cpp
index 1a7480db..e6244bb5 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -212,3 +212,4 @@ void Player::updateCoords()
mName->adviseXY(mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET);
}
}
+
diff --git a/src/player_relations.cpp b/src/player_relations.cpp
index 157cc09b..ef00a738 100644
--- a/src/player_relations.cpp
+++ b/src/player_relations.cpp
@@ -337,9 +337,9 @@ public:
virtual void
ignore(Player *player, unsigned int flags)
- {
- player->flash(200);
- }
+ {
+ player->flash(200);
+ }
};
class PIS_emote : public PlayerIgnoreStrategy
diff --git a/src/resources/colordb.cpp b/src/resources/colordb.cpp
index 46acaf39..3d2e15e0 100644
--- a/src/resources/colordb.cpp
+++ b/src/resources/colordb.cpp
@@ -56,8 +56,7 @@ void ColorDB::load()
TMWHair = true;
- if (doc)
- delete doc;
+ delete doc;
doc = new XML::Document(TMW_COLOR_FILE);
root = doc->rootNode();
@@ -67,8 +66,7 @@ void ColorDB::load()
mColors[0] = mFail;
mLoaded = true;
- if (doc)
- delete doc;
+ delete doc;
return;
}
@@ -91,8 +89,7 @@ void ColorDB::load()
}
}
- if (doc)
- delete doc;
+ delete doc;
mLoaded = true;
}
diff --git a/src/resources/imageset.h b/src/resources/imageset.h
index c7915212..26ce99ea 100644
--- a/src/resources/imageset.h
+++ b/src/resources/imageset.h
@@ -47,17 +47,17 @@ class ImageSet : public Resource
/**
* Returns the width of the images in the image set.
*/
- int getWidth() { return mWidth; };
+ int getWidth() const { return mWidth; };
/**
* Returns the height of the images in the image set.
*/
- int getHeight() { return mHeight; };
+ int getHeight() const { return mHeight; };
typedef std::vector<Image*>::size_type size_type;
Image* get(size_type i) const;
- size_type size() { return mImages.size(); }
+ size_type size() const { return mImages.size(); }
private:
std::vector<Image*> mImages;
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index 894cc4fc..b4beb558 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -240,7 +240,8 @@ MapReader::readMap(xmlNodePtr node, const std::string &path)
{
if (xmlStrEqual(objectNode->name, BAD_CAST "object"))
{
- const std::string objType = XML::getProperty(objectNode, "type", "");
+ const std::string objType =
+ XML::getProperty(objectNode, "type", "");
if (objType == "WARP" || objType == "NPC" ||
objType == "SCRIPT" || objType == "SPAWN")
@@ -249,12 +250,14 @@ MapReader::readMap(xmlNodePtr node, const std::string &path)
continue;
}
- const std::string objName = XML::getProperty(objectNode, "name", "");
+ const std::string objName =
+ XML::getProperty(objectNode, "name", "");
const int objX = XML::getProperty(objectNode, "x", 0);
const int objY = XML::getProperty(objectNode, "y", 0);
logger->log("- Loading object name: %s type: %s at %d:%d",
- objName.c_str(), objType.c_str(), objX, objY);
+ objName.c_str(), objType.c_str(),
+ objX, objY);
if (objType == "PARTICLE_EFFECT")
{
@@ -263,7 +266,9 @@ MapReader::readMap(xmlNodePtr node, const std::string &path)
continue;
}
- map->addParticleEffect(objName, objX + offsetX, objY + offsetY);
+ map->addParticleEffect(objName,
+ objX + offsetX,
+ objY + offsetY);
}
else
{
@@ -302,13 +307,14 @@ static void setTile(Map *map, MapLayer *layer, int x, int y, int gid)
// Set regular tile on a layer
Image * const img = set ? set->get(gid - set->getFirstGid()) : 0;
layer->setTile(x, y, img);
- } else {
+ } else {
// Set collision tile
map->setWalk(x, y, (!set || (gid - set->getFirstGid() == 0)));
- }
+ }
}
-void MapReader::readLayer(xmlNodePtr node, Map *map)
+void
+MapReader::readLayer(xmlNodePtr node, Map *map)
{
// Layers are not necessarily the same size as the map
const int w = XML::getProperty(node, "width", map->getWidth());
@@ -323,25 +329,25 @@ void MapReader::readLayer(xmlNodePtr node, Map *map)
MapLayer *layer = 0;
if (!isCollisionLayer) {
- layer = new MapLayer(offsetX, offsetY, w, h, isFringeLayer);
- map->addLayer(layer);
+ layer = new MapLayer(offsetX, offsetY, w, h, isFringeLayer);
+ map->addLayer(layer);
}
logger->log("- Loading layer \"%s\"", name.c_str());
int x = 0;
int y = 0;
-
+
// Load the tile data
for_each_xml_child_node(childNode, node)
{
if (!xmlStrEqual(childNode->name, BAD_CAST "data"))
- continue;
-
+ continue;
+
const std::string encoding =
- XML::getProperty(childNode, "encoding", "");
+ XML::getProperty(childNode, "encoding", "");
const std::string compression =
- XML::getProperty(childNode, "compression", "");
-
+ XML::getProperty(childNode, "compression", "");
+
if (encoding == "base64")
{
if (!compression.empty() && compression != "gzip") {
@@ -382,11 +388,11 @@ void MapReader::readLayer(xmlNodePtr node, Map *map)
unsigned char *inflated;
unsigned int inflatedSize =
inflateMemory(binData, binLen, inflated);
-
+
free(binData);
binData = inflated;
binLen = inflatedSize;
-
+
if (!inflated) {
logger->log("Error: Could not decompress layer!");
return;
@@ -400,11 +406,12 @@ void MapReader::readLayer(xmlNodePtr node, Map *map)
binData[i + 3] << 24;
setTile(map, layer, x, y, gid);
-
+
x++;
- if (x == w)
- {
+ if (x == w) {
x = 0; y++;
+
+ // When we're done, don't crash on too much data
if (y == h)
break;
}
@@ -418,17 +425,17 @@ void MapReader::readLayer(xmlNodePtr node, Map *map)
{
if (!xmlStrEqual(childNode2->name, BAD_CAST "tile"))
continue;
-
- const int gid = XML::getProperty(childNode2, "gid", -1);
- setTile(map, layer, x, y, gid);
-
- x++;
- if (x == w) {
- x = 0; y++;
- if (y >= h)
- break;
- }
- }
+
+ const int gid = XML::getProperty(childNode2, "gid", -1);
+ setTile(map, layer, x, y, gid);
+
+ x++;
+ if (x == w) {
+ x = 0; y++;
+ if (y >= h)
+ break;
+ }
+ }
}
if (y < h)
diff --git a/src/text.h b/src/text.h
index a370771d..173a5686 100644
--- a/src/text.h
+++ b/src/text.h
@@ -31,43 +31,41 @@ class TextManager;
class Text
{
- friend class TextManager;
+ friend class TextManager;
+
public:
/**
- * Constructor creates a text object to display on the screen
+ * Constructor creates a text object to display on the screen.
*/
Text(const std::string &text, int x, int y,
gcn::Graphics::Alignment alignment, gcn::Font *font,
gcn::Color colour);
/**
- * Allows the originator of the text to specify the ideal coordinates
+ * Destructor. The text is removed from the screen.
*/
- void
- adviseXY(int x, int y);
+ virtual ~Text();
/**
- * Remove the text from the screen
+ * Allows the originator of the text to specify the ideal coordinates.
*/
- virtual ~Text();
+ void adviseXY(int x, int y);
/**
- * Draws the text
+ * Draws the text.
*/
- virtual void
- draw(Graphics *graphics, int xOff, int yOff);
-
- protected:
+ virtual void draw(Graphics *graphics, int xOff, int yOff);
- int mX; /**< Actual x-value of left of text written */
- int mY; /**< Actual y-value of top of text written */
- int mWidth; /**< The width of the text */
- int mHeight; /**< The height of the text */
- int mXOffset; /**< The offset of mX from the desired x */
- static int mInstances; /**< Instances of text */
- gcn::Font *mFont; /**< The font used */
- std::string mText; /**< The text to display */
- gcn::Color mColour; /**< The colour of the text */
+ private:
+ int mX; /**< Actual x-value of left of text written. */
+ int mY; /**< Actual y-value of top of text written. */
+ int mWidth; /**< The width of the text. */
+ int mHeight; /**< The height of the text. */
+ int mXOffset; /**< The offset of mX from the desired x. */
+ static int mInstances; /**< Instances of text. */
+ gcn::Font *mFont; /**< The font used. */
+ std::string mText; /**< The text to display. */
+ gcn::Color mColour; /**< The colour of the text. */
};
class FlashText : public Text
@@ -90,10 +88,9 @@ class FlashText : public Text
/**
* Draws the text
*/
- virtual void
- draw(Graphics *graphics, int xOff, int yOff);
+ virtual void draw(Graphics *graphics, int xOff, int yOff);
private:
- int mTime; /**< Time left for flashing */
+ int mTime; /**< Time left for flashing */
};
#endif
diff --git a/src/tileset.h b/src/tileset.h
index fb5593ef..fb855831 100644
--- a/src/tileset.h
+++ b/src/tileset.h
@@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * $Id: tileset.h 3753 2007-11-20 12:27:56Z b_lindeijer $
*/
#ifndef _TMW_TILESET_H_
diff --git a/src/utils/fastsqrt.h b/src/utils/fastsqrt.h
index 8da1d354..78768149 100644
--- a/src/utils/fastsqrt.h
+++ b/src/utils/fastsqrt.h
@@ -1,24 +1,24 @@
-/* A very fast function to calculate the approximate inverse square root of a
- * floating point value and a helper function that uses it for getting the
- * normal squareroot. For an explanation of the inverse squareroot function
- * read:
- * http://www.math.purdue.edu/~clomont/Math/Papers/2003/InvSqrt.pdf
- *
- * Unfortunately the original creator of this function seems to be unknown.
- */
-
-float fastInvSqrt(float x)
-{
- union { int i; float x; } tmp;
- float xhalf = 0.5f * x;
- tmp.x = x;
- tmp.i = 0x5f375a86 - (tmp.i >> 1);
- x = tmp.x;
- x = x * (1.5f - xhalf * x * x);
- return x;
-}
-
-float fastSqrt(float x)
-{
- return 1.0f / fastInvSqrt(x);
-}
+/* A very fast function to calculate the approximate inverse square root of a
+ * floating point value and a helper function that uses it for getting the
+ * normal squareroot. For an explanation of the inverse squareroot function
+ * read:
+ * http://www.math.purdue.edu/~clomont/Math/Papers/2003/InvSqrt.pdf
+ *
+ * Unfortunately the original creator of this function seems to be unknown.
+ */
+
+float fastInvSqrt(float x)
+{
+ union { int i; float x; } tmp;
+ float xhalf = 0.5f * x;
+ tmp.x = x;
+ tmp.i = 0x5f375a86 - (tmp.i >> 1);
+ x = tmp.x;
+ x = x * (1.5f - xhalf * x * x);
+ return x;
+}
+
+float fastSqrt(float x)
+{
+ return 1.0f / fastInvSqrt(x);
+}
diff --git a/src/winver.h b/src/winver.h
index 3c6e7aed..f56d0c6b 100644
--- a/src/winver.h
+++ b/src/winver.h
@@ -3,4 +3,4 @@
#define VER_MINOR 0
#define VER_RELEASE 27
#define VER_BUILD 0
-#define PACKAGE_VERSION "0.0.27"
+#define PACKAGE_VERSION "0.0.27"
diff --git a/themanaworld.xcodeproj/garfield.mode1 b/themanaworld.xcodeproj/garfield.mode1
new file mode 100644
index 00000000..debfe473
--- /dev/null
+++ b/themanaworld.xcodeproj/garfield.mode1
@@ -0,0 +1,1329 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXRunSessionModule</string>
+ <key>Name</key>
+ <string>Run Log</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ </array>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>92BC40BF0BAEE965000DAB7F</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1</string>
+ <key>MajorVersion</key>
+ <integer>31</integer>
+ <key>MinorVersion</key>
+ <integer>1</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-target-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>buildOrClean</string>
+ <string>build-and-runOrDebug</string>
+ <string>debug</string>
+ <string>clean-target</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>toggle-editor</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>20286C29FDCF999611CA2CEA</string>
+ <string>20286C2AFDCF999611CA2CEA</string>
+ <string>20286C32FDCF999611CA2CEA</string>
+ <string>1C37FBAC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>78</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 1010}, {186, 520}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 538}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>372 210 780 579 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {572, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>372 210 780 579 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 5}, {572, 533}}</string>
+ <key>RubberWindowFrame</key>
+ <string>372 210 780 579 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>533pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>572pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>924A47AB0D1069F5004FEA83</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>924A47AC0D1069F5004FEA83</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.short</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>92BC40B30BAEE8C1000DAB7F</string>
+ <string>/Users/garfield/programming/themanaworld/tmw/branches/0.0/themanaworld.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>372 210 780 579 0 0 1280 832 </string>
+ <key>WindowTools</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {553, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>316 222 553 548 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBuildLogShowsTranscriptDefaultKey</key>
+ <string>{{0, 5}, {553, 497}}</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 5}, {553, 502}}</string>
+ <key>RubberWindowFrame</key>
+ <string>316 222 553 548 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>502pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>507pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>92BC40B30BAEE8C1000DAB7F</string>
+ <string>924A47B10D107075004FEA83</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.build</string>
+ <key>WindowString</key>
+ <string>316 222 553 548 0 0 1280 832 </string>
+ <key>WindowToolGUID</key>
+ <string>92BC40B30BAEE8C1000DAB7F</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debug</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>playerhandler.cpp</string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 212}}</string>
+ <key>RubberWindowFrame</key>
+ <string>212 362 781 470 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>212pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 217}, {781, 212}}</string>
+ <key>RubberWindowFrame</key>
+ <string>212 362 781 470 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>212pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>429pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>92E427510C1EB4AC000361B7</string>
+ <string>92E427520C1EB4AC000361B7</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>212 362 781 470 0 0 1280 832 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {440, 358}}</string>
+ <key>RubberWindowFrame</key>
+ <string>650 41 440 400 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1C78EAAE065D492600B07095</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>WindowString</key>
+ <string>650 41 440 400 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.run</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>LauncherConfigVersion</key>
+ <string>3</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528B0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Run</string>
+ <key>Runner</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {493, 167}}</string>
+ <string>{{0, 176}, {493, 267}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {405, 443}}</string>
+ <string>{{414, 0}, {514, 443}}</string>
+ </array>
+ </dict>
+ </dict>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {459, 159}}</string>
+ <key>RubberWindowFrame</key>
+ <string>316 570 459 200 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXRunSessionModule</string>
+ <key>Proportion</key>
+ <string>159pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>159pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Run Log</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXRunSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2B3069F1EA900FABCE6</string>
+ <string>92AA62E70C21BDEA007FAAD0</string>
+ <string>1CD0528B0623707200166675</string>
+ <string>92AA62E80C21BDEA007FAAD0</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.run</string>
+ <key>WindowString</key>
+ <string>316 570 459 200 0 0 1280 832 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2B3069F1EA900FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>2</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpoints</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimator</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/themanaworld.xcodeproj/garfield.mode1v3 b/themanaworld.xcodeproj/garfield.mode1v3
new file mode 100644
index 00000000..0076a8bc
--- /dev/null
+++ b/themanaworld.xcodeproj/garfield.mode1v3
@@ -0,0 +1,1407 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>92A4CC870D1C46A000CA28FB</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>33</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-target-popup</string>
+ <string>active-buildstyle-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>buildOrClean</string>
+ <string>build-and-goOrGo</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>toggle-editor</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>20286C29FDCF999611CA2CEA</string>
+ <string>5048396909E3304600765E4B</string>
+ <string>20286C2CFDCF999611CA2CEA</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>1</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 520}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 538}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>670 363 780 579 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Info.plist</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Info.plist</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>927F62650ED4F41700D919E6</string>
+ <key>history</key>
+ <array>
+ <string>92B1EBDE0ED4E43D009AF197</string>
+ <string>92B1EBF30ED4E5C5009AF197</string>
+ <string>927F625B0ED4F41700D919E6</string>
+ <string>927F625C0ED4F41700D919E6</string>
+ <string>927F625D0ED4F41700D919E6</string>
+ </array>
+ <key>prevStack</key>
+ <array>
+ <string>92B1EBE00ED4E43D009AF197</string>
+ <string>92B1EBE10ED4E43D009AF197</string>
+ <string>92B1EBF50ED4E5C5009AF197</string>
+ <string>927F625E0ED4F41700D919E6</string>
+ <string>927F625F0ED4F41700D919E6</string>
+ <string>927F62600ED4F41700D919E6</string>
+ <string>927F62610ED4F41700D919E6</string>
+ <string>927F62620ED4F41700D919E6</string>
+ <string>927F62630ED4F41700D919E6</string>
+ <string>927F62640ED4F41700D919E6</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {572, 403}}</string>
+ <key>RubberWindowFrame</key>
+ <string>670 363 780 579 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>403pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 408}, {572, 130}}</string>
+ <key>RubberWindowFrame</key>
+ <string>670 363 780 579 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>130pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>572pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>927F621A0ED4EA6A00D919E6</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>927F621B0ED4EA6A00D919E6</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>92A4CC8A0D1C5F1E00CA28FB</string>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>/Users/garfield/programming/tmwclient/themanaworld.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>670 363 780 579 0 0 1680 1028 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {553, 151}}</string>
+ <key>RubberWindowFrame</key>
+ <string>490 365 553 548 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>151pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBuildLogShowsTranscriptDefaultKey</key>
+ <string>{{0, 166}, {553, 185}}</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 156}, {553, 351}}</string>
+ <key>RubberWindowFrame</key>
+ <string>490 365 553 548 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>351pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>507pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>92A4CC8A0D1C5F1E00CA28FB</string>
+ <string>927F623B0ED4EBEB00D919E6</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowString</key>
+ <string>490 365 553 548 0 0 1680 1028 </string>
+ <key>WindowToolGUID</key>
+ <string>92A4CC8A0D1C5F1E00CA28FB</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {316, 203}}</string>
+ <string>{{316, 0}, {378, 203}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 203}}</string>
+ <string>{{0, 203}, {694, 178}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 381}}</string>
+ <key>PBXDebugSessionStackFrameViewKey</key>
+ <dict>
+ <key>DebugVariablesTableConfiguration</key>
+ <array>
+ <string>Name</string>
+ <real>120</real>
+ <string>Value</string>
+ <real>85</real>
+ <string>Summary</string>
+ <real>986</real>
+ </array>
+ <key>Frame</key>
+ <string>{{316, 0}, {378, 203}}</string>
+ <key>RubberWindowFrame</key>
+ <string>348 319 694 422 0 0 1680 1028 </string>
+ </dict>
+ <key>RubberWindowFrame</key>
+ <string>348 319 694 422 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>381pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>381pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>927F621D0ED4EA6A00D919E6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>927F621E0ED4EA6A00D919E6</string>
+ <string>927F621F0ED4EA6A00D919E6</string>
+ <string>927F62200ED4EA6A00D919E6</string>
+ <string>927F62210ED4EA6A00D919E6</string>
+ <string>927F62220ED4EA6A00D919E6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>348 319 694 422 0 0 1680 1028 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 212}}</string>
+ <key>RubberWindowFrame</key>
+ <string>212 362 781 470 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>212pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 217}, {781, 212}}</string>
+ <key>RubberWindowFrame</key>
+ <string>212 362 781 470 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>212pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>429pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>92983E440D3A6D3600350ADB</string>
+ <string>92983E450D3A6D3600350ADB</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>212 362 781 470 0 0 1280 832 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {440, 359}}</string>
+ <key>RubberWindowFrame</key>
+ <string>655 284 440 400 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>359pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>359pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>927F623C0ED4EBEB00D919E6</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>655 284 440 400 0 0 1680 1028 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <false/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>243 383 744 409 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>243 383 744 409 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>92EE9EF30D2E0CA400DDE300</string>
+ <string>92EE9EF40D2E0CA400DDE300</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>243 383 744 409 0 0 1280 832 </string>
+ <key>WindowToolGUID</key>
+ <string>92EE9EF30D2E0CA400DDE300</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <false/>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <false/>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <false/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/themanaworld.xcodeproj/garfield.pbxuser b/themanaworld.xcodeproj/garfield.pbxuser
new file mode 100644
index 00000000..42957a89
--- /dev/null
+++ b/themanaworld.xcodeproj/garfield.pbxuser
@@ -0,0 +1,925 @@
+// !$*UTF8*$!
+{
+ 20286C28FDCF999611CA2CEA /* Project object */ = {
+ activeBuildConfigurationName = Release;
+ activeExecutable = 92BC3EBC0BAEE3BB000DAB7F /* themanaworld */;
+ activeTarget = 8D0C4E890486CD37000505A6 /* themanaworld */;
+ addToTargets = (
+ 8D0C4E890486CD37000505A6 /* themanaworld */,
+ );
+ breakpoints = (
+ );
+ codeSenseManager = 92BC3EC90BAEE3C8000DAB7F /* Code sense */;
+ executables = (
+ 92BC3EBC0BAEE3BB000DAB7F /* themanaworld */,
+ );
+ perUserDictionary = {
+ "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 20,
+ 216,
+ 20,
+ 100,
+ 99,
+ 10,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXBreakpointsDataSource_ActionID,
+ PBXBreakpointsDataSource_TypeID,
+ PBXBreakpointsDataSource_BreakpointID,
+ PBXBreakpointsDataSource_UseID,
+ PBXBreakpointsDataSource_LocationID,
+ PBXBreakpointsDataSource_ConditionID,
+ PBXBreakpointsDataSource_IgnoreCountID,
+ PBXBreakpointsDataSource_ContinueID,
+ );
+ };
+ PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 300,
+ 133,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXErrorsWarningsDataSource_TypeID,
+ PBXErrorsWarningsDataSource_MessageID,
+ PBXErrorsWarningsDataSource_LocationID,
+ );
+ };
+ PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 22,
+ 300,
+ 131,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXExecutablesDataSource_ActiveFlagID,
+ PBXExecutablesDataSource_NameID,
+ PBXExecutablesDataSource_CommentsID,
+ );
+ };
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 333,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 20,
+ 219,
+ 20,
+ 48.1626,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_SCM_ColumnID,
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 293,
+ 60,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 249045476;
+ PBXWorkspaceStateSaveDate = 249045476;
+ };
+ perUserProjectItems = {
+ 927F625B0ED4F41700D919E6 = 927F625B0ED4F41700D919E6 /* PBXTextBookmark */;
+ 927F625C0ED4F41700D919E6 = 927F625C0ED4F41700D919E6 /* PBXTextBookmark */;
+ 927F625D0ED4F41700D919E6 = 927F625D0ED4F41700D919E6 /* PlistBookmark */;
+ 927F625E0ED4F41700D919E6 = 927F625E0ED4F41700D919E6 /* PlistBookmark */;
+ 927F625F0ED4F41700D919E6 = 927F625F0ED4F41700D919E6 /* PBXTextBookmark */;
+ 927F62600ED4F41700D919E6 = 927F62600ED4F41700D919E6 /* PBXTextBookmark */;
+ 927F62610ED4F41700D919E6 = 927F62610ED4F41700D919E6 /* PlistBookmark */;
+ 927F62620ED4F41700D919E6 = 927F62620ED4F41700D919E6 /* PBXTextBookmark */;
+ 927F62630ED4F41700D919E6 = 927F62630ED4F41700D919E6 /* PlistBookmark */;
+ 927F62640ED4F41700D919E6 = 927F62640ED4F41700D919E6 /* PBXTextBookmark */;
+ 927F62650ED4F41700D919E6 = 927F62650ED4F41700D919E6 /* PlistBookmark */;
+ 92B1EBDE0ED4E43D009AF197 = 92B1EBDE0ED4E43D009AF197 /* PBXTextBookmark */;
+ 92B1EBE00ED4E43D009AF197 = 92B1EBE00ED4E43D009AF197 /* PBXTextBookmark */;
+ 92B1EBE10ED4E43D009AF197 = 92B1EBE10ED4E43D009AF197 /* PBXTextBookmark */;
+ 92B1EBF30ED4E5C5009AF197 = 92B1EBF30ED4E5C5009AF197 /* PBXTextBookmark */;
+ 92B1EBF50ED4E5C5009AF197 = 92B1EBF50ED4E5C5009AF197 /* PBXTextBookmark */;
+ };
+ sourceControlManager = 92BC3EC80BAEE3C8000DAB7F /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 8D0C4E890486CD37000505A6 /* themanaworld */ = {
+ activeExec = 0;
+ executables = (
+ 92BC3EBC0BAEE3BB000DAB7F /* themanaworld */,
+ );
+ };
+ 92024E740CF1DCF6006B55CB /* imageloader.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 1400}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{1434, 1155}";
+ sepNavWindowFrame = "{{65, 113}, {627, 714}}";
+ };
+ };
+ 92037A190ED2035A00D3712D /* SDLMain.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {802, 506}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 307}";
+ sepNavWindowFrame = "{{15, 389}, {861, 634}}";
+ };
+ };
+ 924A42600C0874D00066885E /* Info.plist */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {674, 474}}";
+ sepNavSelRange = "{418, 0}";
+ sepNavVisRange = "{0, 771}";
+ sepNavVisRect = "{{0, 0}, {557, 473}}";
+ sepNavWindowFrame = "{{192, 99}, {602, 602}}";
+ };
+ };
+ 926F9CF60DB005FA00AACD26 /* itemshortcut.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 1302}}";
+ sepNavSelRange = "{1424, 0}";
+ sepNavVisRange = "{1251, 209}";
+ };
+ };
+ 927F625B0ED4F41700D919E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92037A190ED2035A00D3712D /* SDLMain.h */;
+ name = "SDLMain.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 307;
+ vrLoc = 0;
+ };
+ 927F625C0ED4F41700D919E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */;
+ name = "SDLMain.m: 14";
+ rLen = 0;
+ rLoc = 440;
+ rType = 0;
+ vrLen = 759;
+ vrLoc = 0;
+ };
+ 927F625D0ED4F41700D919E6 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 924A42600C0874D00066885E /* Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ );
+ name = /Users/garfield/programming/tmwclient/Info.plist;
+ rLen = 0;
+ rLoc = 2147483647;
+ };
+ 927F625E0ED4F41700D919E6 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 924A42600C0874D00066885E /* Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ NSPrincipalClass,
+ );
+ name = /Users/garfield/programming/tmwclient/Info.plist;
+ rLen = 0;
+ rLoc = 2147483647;
+ };
+ 927F625F0ED4F41700D919E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92037A190ED2035A00D3712D /* SDLMain.h */;
+ name = "SDLMain.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 307;
+ vrLoc = 0;
+ };
+ 927F62600ED4F41700D919E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */;
+ name = "SDLMain.m: 14";
+ rLen = 0;
+ rLoc = 440;
+ rType = 0;
+ vrLen = 635;
+ vrLoc = 124;
+ };
+ 927F62610ED4F41700D919E6 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 924A42600C0874D00066885E /* Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ NSPrincipalClass,
+ );
+ name = /Users/garfield/programming/tmwclient/Info.plist;
+ rLen = 0;
+ rLoc = 2147483647;
+ };
+ 927F62620ED4F41700D919E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */;
+ name = "SDLMain.m: 14";
+ rLen = 0;
+ rLoc = 440;
+ rType = 0;
+ vrLen = 643;
+ vrLoc = 7053;
+ };
+ 927F62630ED4F41700D919E6 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 924A42600C0874D00066885E /* Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ );
+ name = /Users/garfield/programming/tmwclient/Info.plist;
+ rLen = 0;
+ rLoc = 2147483647;
+ };
+ 927F62640ED4F41700D919E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */;
+ name = "SDLMain.m: 14";
+ rLen = 0;
+ rLoc = 440;
+ rType = 0;
+ vrLen = 759;
+ vrLoc = 0;
+ };
+ 927F62650ED4F41700D919E6 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 924A42600C0874D00066885E /* Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ CFBundleVersion,
+ );
+ name = /Users/garfield/programming/tmwclient/Info.plist;
+ rLen = 0;
+ rLoc = 2147483647;
+ };
+ 92A4CCE70D1DA58D00CA28FB /* zip.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 20230}}";
+ sepNavSelRange = "{229, 19}";
+ sepNavVisRange = "{0, 1138}";
+ sepNavWindowFrame = "{{180, 8}, {627, 714}}";
+ };
+ };
+ 92A4CCF10D1DA5A800CA28FB /* physfs_platforms.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 586}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 1165}";
+ sepNavWindowFrame = "{{88, 92}, {627, 714}}";
+ };
+ };
+ 92A4CCF20D1DA5C600CA28FB /* macosx.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {720, 5558}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 961}";
+ sepNavWindowFrame = "{{180, 8}, {627, 714}}";
+ };
+ };
+ 92B1EBDE0ED4E43D009AF197 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC3F660BAEE55B000DAB7F /* viewport.cpp */;
+ name = "viewport.cpp: 261";
+ rLen = 63;
+ rLoc = 7873;
+ rType = 0;
+ vrLen = 780;
+ vrLoc = 7501;
+ };
+ 92B1EBE00ED4E43D009AF197 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */;
+ name = "SDLMain.m: 14";
+ rLen = 0;
+ rLoc = 440;
+ rType = 0;
+ vrLen = 759;
+ vrLoc = 0;
+ };
+ 92B1EBE10ED4E43D009AF197 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC3F660BAEE55B000DAB7F /* viewport.cpp */;
+ name = "viewport.cpp: 261";
+ rLen = 63;
+ rLoc = 7873;
+ rType = 0;
+ vrLen = 780;
+ vrLoc = 7501;
+ };
+ 92B1EBF30ED4E5C5009AF197 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC3EEF0BAEE55A000DAB7F /* graphics.h */;
+ name = "graphics.h: 25";
+ rLen = 39;
+ rLoc = 879;
+ rType = 0;
+ vrLen = 692;
+ vrLoc = 434;
+ };
+ 92B1EBF50ED4E5C5009AF197 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 92BC3EEF0BAEE55A000DAB7F /* graphics.h */;
+ name = "graphics.h: 25";
+ rLen = 39;
+ rLoc = 879;
+ rType = 0;
+ vrLen = 692;
+ vrLoc = 434;
+ };
+ 92BC3EBC0BAEE3BB000DAB7F /* themanaworld */ = {
+ isa = PBXExecutable;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ autoAttachOnCrash = 1;
+ breakpointsEnabled = 0;
+ configStateDict = {
+ };
+ customDataFormattersEnabled = 1;
+ debuggerPlugin = GDBDebugging;
+ disassemblyDisplayState = 0;
+ dylibVariantSuffix = "";
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ executableSystemSymbolLevel = 0;
+ executableUserSymbolLevel = 0;
+ libgmallocEnabled = 0;
+ name = themanaworld;
+ savedGlobals = {
+ };
+ sourceDirectories = (
+ );
+ variableFormatDictionary = {
+ };
+ };
+ 92BC3EC80BAEE3C8000DAB7F /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ };
+ scmType = "";
+ };
+ 92BC3EC90BAEE3C8000DAB7F /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+ 92BC3ECC0BAEE55A000DAB7F /* being.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {543, 6776}}";
+ sepNavSelRange = "{2724, 0}";
+ sepNavVisRange = "{2276, 537}";
+ sepNavVisRect = "{{0, 1497}, {557, 473}}";
+ sepNavWindowFrame = "{{100, 183}, {602, 602}}";
+ };
+ };
+ 92BC3EE40BAEE55A000DAB7F /* engine.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {720, 1848}}";
+ sepNavSelRange = "{3021, 9}";
+ sepNavVisRange = "{2828, 277}";
+ sepNavWindowFrame = "{{64, 113}, {627, 714}}";
+ };
+ };
+ 92BC3EE60BAEE55A000DAB7F /* equipment.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 700}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{268, 1098}";
+ sepNavWindowFrame = "{{64, 113}, {627, 714}}";
+ };
+ };
+ 92BC3EEC0BAEE55A000DAB7F /* game.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 11256}}";
+ sepNavSelRange = "{24258, 0}";
+ sepNavVisRange = "{18439, 446}";
+ sepNavVisRect = "{{0, 4423}, {734, 180}}";
+ sepNavWindowFrame = "{{134, 50}, {627, 714}}";
+ };
+ };
+ 92BC3EED0BAEE55A000DAB7F /* game.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {543, 1148}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{1178, 918}";
+ sepNavVisRect = "{{0, 297}, {557, 473}}";
+ sepNavWindowFrame = "{{215, 78}, {602, 602}}";
+ };
+ };
+ 92BC3EEF0BAEE55A000DAB7F /* graphics.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {492, 2240}}";
+ sepNavSelRange = "{879, 39}";
+ sepNavVisRange = "{878, 92}";
+ sepNavVisRect = "{{0, 1767}, {557, 473}}";
+ sepNavWindowFrame = "{{192, 99}, {602, 602}}";
+ };
+ };
+ 92BC3EF70BAEE55A000DAB7F /* button.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 2044}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 1537}, {557, 473}}";
+ sepNavWindowFrame = "{{54, 225}, {602, 602}}";
+ };
+ };
+ 92BC3EFB0BAEE55A000DAB7F /* buysell.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 924}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 418}, {557, 473}}";
+ sepNavWindowFrame = "{{54, 225}, {602, 602}}";
+ };
+ };
+ 92BC3F0D0BAEE55A000DAB7F /* debugwindow.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {720, 1428}}";
+ sepNavSelRange = "{2619, 0}";
+ sepNavVisRange = "{2223, 508}";
+ };
+ };
+ 92BC3F120BAEE55A000DAB7F /* focushandler.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 952}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 1387}";
+ sepNavWindowFrame = "{{64, 113}, {627, 714}}";
+ };
+ };
+ 92BC3F150BAEE55A000DAB7F /* gui.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 3234}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{2374, 1272}";
+ sepNavWindowFrame = "{{157, 29}, {627, 714}}";
+ };
+ };
+ 92BC3F1D0BAEE55A000DAB7F /* inventorywindow.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 3486}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 2371}, {557, 473}}";
+ sepNavWindowFrame = "{{100, 183}, {602, 602}}";
+ };
+ };
+ 92BC3F340BAEE55A000DAB7F /* ok_dialog.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 980}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{755, 1075}";
+ sepNavWindowFrame = "{{88, 92}, {627, 714}}";
+ };
+ };
+ 92BC3F350BAEE55A000DAB7F /* ok_dialog.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 742}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{361, 1114}";
+ sepNavWindowFrame = "{{65, 113}, {627, 714}}";
+ };
+ };
+ 92BC3F450BAEE55A000DAB7F /* sell.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 3962}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 2734}, {557, 473}}";
+ sepNavWindowFrame = "{{77, 204}, {602, 602}}";
+ };
+ };
+ 92BC3F580BAEE55A000DAB7F /* status.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 5530}}";
+ sepNavSelRange = "{12685, 0}";
+ sepNavVisRect = "{{0, 3895}, {557, 473}}";
+ sepNavWindowFrame = "{{54, 225}, {602, 602}}";
+ };
+ };
+ 92BC3F620BAEE55B000DAB7F /* updatewindow.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 6762}}";
+ sepNavSelRange = "{9189, 0}";
+ sepNavVisRange = "{9082, 354}";
+ sepNavWindowFrame = "{{157, 29}, {627, 714}}";
+ };
+ };
+ 92BC3F660BAEE55B000DAB7F /* viewport.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {511, 6706}}";
+ sepNavSelRange = "{7873, 63}";
+ sepNavVisRange = "{7501, 780}";
+ sepNavVisRect = "{{0, 4144}, {732, 459}}";
+ sepNavWindowFrame = "{{61, 197}, {777, 588}}";
+ };
+ };
+ 92BC3F670BAEE55B000DAB7F /* viewport.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {732, 2520}}";
+ sepNavSelRange = "{3505, 0}";
+ sepNavVisRect = "{{0, 1906}, {732, 459}}";
+ sepNavWindowFrame = "{{153, 113}, {777, 588}}";
+ };
+ };
+ 92BC3F680BAEE55B000DAB7F /* window.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 6580}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 6107}, {557, 473}}";
+ sepNavWindowFrame = "{{100, 183}, {602, 602}}";
+ };
+ };
+ 92BC3F690BAEE55B000DAB7F /* window.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 3878}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 533}, {557, 473}}";
+ sepNavWindowFrame = "{{77, 204}, {602, 602}}";
+ };
+ };
+ 92BC3F6D0BAEE55B000DAB7F /* inventory.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 1904}}";
+ sepNavSelRange = "{1728, 0}";
+ sepNavVisRange = "{1653, 334}";
+ };
+ };
+ 92BC3F700BAEE55B000DAB7F /* item.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 1890}}";
+ sepNavSelRange = "{1887, 0}";
+ sepNavVisRange = "{1727, 287}";
+ };
+ };
+ 92BC3F730BAEE55B000DAB7F /* localplayer.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {543, 6706}}";
+ sepNavSelRange = "{6691, 0}";
+ sepNavVisRange = "{6631, 622}";
+ sepNavVisRect = "{{0, 3594}, {734, 180}}";
+ sepNavWindowFrame = "{{436, 128}, {602, 602}}";
+ };
+ };
+ 92BC3F740BAEE55B000DAB7F /* localplayer.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 2940}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 2240}, {557, 473}}";
+ sepNavWindowFrame = "{{238, 57}, {602, 602}}";
+ };
+ };
+ 92BC3F790BAEE55B000DAB7F /* main.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {718, 12404}}";
+ sepNavSelRange = "{958, 19}";
+ sepNavVisRange = "{616, 747}";
+ sepNavVisRect = "{{0, 1289}, {732, 459}}";
+ sepNavWindowFrame = "{{100, 219}, {777, 588}}";
+ };
+ };
+ 92BC3F7A0BAEE55B000DAB7F /* main.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {734, 1022}}";
+ sepNavSelRange = "{989, 8}";
+ sepNavVisRect = "{{0, 324}, {734, 180}}";
+ };
+ };
+ 92BC3F7C0BAEE55B000DAB7F /* map.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 6706}}";
+ sepNavSelRange = "{8349, 0}";
+ sepNavVisRange = "{13918, 210}";
+ sepNavVisRect = "{{0, 2184}, {732, 459}}";
+ sepNavWindowFrame = "{{107, 155}, {777, 588}}";
+ };
+ };
+ 92BC3F7D0BAEE55B000DAB7F /* map.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {732, 3220}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 1156}, {732, 459}}";
+ sepNavWindowFrame = "{{84, 176}, {777, 588}}";
+ };
+ };
+ 92BC3F810BAEE55B000DAB7F /* beinghandler.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 5586}}";
+ sepNavSelRange = "{1189, 0}";
+ sepNavVisRange = "{567, 1104}";
+ sepNavWindowFrame = "{{284, 87}, {627, 714}}";
+ };
+ };
+ 92BC3F870BAEE55B000DAB7F /* chathandler.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 1666}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 403}, {557, 473}}";
+ sepNavWindowFrame = "{{261, 36}, {602, 602}}";
+ };
+ };
+ 92BC3F890BAEE55B000DAB7F /* equipmenthandler.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {482, 3024}}";
+ sepNavSelRange = "{6326, 0}";
+ sepNavVisRect = "{{0, 544}, {453, 186}}";
+ };
+ };
+ 92BC3F8B0BAEE55B000DAB7F /* inventoryhandler.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 1946}}";
+ sepNavSelRange = "{1765, 0}";
+ sepNavVisRange = "{1454, 1476}";
+ sepNavWindowFrame = "{{65, 113}, {627, 714}}";
+ };
+ };
+ 92BC3F930BAEE55B000DAB7F /* messagehandler.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 644}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 162}, {557, 473}}";
+ sepNavWindowFrame = "{{284, 15}, {602, 602}}";
+ };
+ };
+ 92BC3F950BAEE55B000DAB7F /* messagein.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 2730}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 2257}, {557, 473}}";
+ sepNavWindowFrame = "{{54, 225}, {602, 602}}";
+ };
+ };
+ 92BC3F9A0BAEE55B000DAB7F /* network.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {482, 1470}}";
+ sepNavSelRange = "{956, 21}";
+ sepNavVisRect = "{{0, 292}, {453, 186}}";
+ };
+ };
+ 92BC3F9D0BAEE55B000DAB7F /* playerhandler.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 4858}}";
+ sepNavSelRange = "{13406, 0}";
+ sepNavVisRect = "{{0, 2215}, {557, 473}}";
+ sepNavWindowFrame = "{{169, 120}, {602, 602}}";
+ };
+ };
+ 92BC3F9F0BAEE55B000DAB7F /* protocol.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 1120}}";
+ sepNavSelRange = "{1206, 0}";
+ sepNavVisRange = "{1930, 220}";
+ sepNavVisRect = "{{0, 56}, {557, 473}}";
+ sepNavWindowFrame = "{{192, 99}, {602, 602}}";
+ };
+ };
+ 92BC3FA00BAEE55B000DAB7F /* protocol.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {584, 1568}}";
+ sepNavSelRange = "{1647, 0}";
+ sepNavVisRect = "{{0, 482}, {557, 473}}";
+ sepNavWindowFrame = "{{215, 78}, {602, 602}}";
+ };
+ };
+ 92BC3FA70BAEE55B000DAB7F /* openglgraphics.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 5012}}";
+ sepNavSelRange = "{2418, 0}";
+ sepNavVisRange = "{1719, 1239}";
+ sepNavWindowFrame = "{{111, 71}, {627, 714}}";
+ };
+ };
+ 92BC3FAB0BAEE55B000DAB7F /* physfs.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 30534}}";
+ sepNavSelRange = "{2692, 19}";
+ sepNavVisRange = "{2207, 1196}";
+ sepNavVisRect = "{{0, 0}, {734, 180}}";
+ sepNavWindowFrame = "{{157, 29}, {627, 714}}";
+ };
+ };
+ 92BC3FAC0BAEE55B000DAB7F /* physfs.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {594, 32648}}";
+ sepNavSelRange = "{68391, 0}";
+ sepNavVisRange = "{91786, 1458}";
+ sepNavWindowFrame = "{{140, 245}, {627, 714}}";
+ };
+ };
+ 92BC3FAD0BAEE55B000DAB7F /* physfs_byteorder.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 4424}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{1921, 2082}";
+ sepNavVisRect = "{{0, 0}, {734, 180}}";
+ sepNavWindowFrame = "{{134, 50}, {627, 714}}";
+ };
+ };
+ 92BC3FAE0BAEE55B000DAB7F /* physfs_internal.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {708, 25382}}";
+ sepNavSelRange = "{67524, 9}";
+ sepNavVisRange = "{2139, 2075}";
+ sepNavWindowFrame = "{{111, 71}, {627, 714}}";
+ };
+ };
+ 92BC3FB50BAEE55B000DAB7F /* posix.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 5642}}";
+ sepNavSelRange = "{6658, 0}";
+ sepNavVisRange = "{6143, 1239}";
+ sepNavVisRect = "{{0, 0}, {734, 180}}";
+ sepNavWindowFrame = "{{65, 113}, {627, 714}}";
+ };
+ };
+ 92BC3FB70BAEE55B000DAB7F /* unix.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {734, 8232}}";
+ sepNavSelRange = "{188, 8}";
+ sepNavVisRect = "{{0, 0}, {734, 180}}";
+ };
+ };
+ 92BC3FBA0BAEE55B000DAB7F /* player.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {543, 2870}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 1100}";
+ sepNavVisRect = "{{0, 2733}, {557, 473}}";
+ sepNavWindowFrame = "{{77, 204}, {602, 602}}";
+ };
+ };
+ 92BC3FBB0BAEE55B000DAB7F /* player.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {557, 952}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 479}, {557, 473}}";
+ sepNavWindowFrame = "{{123, 162}, {602, 602}}";
+ };
+ };
+ 92BC3FC90BAEE55B000DAB7F /* image.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 5544}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{1527, 900}";
+ sepNavWindowFrame = "{{179, 8}, {627, 714}}";
+ };
+ };
+ 92BC3FD70BAEE55B000DAB7F /* music.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 1274}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{1087, 1007}";
+ sepNavWindowFrame = "{{64, 113}, {627, 714}}";
+ };
+ };
+ 92BC3FD80BAEE55B000DAB7F /* music.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 1148}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{919, 1041}";
+ sepNavWindowFrame = "{{87, 92}, {627, 714}}";
+ };
+ };
+ 92BC3FDC0BAEE55B000DAB7F /* resource.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 1078}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{1038, 870}";
+ sepNavWindowFrame = "{{110, 71}, {627, 714}}";
+ };
+ };
+ 92BC3FDD0BAEE55B000DAB7F /* resourcemanager.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 6650}}";
+ sepNavSelRange = "{5598, 0}";
+ sepNavVisRange = "{5065, 1072}";
+ sepNavWindowFrame = "{{351, 73}, {627, 714}}";
+ };
+ };
+ 92BC3FDE0BAEE55B000DAB7F /* resourcemanager.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 3276}}";
+ sepNavSelRange = "{3055, 0}";
+ sepNavVisRange = "{2573, 1462}";
+ sepNavWindowFrame = "{{133, 50}, {627, 714}}";
+ };
+ };
+ 92BC3FE20BAEE55B000DAB7F /* soundeffect.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 1064}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{1110, 1062}";
+ sepNavWindowFrame = "{{179, 8}, {627, 714}}";
+ };
+ };
+ 92BC3FEA0BAEE55B000DAB7F /* sound.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {568, 3066}}";
+ sepNavSelRange = "{3587, 0}";
+ sepNavVisRange = "{3180, 872}";
+ sepNavWindowFrame = "{{110, 71}, {627, 714}}";
+ };
+ };
+ 92BC3FEB0BAEE55B000DAB7F /* sound.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {720, 1764}}";
+ sepNavSelRange = "{1673, 9}";
+ sepNavVisRange = "{1374, 363}";
+ sepNavWindowFrame = "{{156, 29}, {627, 714}}";
+ };
+ };
+ 92BC3FF20BAEE55B000DAB7F /* tostring.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {633, 532}}";
+ sepNavSelRange = "{1038, 0}";
+ sepNavVisRange = "{962, 150}";
+ };
+ };
+ 92BC40E50BAEF54B000DAB7F /* SDLMain.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {726, 3906}}";
+ sepNavSelRange = "{3069, 0}";
+ sepNavVisRange = "{2696, 949}";
+ sepNavWindowFrame = "{{583, 96}, {627, 714}}";
+ };
+ };
+ 92BC416E0BAF664C000DAB7F /* ChangeLog */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {734, 59234}}";
+ sepNavSelRange = "{146456, 3}";
+ sepNavVisRect = "{{0, 47601}, {734, 180}}";
+ sepNavWindowFrame = "{{130, 134}, {777, 588}}";
+ };
+ };
+ 92FD19AE0DDCE51000D14E5D /* player_relations.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {632, 5388}}";
+ sepNavSelRange = "{3940, 0}";
+ sepNavVisRange = "{3262, 1320}";
+ sepNavWindowFrame = "{{180, 8}, {627, 714}}";
+ };
+ };
+}
diff --git a/themanaworld.xcodeproj/project.pbxproj b/themanaworld.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..5bd59f57
--- /dev/null
+++ b/themanaworld.xcodeproj/project.pbxproj
@@ -0,0 +1,1722 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
+ 92024D2F0CF1BD9E006B55CB /* keyboardconfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92024D2A0CF1BD9E006B55CB /* keyboardconfig.cpp */; };
+ 92024D3D0CF1BDF7006B55CB /* setup_keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92024D360CF1BDF7006B55CB /* setup_keyboard.cpp */; };
+ 92024E150CF1C0DA006B55CB /* close_button.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 92024D5B0CF1BE5C006B55CB /* close_button.png */; };
+ 92024E160CF1C0FB006B55CB /* unknown-item.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 92024D5D0CF1BE5C006B55CB /* unknown-item.png */; };
+ 92024E170CF1C11D006B55CB /* item_shortcut_bgr.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 92024D5C0CF1BE5C006B55CB /* item_shortcut_bgr.png */; };
+ 92024E760CF1DCF6006B55CB /* imageloader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92024E740CF1DCF6006B55CB /* imageloader.cpp */; };
+ 92037A1F0ED2037300D3712D /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92037A1B0ED2037300D3712D /* text.cpp */; };
+ 92037A200ED2037300D3712D /* textmanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92037A1D0ED2037300D3712D /* textmanager.cpp */; };
+ 922CD9580E3D00900074C50E /* npcdb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 922CD9560E3D00900074C50E /* npcdb.cpp */; };
+ 922CD95F0E3D01080074C50E /* shopitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 922CD95D0E3D01080074C50E /* shopitem.cpp */; };
+ 922CD9ED0E3D02C50074C50E /* guichan.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 922CD9EC0E3D02C50074C50E /* guichan.framework */; };
+ 922CDA6A0E3D07150074C50E /* guichan.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 922CD9EC0E3D02C50074C50E /* guichan.framework */; };
+ 924A39F20C0784280066885E /* animationparticle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 924A39E80C0784280066885E /* animationparticle.cpp */; };
+ 924A39F30C0784280066885E /* imageparticle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 924A39EA0C0784280066885E /* imageparticle.cpp */; };
+ 924A39F40C0784280066885E /* particle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 924A39EC0C0784280066885E /* particle.cpp */; };
+ 924A39F50C0784280066885E /* particleemitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 924A39EE0C0784280066885E /* particleemitter.cpp */; };
+ 924A39F60C0784280066885E /* textparticle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 924A39F00C0784280066885E /* textparticle.cpp */; };
+ 924A3A120C07A60B0066885E /* resizegrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 924A3A100C07A60B0066885E /* resizegrip.cpp */; };
+ 924A40570C085EF50066885E /* items.xsd in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 924A401C0C085ED80066885E /* items.xsd */; };
+ 924A405A0C085F950066885E /* bg_quad_dis.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E600C085ED70066885E /* bg_quad_dis.png */; };
+ 924A405B0C085F950066885E /* browserfont.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E610C085ED70066885E /* browserfont.png */; };
+ 924A405C0C085F950066885E /* button.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E620C085ED70066885E /* button.png */; };
+ 924A405D0C085F950066885E /* button_disabled.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E630C085ED70066885E /* button_disabled.png */; };
+ 924A405E0C085F950066885E /* buttonhi.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E640C085ED70066885E /* buttonhi.png */; };
+ 924A405F0C085F950066885E /* buttonpress.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E650C085ED70066885E /* buttonpress.png */; };
+ 924A40600C085F950066885E /* checkbox.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E660C085ED70066885E /* checkbox.png */; };
+ 924A40610C085F950066885E /* deepbox.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E680C085ED70066885E /* deepbox.png */; };
+ 924A40620C085F950066885E /* fixedfont.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E690C085ED70066885E /* fixedfont.png */; };
+ 924A40630C085F950066885E /* hits_blue.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E6A0C085ED70066885E /* hits_blue.png */; };
+ 924A40640C085F950066885E /* hits_red.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E6B0C085ED70066885E /* hits_red.png */; };
+ 924A40650C085F950066885E /* hits_yellow.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E6C0C085ED70066885E /* hits_yellow.png */; };
+ 924A40660C085F950066885E /* hscroll_left_default.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E6D0C085ED70066885E /* hscroll_left_default.png */; };
+ 924A40670C085F950066885E /* hscroll_left_highlight.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E6E0C085ED70066885E /* hscroll_left_highlight.png */; };
+ 924A40680C085F950066885E /* hscroll_left_pressed.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E6F0C085ED70066885E /* hscroll_left_pressed.png */; };
+ 924A40690C085F950066885E /* hscroll_right_default.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E700C085ED70066885E /* hscroll_right_default.png */; };
+ 924A406A0C085F950066885E /* hscroll_right_highlight.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E710C085ED70066885E /* hscroll_right_highlight.png */; };
+ 924A406B0C085F950066885E /* hscroll_right_pressed.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E720C085ED70066885E /* hscroll_right_pressed.png */; };
+ 924A406C0C085F950066885E /* menuitemD.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E740C085ED70066885E /* menuitemD.png */; };
+ 924A406D0C085F950066885E /* menuitemF.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E750C085ED70066885E /* menuitemF.png */; };
+ 924A406E0C085F950066885E /* menuitemN.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E760C085ED70066885E /* menuitemN.png */; };
+ 924A406F0C085F950066885E /* menuitemP.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E770C085ED70066885E /* menuitemP.png */; };
+ 924A40700C085F950066885E /* mouse.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E780C085ED70066885E /* mouse.png */; };
+ 924A40710C085F950066885E /* radioin.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E790C085ED70066885E /* radioin.png */; };
+ 924A40720C085F950066885E /* radioout.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E7A0C085ED70066885E /* radioout.png */; };
+ 924A40730C085F950066885E /* resize.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E7B0C085ED70066885E /* resize.png */; };
+ 924A40740C085F950066885E /* rpgfont_wider.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E7C0C085ED70066885E /* rpgfont_wider.png */; };
+ 924A40750C085F950066885E /* sansserif8.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E7D0C085ED70066885E /* sansserif8.png */; };
+ 924A40760C085F950066885E /* selection.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E7E0C085ED70066885E /* selection.png */; };
+ 924A40770C085F950066885E /* slider.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E7F0C085ED70066885E /* slider.png */; };
+ 924A40780C085F950066885E /* target-cursor-blue-l.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E800C085ED70066885E /* target-cursor-blue-l.png */; };
+ 924A40790C085F950066885E /* target-cursor-blue-m.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E810C085ED70066885E /* target-cursor-blue-m.png */; };
+ 924A407A0C085F950066885E /* target-cursor-blue-s.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E820C085ED70066885E /* target-cursor-blue-s.png */; };
+ 924A407B0C085F950066885E /* target-cursor-red-l.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E830C085ED70066885E /* target-cursor-red-l.png */; };
+ 924A407C0C085F950066885E /* target-cursor-red-m.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E840C085ED70066885E /* target-cursor-red-m.png */; };
+ 924A407D0C085F950066885E /* target-cursor-red-s.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E850C085ED70066885E /* target-cursor-red-s.png */; };
+ 924A407E0C085F950066885E /* thickborder.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E860C085ED70066885E /* thickborder.png */; };
+ 924A407F0C085F950066885E /* vscroll_blue.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E870C085ED70066885E /* vscroll_blue.png */; };
+ 924A40800C085F950066885E /* vscroll_down_default.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E880C085ED70066885E /* vscroll_down_default.png */; };
+ 924A40810C085F950066885E /* vscroll_down_highlight.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E890C085ED70066885E /* vscroll_down_highlight.png */; };
+ 924A40820C085F950066885E /* vscroll_down_pressed.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E8A0C085ED70066885E /* vscroll_down_pressed.png */; };
+ 924A40830C085F950066885E /* vscroll_grey.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E8B0C085ED70066885E /* vscroll_grey.png */; };
+ 924A40840C085F950066885E /* vscroll_red.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E8C0C085ED70066885E /* vscroll_red.png */; };
+ 924A40850C085F950066885E /* vscroll_up_default.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E8D0C085ED70066885E /* vscroll_up_default.png */; };
+ 924A40860C085F950066885E /* vscroll_up_highlight.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E8E0C085ED70066885E /* vscroll_up_highlight.png */; };
+ 924A40870C085F950066885E /* vscroll_up_pressed.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 924A3E8F0C085ED70066885E /* vscroll_up_pressed.png */; };
+ 924A408A0C0860120066885E /* error.png in Copy Image Files */ = {isa = PBXBuildFile; fileRef = 924A3E990C085ED70066885E /* error.png */; };
+ 924A408B0C0860120066885E /* login_wallpaper.png in Copy Image Files */ = {isa = PBXBuildFile; fileRef = 924A3E9A0C085ED70066885E /* login_wallpaper.png */; };
+ 924A42020C0861EC0066885E /* about.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A400A0C085ED80066885E /* about.txt */; };
+ 924A42030C0861EC0066885E /* changes.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A400B0C085ED80066885E /* changes.txt */; };
+ 924A42040C0861EC0066885E /* commands.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A400D0C085ED80066885E /* commands.txt */; };
+ 924A42050C0861EC0066885E /* header.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A400E0C085ED80066885E /* header.txt */; };
+ 924A42060C0861EC0066885E /* index.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A400F0C085ED80066885E /* index.txt */; };
+ 924A42070C0861EC0066885E /* skills.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A40110C085ED80066885E /* skills.txt */; };
+ 924A42080C0861EC0066885E /* support.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A40120C085ED80066885E /* support.txt */; };
+ 924A42090C0861EC0066885E /* team.txt in Copy Help Files */ = {isa = PBXBuildFile; fileRef = 924A40130C085ED80066885E /* team.txt */; };
+ 924A425A0C0871EC0066885E /* The Mana World.icns in Resources */ = {isa = PBXBuildFile; fileRef = 924A42590C0871EC0066885E /* The Mana World.icns */; };
+ 925350030BC12A3200115FD5 /* imageset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 925350010BC12A3200115FD5 /* imageset.cpp */; };
+ 926F9CF80DB005FA00AACD26 /* itemshortcut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 926F9CF60DB005FA00AACD26 /* itemshortcut.cpp */; };
+ 926F9D450DB00AFC00AACD26 /* itemshortcutcontainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 926F9D410DB00AFC00AACD26 /* itemshortcutcontainer.cpp */; };
+ 926F9D460DB00AFC00AACD26 /* itemshortcutwindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 926F9D430DB00AFC00AACD26 /* itemshortcutwindow.cpp */; };
+ 9294DA9B0C17E70400FCEDE9 /* physfs.c in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FAB0BAEE55B000DAB7F /* physfs.c */; };
+ 9294DA9C0C17E70600FCEDE9 /* physfs_byteorder.c in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FAD0BAEE55B000DAB7F /* physfs_byteorder.c */; };
+ 9294DAA10C17E73200FCEDE9 /* libpng.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9294DAA00C17E73200FCEDE9 /* libpng.framework */; };
+ 92A4CC9E0D1C622E00CA28FB /* dye.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CC9D0D1C622E00CA28FB /* dye.cpp */; };
+ 92A4CCE80D1DA58D00CA28FB /* dir.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE00D1DA58D00CA28FB /* dir.c */; };
+ 92A4CCE90D1DA58D00CA28FB /* grp.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE10D1DA58D00CA28FB /* grp.c */; };
+ 92A4CCEA0D1DA58D00CA28FB /* hog.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE20D1DA58D00CA28FB /* hog.c */; };
+ 92A4CCEB0D1DA58D00CA28FB /* lzma.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE30D1DA58D00CA28FB /* lzma.c */; };
+ 92A4CCEC0D1DA58D00CA28FB /* mvl.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE40D1DA58D00CA28FB /* mvl.c */; };
+ 92A4CCED0D1DA58D00CA28FB /* qpak.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE50D1DA58D00CA28FB /* qpak.c */; };
+ 92A4CCEE0D1DA58D00CA28FB /* wad.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE60D1DA58D00CA28FB /* wad.c */; };
+ 92A4CCEF0D1DA58D00CA28FB /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCE70D1DA58D00CA28FB /* zip.c */; };
+ 92A4CCF30D1DA5C600CA28FB /* macosx.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCF20D1DA5C600CA28FB /* macosx.c */; };
+ 92A4CCF90D1DA81A00CA28FB /* posix.c in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FB50BAEE55B000DAB7F /* posix.c */; };
+ 92A4CCFC0D1DA89800CA28FB /* physfs_unicode.c in Sources */ = {isa = PBXBuildFile; fileRef = 92A4CCFB0D1DA89800CA28FB /* physfs_unicode.c */; };
+ 92A4CCFF0D1DA8E500CA28FB /* LICENSE.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 92A4CCFE0D1DA8E500CA28FB /* LICENSE.rtf */; };
+ 92BC3FF60BAEE55B000DAB7F /* animatedsprite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3ECA0BAEE55A000DAB7F /* animatedsprite.cpp */; };
+ 92BC3FF70BAEE55B000DAB7F /* being.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3ECC0BAEE55A000DAB7F /* being.cpp */; };
+ 92BC3FF80BAEE55B000DAB7F /* beingmanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3ECE0BAEE55A000DAB7F /* beingmanager.cpp */; };
+ 92BC3FFA0BAEE55B000DAB7F /* configuration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3ED20BAEE55A000DAB7F /* configuration.cpp */; };
+ 92BC40020BAEE55B000DAB7F /* engine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EE40BAEE55A000DAB7F /* engine.cpp */; };
+ 92BC40030BAEE55B000DAB7F /* equipment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EE60BAEE55A000DAB7F /* equipment.cpp */; };
+ 92BC40040BAEE55B000DAB7F /* floor_item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EE80BAEE55A000DAB7F /* floor_item.cpp */; };
+ 92BC40050BAEE55B000DAB7F /* flooritemmanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EEA0BAEE55A000DAB7F /* flooritemmanager.cpp */; };
+ 92BC40060BAEE55B000DAB7F /* game.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EEC0BAEE55A000DAB7F /* game.cpp */; };
+ 92BC40070BAEE55B000DAB7F /* graphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EEE0BAEE55A000DAB7F /* graphics.cpp */; };
+ 92BC40080BAEE55B000DAB7F /* box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EF10BAEE55A000DAB7F /* box.cpp */; };
+ 92BC40090BAEE55B000DAB7F /* browserbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EF30BAEE55A000DAB7F /* browserbox.cpp */; };
+ 92BC400A0BAEE55B000DAB7F /* buddywindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EF50BAEE55A000DAB7F /* buddywindow.cpp */; };
+ 92BC400B0BAEE55B000DAB7F /* button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EF70BAEE55A000DAB7F /* button.cpp */; };
+ 92BC400C0BAEE55B000DAB7F /* buy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EF90BAEE55A000DAB7F /* buy.cpp */; };
+ 92BC400D0BAEE55B000DAB7F /* buysell.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EFB0BAEE55A000DAB7F /* buysell.cpp */; };
+ 92BC400E0BAEE55B000DAB7F /* char_select.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EFD0BAEE55A000DAB7F /* char_select.cpp */; };
+ 92BC400F0BAEE55B000DAB7F /* char_server.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3EFF0BAEE55A000DAB7F /* char_server.cpp */; };
+ 92BC40100BAEE55B000DAB7F /* chargedialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F010BAEE55A000DAB7F /* chargedialog.cpp */; };
+ 92BC40110BAEE55B000DAB7F /* chat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F030BAEE55A000DAB7F /* chat.cpp */; };
+ 92BC40120BAEE55B000DAB7F /* chatinput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F050BAEE55A000DAB7F /* chatinput.cpp */; };
+ 92BC40130BAEE55B000DAB7F /* checkbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F070BAEE55A000DAB7F /* checkbox.cpp */; };
+ 92BC40140BAEE55B000DAB7F /* confirm_dialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F090BAEE55A000DAB7F /* confirm_dialog.cpp */; };
+ 92BC40150BAEE55B000DAB7F /* connection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F0B0BAEE55A000DAB7F /* connection.cpp */; };
+ 92BC40160BAEE55B000DAB7F /* debugwindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F0D0BAEE55A000DAB7F /* debugwindow.cpp */; };
+ 92BC40170BAEE55B000DAB7F /* equipmentwindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F0F0BAEE55A000DAB7F /* equipmentwindow.cpp */; };
+ 92BC40180BAEE55B000DAB7F /* focushandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F110BAEE55A000DAB7F /* focushandler.cpp */; };
+ 92BC40190BAEE55B000DAB7F /* gccontainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F130BAEE55A000DAB7F /* gccontainer.cpp */; };
+ 92BC401A0BAEE55B000DAB7F /* gui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F150BAEE55A000DAB7F /* gui.cpp */; };
+ 92BC401B0BAEE55B000DAB7F /* hbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F170BAEE55A000DAB7F /* hbox.cpp */; };
+ 92BC401C0BAEE55B000DAB7F /* help.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F190BAEE55A000DAB7F /* help.cpp */; };
+ 92BC401D0BAEE55B000DAB7F /* inttextbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F1B0BAEE55A000DAB7F /* inttextbox.cpp */; };
+ 92BC401E0BAEE55B000DAB7F /* inventorywindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F1D0BAEE55A000DAB7F /* inventorywindow.cpp */; };
+ 92BC401F0BAEE55B000DAB7F /* item_amount.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F1F0BAEE55A000DAB7F /* item_amount.cpp */; };
+ 92BC40200BAEE55B000DAB7F /* itemcontainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F210BAEE55A000DAB7F /* itemcontainer.cpp */; };
+ 92BC40210BAEE55B000DAB7F /* listbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F240BAEE55A000DAB7F /* listbox.cpp */; };
+ 92BC40220BAEE55B000DAB7F /* login.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F260BAEE55A000DAB7F /* login.cpp */; };
+ 92BC40230BAEE55B000DAB7F /* menuwindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F280BAEE55A000DAB7F /* menuwindow.cpp */; };
+ 92BC40240BAEE55B000DAB7F /* minimap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F2A0BAEE55A000DAB7F /* minimap.cpp */; };
+ 92BC40250BAEE55B000DAB7F /* ministatus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F2C0BAEE55A000DAB7F /* ministatus.cpp */; };
+ 92BC40260BAEE55B000DAB7F /* newskill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F2E0BAEE55A000DAB7F /* newskill.cpp */; };
+ 92BC40270BAEE55B000DAB7F /* npc_text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F300BAEE55A000DAB7F /* npc_text.cpp */; };
+ 92BC40280BAEE55B000DAB7F /* npclistdialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F320BAEE55A000DAB7F /* npclistdialog.cpp */; };
+ 92BC40290BAEE55B000DAB7F /* ok_dialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F340BAEE55A000DAB7F /* ok_dialog.cpp */; };
+ 92BC402A0BAEE55B000DAB7F /* passwordfield.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F360BAEE55A000DAB7F /* passwordfield.cpp */; };
+ 92BC402B0BAEE55B000DAB7F /* playerbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F380BAEE55A000DAB7F /* playerbox.cpp */; };
+ 92BC402C0BAEE55B000DAB7F /* popupmenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F3A0BAEE55A000DAB7F /* popupmenu.cpp */; };
+ 92BC402D0BAEE55B000DAB7F /* progressbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F3C0BAEE55A000DAB7F /* progressbar.cpp */; };
+ 92BC402E0BAEE55B000DAB7F /* radiobutton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F3E0BAEE55A000DAB7F /* radiobutton.cpp */; };
+ 92BC402F0BAEE55B000DAB7F /* register.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F400BAEE55A000DAB7F /* register.cpp */; };
+ 92BC40300BAEE55B000DAB7F /* scrollarea.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F420BAEE55A000DAB7F /* scrollarea.cpp */; };
+ 92BC40310BAEE55B000DAB7F /* sell.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F450BAEE55A000DAB7F /* sell.cpp */; };
+ 92BC40320BAEE55B000DAB7F /* setup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F470BAEE55A000DAB7F /* setup.cpp */; };
+ 92BC40330BAEE55B000DAB7F /* setup_audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F490BAEE55A000DAB7F /* setup_audio.cpp */; };
+ 92BC40340BAEE55B000DAB7F /* setup_joystick.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F4B0BAEE55A000DAB7F /* setup_joystick.cpp */; };
+ 92BC40350BAEE55B000DAB7F /* setup_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F4D0BAEE55A000DAB7F /* setup_video.cpp */; };
+ 92BC40360BAEE55B000DAB7F /* shop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F500BAEE55A000DAB7F /* shop.cpp */; };
+ 92BC40370BAEE55B000DAB7F /* shoplistbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F520BAEE55A000DAB7F /* shoplistbox.cpp */; };
+ 92BC40380BAEE55B000DAB7F /* skill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F540BAEE55A000DAB7F /* skill.cpp */; };
+ 92BC40390BAEE55B000DAB7F /* slider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F560BAEE55A000DAB7F /* slider.cpp */; };
+ 92BC403A0BAEE55B000DAB7F /* status.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F580BAEE55A000DAB7F /* status.cpp */; };
+ 92BC403B0BAEE55B000DAB7F /* tabbedcontainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F5A0BAEE55B000DAB7F /* tabbedcontainer.cpp */; };
+ 92BC403C0BAEE55B000DAB7F /* textbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F5C0BAEE55B000DAB7F /* textbox.cpp */; };
+ 92BC403D0BAEE55B000DAB7F /* textfield.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F5E0BAEE55B000DAB7F /* textfield.cpp */; };
+ 92BC403E0BAEE55B000DAB7F /* trade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F600BAEE55B000DAB7F /* trade.cpp */; };
+ 92BC403F0BAEE55B000DAB7F /* updatewindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F620BAEE55B000DAB7F /* updatewindow.cpp */; };
+ 92BC40400BAEE55B000DAB7F /* vbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F640BAEE55B000DAB7F /* vbox.cpp */; };
+ 92BC40410BAEE55B000DAB7F /* viewport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F660BAEE55B000DAB7F /* viewport.cpp */; };
+ 92BC40420BAEE55B000DAB7F /* window.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F680BAEE55B000DAB7F /* window.cpp */; };
+ 92BC40430BAEE55B000DAB7F /* windowcontainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F6A0BAEE55B000DAB7F /* windowcontainer.cpp */; };
+ 92BC40440BAEE55B000DAB7F /* inventory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F6D0BAEE55B000DAB7F /* inventory.cpp */; };
+ 92BC40450BAEE55B000DAB7F /* item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F6F0BAEE55B000DAB7F /* item.cpp */; };
+ 92BC40460BAEE55B000DAB7F /* joystick.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F710BAEE55B000DAB7F /* joystick.cpp */; };
+ 92BC40470BAEE55B000DAB7F /* localplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F730BAEE55B000DAB7F /* localplayer.cpp */; };
+ 92BC40480BAEE55B000DAB7F /* log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F760BAEE55B000DAB7F /* log.cpp */; };
+ 92BC40490BAEE55B000DAB7F /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F790BAEE55B000DAB7F /* main.cpp */; };
+ 92BC404B0BAEE55B000DAB7F /* map.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F7C0BAEE55B000DAB7F /* map.cpp */; };
+ 92BC404C0BAEE55B000DAB7F /* monster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F7E0BAEE55B000DAB7F /* monster.cpp */; };
+ 92BC404D0BAEE55B000DAB7F /* beinghandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F810BAEE55B000DAB7F /* beinghandler.cpp */; };
+ 92BC404E0BAEE55B000DAB7F /* buysellhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F830BAEE55B000DAB7F /* buysellhandler.cpp */; };
+ 92BC404F0BAEE55B000DAB7F /* charserverhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F850BAEE55B000DAB7F /* charserverhandler.cpp */; };
+ 92BC40500BAEE55B000DAB7F /* chathandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F870BAEE55B000DAB7F /* chathandler.cpp */; };
+ 92BC40510BAEE55B000DAB7F /* equipmenthandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F890BAEE55B000DAB7F /* equipmenthandler.cpp */; };
+ 92BC40520BAEE55B000DAB7F /* inventoryhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F8B0BAEE55B000DAB7F /* inventoryhandler.cpp */; };
+ 92BC40530BAEE55B000DAB7F /* itemhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F8D0BAEE55B000DAB7F /* itemhandler.cpp */; };
+ 92BC40540BAEE55B000DAB7F /* loginhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F8F0BAEE55B000DAB7F /* loginhandler.cpp */; };
+ 92BC40550BAEE55B000DAB7F /* maploginhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F910BAEE55B000DAB7F /* maploginhandler.cpp */; };
+ 92BC40560BAEE55B000DAB7F /* messagehandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F930BAEE55B000DAB7F /* messagehandler.cpp */; };
+ 92BC40570BAEE55B000DAB7F /* messagein.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F950BAEE55B000DAB7F /* messagein.cpp */; };
+ 92BC40580BAEE55B000DAB7F /* messageout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F970BAEE55B000DAB7F /* messageout.cpp */; };
+ 92BC40590BAEE55B000DAB7F /* network.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F990BAEE55B000DAB7F /* network.cpp */; };
+ 92BC405A0BAEE55B000DAB7F /* npchandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F9B0BAEE55B000DAB7F /* npchandler.cpp */; };
+ 92BC405B0BAEE55B000DAB7F /* playerhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F9D0BAEE55B000DAB7F /* playerhandler.cpp */; };
+ 92BC405C0BAEE55B000DAB7F /* protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3F9F0BAEE55B000DAB7F /* protocol.cpp */; };
+ 92BC405D0BAEE55B000DAB7F /* skillhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FA10BAEE55B000DAB7F /* skillhandler.cpp */; };
+ 92BC405E0BAEE55B000DAB7F /* tradehandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FA30BAEE55B000DAB7F /* tradehandler.cpp */; };
+ 92BC405F0BAEE55B000DAB7F /* npc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FA50BAEE55B000DAB7F /* npc.cpp */; };
+ 92BC40600BAEE55B000DAB7F /* openglgraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FA70BAEE55B000DAB7F /* openglgraphics.cpp */; };
+ 92BC406E0BAEE55B000DAB7F /* player.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FBA0BAEE55B000DAB7F /* player.cpp */; };
+ 92BC406F0BAEE55B000DAB7F /* action.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FBE0BAEE55B000DAB7F /* action.cpp */; };
+ 92BC40700BAEE55B000DAB7F /* ambientoverlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FC00BAEE55B000DAB7F /* ambientoverlay.cpp */; };
+ 92BC40710BAEE55B000DAB7F /* animation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FC20BAEE55B000DAB7F /* animation.cpp */; };
+ 92BC40720BAEE55B000DAB7F /* buddylist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FC40BAEE55B000DAB7F /* buddylist.cpp */; };
+ 92BC40740BAEE55B000DAB7F /* image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FC90BAEE55B000DAB7F /* image.cpp */; };
+ 92BC40750BAEE55B000DAB7F /* imagewriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FCB0BAEE55B000DAB7F /* imagewriter.cpp */; };
+ 92BC40760BAEE55B000DAB7F /* itemdb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FCD0BAEE55B000DAB7F /* itemdb.cpp */; };
+ 92BC40770BAEE55B000DAB7F /* iteminfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FCF0BAEE55B000DAB7F /* iteminfo.cpp */; };
+ 92BC40780BAEE55B000DAB7F /* mapreader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FD10BAEE55B000DAB7F /* mapreader.cpp */; };
+ 92BC40790BAEE55B000DAB7F /* monsterdb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FD30BAEE55B000DAB7F /* monsterdb.cpp */; };
+ 92BC407A0BAEE55B000DAB7F /* monsterinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FD50BAEE55B000DAB7F /* monsterinfo.cpp */; };
+ 92BC407B0BAEE55B000DAB7F /* music.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FD70BAEE55B000DAB7F /* music.cpp */; };
+ 92BC407D0BAEE55B000DAB7F /* resource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FDB0BAEE55B000DAB7F /* resource.cpp */; };
+ 92BC407E0BAEE55B000DAB7F /* resourcemanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FDD0BAEE55B000DAB7F /* resourcemanager.cpp */; };
+ 92BC40800BAEE55B000DAB7F /* soundeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FE10BAEE55B000DAB7F /* soundeffect.cpp */; };
+ 92BC40810BAEE55B000DAB7F /* spritedef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FE30BAEE55B000DAB7F /* spritedef.cpp */; };
+ 92BC40830BAEE55B000DAB7F /* simpleanimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FE80BAEE55B000DAB7F /* simpleanimation.cpp */; };
+ 92BC40840BAEE55B000DAB7F /* sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FEA0BAEE55B000DAB7F /* sound.cpp */; };
+ 92BC40850BAEE55B000DAB7F /* base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FEF0BAEE55B000DAB7F /* base64.cpp */; };
+ 92BC40860BAEE55B000DAB7F /* xml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92BC3FF40BAEE55B000DAB7F /* xml.cpp */; };
+ 92BC40940BAEE818000DAB7F /* SDL_image.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC408E0BAEE818000DAB7F /* SDL_image.framework */; };
+ 92BC40950BAEE818000DAB7F /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC408F0BAEE818000DAB7F /* SDL_mixer.framework */; };
+ 92BC40960BAEE818000DAB7F /* SDL_net.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC40900BAEE818000DAB7F /* SDL_net.framework */; };
+ 92BC40970BAEE818000DAB7F /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC40910BAEE818000DAB7F /* SDL.framework */; };
+ 92BC40C70BAEEDAA000DAB7F /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC40C60BAEEDAA000DAB7F /* OpenGL.framework */; };
+ 92BC40D90BAEEED3000DAB7F /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC40D80BAEEED3000DAB7F /* IOKit.framework */; };
+ 92BC40E60BAEF54B000DAB7F /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */; };
+ 92BC40E90BAEF57D000DAB7F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC40E80BAEF57D000DAB7F /* Cocoa.framework */; };
+ 92EEA0030D2E20B300DDE300 /* libpng.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 9294DAA00C17E73200FCEDE9 /* libpng.framework */; };
+ 92EEA0050D2E20B300DDE300 /* SDL_image.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC408E0BAEE818000DAB7F /* SDL_image.framework */; };
+ 92EEA0060D2E20B300DDE300 /* SDL_mixer.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC408F0BAEE818000DAB7F /* SDL_mixer.framework */; };
+ 92EEA0070D2E20B300DDE300 /* SDL_net.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC40900BAEE818000DAB7F /* SDL_net.framework */; };
+ 92EEA0080D2E20B300DDE300 /* SDL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 92BC40910BAEE818000DAB7F /* SDL.framework */; };
+ 92FD19B00DDCE51000D14E5D /* player_relations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92FD19AE0DDCE51000D14E5D /* player_relations.cpp */; };
+ 92FD19BA0DDCE53400D14E5D /* setup_players.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92FD19B30DDCE53400D14E5D /* setup_players.cpp */; };
+ 92FD19BB0DDCE53400D14E5D /* table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92FD19B50DDCE53400D14E5D /* table.cpp */; };
+ 92FD19BC0DDCE53400D14E5D /* table_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92FD19B70DDCE53400D14E5D /* table_model.cpp */; };
+ 92FD19C10DDCE6F700D14E5D /* strprintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92FD19BF0DDCE6F700D14E5D /* strprintf.cpp */; };
+ 92FD19C80DDCEBA500D14E5D /* emotions.png in Copy GUI Files */ = {isa = PBXBuildFile; fileRef = 92FD19C60DDCEB8500D14E5D /* emotions.png */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 924A3A520C085C190066885E /* Copy Data Files */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = data;
+ dstSubfolderSpec = 7;
+ files = (
+ 924A40570C085EF50066885E /* items.xsd in Copy Data Files */,
+ );
+ name = "Copy Data Files";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 924A3E540C085CAF0066885E /* Copy GUI Files */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = data/graphics/gui;
+ dstSubfolderSpec = 7;
+ files = (
+ 92FD19C80DDCEBA500D14E5D /* emotions.png in Copy GUI Files */,
+ 92024E170CF1C11D006B55CB /* item_shortcut_bgr.png in Copy GUI Files */,
+ 92024E150CF1C0DA006B55CB /* close_button.png in Copy GUI Files */,
+ 924A405A0C085F950066885E /* bg_quad_dis.png in Copy GUI Files */,
+ 924A405B0C085F950066885E /* browserfont.png in Copy GUI Files */,
+ 924A405C0C085F950066885E /* button.png in Copy GUI Files */,
+ 924A405D0C085F950066885E /* button_disabled.png in Copy GUI Files */,
+ 924A405E0C085F950066885E /* buttonhi.png in Copy GUI Files */,
+ 92024E160CF1C0FB006B55CB /* unknown-item.png in Copy GUI Files */,
+ 924A405F0C085F950066885E /* buttonpress.png in Copy GUI Files */,
+ 924A40600C085F950066885E /* checkbox.png in Copy GUI Files */,
+ 924A40610C085F950066885E /* deepbox.png in Copy GUI Files */,
+ 924A40620C085F950066885E /* fixedfont.png in Copy GUI Files */,
+ 924A40630C085F950066885E /* hits_blue.png in Copy GUI Files */,
+ 924A40640C085F950066885E /* hits_red.png in Copy GUI Files */,
+ 924A40650C085F950066885E /* hits_yellow.png in Copy GUI Files */,
+ 924A40660C085F950066885E /* hscroll_left_default.png in Copy GUI Files */,
+ 924A40670C085F950066885E /* hscroll_left_highlight.png in Copy GUI Files */,
+ 924A40680C085F950066885E /* hscroll_left_pressed.png in Copy GUI Files */,
+ 924A40690C085F950066885E /* hscroll_right_default.png in Copy GUI Files */,
+ 924A406A0C085F950066885E /* hscroll_right_highlight.png in Copy GUI Files */,
+ 924A406B0C085F950066885E /* hscroll_right_pressed.png in Copy GUI Files */,
+ 924A406C0C085F950066885E /* menuitemD.png in Copy GUI Files */,
+ 924A406D0C085F950066885E /* menuitemF.png in Copy GUI Files */,
+ 924A406E0C085F950066885E /* menuitemN.png in Copy GUI Files */,
+ 924A406F0C085F950066885E /* menuitemP.png in Copy GUI Files */,
+ 924A40700C085F950066885E /* mouse.png in Copy GUI Files */,
+ 924A40710C085F950066885E /* radioin.png in Copy GUI Files */,
+ 924A40720C085F950066885E /* radioout.png in Copy GUI Files */,
+ 924A40730C085F950066885E /* resize.png in Copy GUI Files */,
+ 924A40740C085F950066885E /* rpgfont_wider.png in Copy GUI Files */,
+ 924A40750C085F950066885E /* sansserif8.png in Copy GUI Files */,
+ 924A40760C085F950066885E /* selection.png in Copy GUI Files */,
+ 924A40770C085F950066885E /* slider.png in Copy GUI Files */,
+ 924A40780C085F950066885E /* target-cursor-blue-l.png in Copy GUI Files */,
+ 924A40790C085F950066885E /* target-cursor-blue-m.png in Copy GUI Files */,
+ 924A407A0C085F950066885E /* target-cursor-blue-s.png in Copy GUI Files */,
+ 924A407B0C085F950066885E /* target-cursor-red-l.png in Copy GUI Files */,
+ 924A407C0C085F950066885E /* target-cursor-red-m.png in Copy GUI Files */,
+ 924A407D0C085F950066885E /* target-cursor-red-s.png in Copy GUI Files */,
+ 924A407E0C085F950066885E /* thickborder.png in Copy GUI Files */,
+ 924A407F0C085F950066885E /* vscroll_blue.png in Copy GUI Files */,
+ 924A40800C085F950066885E /* vscroll_down_default.png in Copy GUI Files */,
+ 924A40810C085F950066885E /* vscroll_down_highlight.png in Copy GUI Files */,
+ 924A40820C085F950066885E /* vscroll_down_pressed.png in Copy GUI Files */,
+ 924A40830C085F950066885E /* vscroll_grey.png in Copy GUI Files */,
+ 924A40840C085F950066885E /* vscroll_red.png in Copy GUI Files */,
+ 924A40850C085F950066885E /* vscroll_up_default.png in Copy GUI Files */,
+ 924A40860C085F950066885E /* vscroll_up_highlight.png in Copy GUI Files */,
+ 924A40870C085F950066885E /* vscroll_up_pressed.png in Copy GUI Files */,
+ );
+ name = "Copy GUI Files";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 924A40880C085FBD0066885E /* Copy Image Files */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = data/graphics/images;
+ dstSubfolderSpec = 7;
+ files = (
+ 924A408A0C0860120066885E /* error.png in Copy Image Files */,
+ 924A408B0C0860120066885E /* login_wallpaper.png in Copy Image Files */,
+ );
+ name = "Copy Image Files";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 924A42000C0861C70066885E /* Copy Help Files */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = data/help;
+ dstSubfolderSpec = 7;
+ files = (
+ 924A42020C0861EC0066885E /* about.txt in Copy Help Files */,
+ 924A42030C0861EC0066885E /* changes.txt in Copy Help Files */,
+ 924A42040C0861EC0066885E /* commands.txt in Copy Help Files */,
+ 924A42050C0861EC0066885E /* header.txt in Copy Help Files */,
+ 924A42060C0861EC0066885E /* index.txt in Copy Help Files */,
+ 924A42070C0861EC0066885E /* skills.txt in Copy Help Files */,
+ 924A42080C0861EC0066885E /* support.txt in Copy Help Files */,
+ 924A42090C0861EC0066885E /* team.txt in Copy Help Files */,
+ );
+ name = "Copy Help Files";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 92EEA0090D2E20D100DDE300 /* Copy Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ 922CDA6A0E3D07150074C50E /* guichan.framework in Copy Frameworks */,
+ 92EEA0030D2E20B300DDE300 /* libpng.framework in Copy Frameworks */,
+ 92EEA0050D2E20B300DDE300 /* SDL_image.framework in Copy Frameworks */,
+ 92EEA0060D2E20B300DDE300 /* SDL_mixer.framework in Copy Frameworks */,
+ 92EEA0070D2E20B300DDE300 /* SDL_net.framework in Copy Frameworks */,
+ 92EEA0080D2E20B300DDE300 /* SDL.framework in Copy Frameworks */,
+ );
+ name = "Copy Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ 508344B209E5C41E0093A071 /* The Mana World.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "The Mana World.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 92024D2A0CF1BD9E006B55CB /* keyboardconfig.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = keyboardconfig.cpp; path = src/keyboardconfig.cpp; sourceTree = "<group>"; };
+ 92024D2B0CF1BD9E006B55CB /* keyboardconfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = keyboardconfig.h; path = src/keyboardconfig.h; sourceTree = "<group>"; };
+ 92024D2C0CF1BD9E006B55CB /* vector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = vector.h; path = src/vector.h; sourceTree = "<group>"; };
+ 92024D360CF1BDF7006B55CB /* setup_keyboard.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_keyboard.cpp; sourceTree = "<group>"; };
+ 92024D370CF1BDF7006B55CB /* setup_keyboard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_keyboard.h; sourceTree = "<group>"; };
+ 92024D400CF1BE22006B55CB /* fastsqrt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fastsqrt.h; sourceTree = "<group>"; };
+ 92024D420CF1BE22006B55CB /* trim.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = trim.h; sourceTree = "<group>"; };
+ 92024D5B0CF1BE5C006B55CB /* close_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = close_button.png; sourceTree = "<group>"; };
+ 92024D5C0CF1BE5C006B55CB /* item_shortcut_bgr.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = item_shortcut_bgr.png; sourceTree = "<group>"; };
+ 92024D5D0CF1BE5C006B55CB /* unknown-item.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "unknown-item.png"; sourceTree = "<group>"; };
+ 92024DDD0CF1BFC8006B55CB /* The Mana World.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "The Mana World.icns"; sourceTree = "<group>"; };
+ 92024E740CF1DCF6006B55CB /* imageloader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = imageloader.cpp; sourceTree = "<group>"; };
+ 92024E750CF1DCF6006B55CB /* imageloader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = imageloader.h; sourceTree = "<group>"; };
+ 92037A190ED2035A00D3712D /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLMain.h; path = src/SDLMain.h; sourceTree = "<group>"; };
+ 92037A1A0ED2037300D3712D /* particleemitterprop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = particleemitterprop.h; path = src/particleemitterprop.h; sourceTree = "<group>"; };
+ 92037A1B0ED2037300D3712D /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = text.cpp; path = src/text.cpp; sourceTree = "<group>"; };
+ 92037A1C0ED2037300D3712D /* text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = text.h; path = src/text.h; sourceTree = "<group>"; };
+ 92037A1D0ED2037300D3712D /* textmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = textmanager.cpp; path = src/textmanager.cpp; sourceTree = "<group>"; };
+ 92037A1E0ED2037300D3712D /* textmanager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = textmanager.h; path = src/textmanager.h; sourceTree = "<group>"; };
+ 922CD9560E3D00900074C50E /* npcdb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = npcdb.cpp; sourceTree = "<group>"; };
+ 922CD9570E3D00900074C50E /* npcdb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = npcdb.h; sourceTree = "<group>"; };
+ 922CD95D0E3D01080074C50E /* shopitem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = shopitem.cpp; path = src/shopitem.cpp; sourceTree = "<group>"; };
+ 922CD95E0E3D01080074C50E /* shopitem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = shopitem.h; path = src/shopitem.h; sourceTree = "<group>"; };
+ 922CD9EC0E3D02C50074C50E /* guichan.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = guichan.framework; sourceTree = "<group>"; };
+ 924A39E80C0784280066885E /* animationparticle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = animationparticle.cpp; path = src/animationparticle.cpp; sourceTree = "<group>"; };
+ 924A39E90C0784280066885E /* animationparticle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = animationparticle.h; path = src/animationparticle.h; sourceTree = "<group>"; };
+ 924A39EA0C0784280066885E /* imageparticle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = imageparticle.cpp; path = src/imageparticle.cpp; sourceTree = "<group>"; };
+ 924A39EB0C0784280066885E /* imageparticle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = imageparticle.h; path = src/imageparticle.h; sourceTree = "<group>"; };
+ 924A39EC0C0784280066885E /* particle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = particle.cpp; path = src/particle.cpp; sourceTree = "<group>"; };
+ 924A39ED0C0784280066885E /* particle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = particle.h; path = src/particle.h; sourceTree = "<group>"; };
+ 924A39EE0C0784280066885E /* particleemitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = particleemitter.cpp; path = src/particleemitter.cpp; sourceTree = "<group>"; };
+ 924A39EF0C0784280066885E /* particleemitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = particleemitter.h; path = src/particleemitter.h; sourceTree = "<group>"; };
+ 924A39F00C0784280066885E /* textparticle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = textparticle.cpp; path = src/textparticle.cpp; sourceTree = "<group>"; };
+ 924A39F10C0784280066885E /* textparticle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = textparticle.h; path = src/textparticle.h; sourceTree = "<group>"; };
+ 924A3A100C07A60B0066885E /* resizegrip.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = resizegrip.cpp; sourceTree = "<group>"; };
+ 924A3A110C07A60B0066885E /* resizegrip.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = resizegrip.h; sourceTree = "<group>"; };
+ 924A3E600C085ED70066885E /* bg_quad_dis.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg_quad_dis.png; sourceTree = "<group>"; };
+ 924A3E610C085ED70066885E /* browserfont.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = browserfont.png; sourceTree = "<group>"; };
+ 924A3E620C085ED70066885E /* button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = button.png; sourceTree = "<group>"; };
+ 924A3E630C085ED70066885E /* button_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = button_disabled.png; sourceTree = "<group>"; };
+ 924A3E640C085ED70066885E /* buttonhi.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonhi.png; sourceTree = "<group>"; };
+ 924A3E650C085ED70066885E /* buttonpress.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonpress.png; sourceTree = "<group>"; };
+ 924A3E660C085ED70066885E /* checkbox.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = checkbox.png; sourceTree = "<group>"; };
+ 924A3E680C085ED70066885E /* deepbox.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = deepbox.png; sourceTree = "<group>"; };
+ 924A3E690C085ED70066885E /* fixedfont.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = fixedfont.png; sourceTree = "<group>"; };
+ 924A3E6A0C085ED70066885E /* hits_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hits_blue.png; sourceTree = "<group>"; };
+ 924A3E6B0C085ED70066885E /* hits_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hits_red.png; sourceTree = "<group>"; };
+ 924A3E6C0C085ED70066885E /* hits_yellow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hits_yellow.png; sourceTree = "<group>"; };
+ 924A3E6D0C085ED70066885E /* hscroll_left_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_left_default.png; sourceTree = "<group>"; };
+ 924A3E6E0C085ED70066885E /* hscroll_left_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_left_highlight.png; sourceTree = "<group>"; };
+ 924A3E6F0C085ED70066885E /* hscroll_left_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_left_pressed.png; sourceTree = "<group>"; };
+ 924A3E700C085ED70066885E /* hscroll_right_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_right_default.png; sourceTree = "<group>"; };
+ 924A3E710C085ED70066885E /* hscroll_right_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_right_highlight.png; sourceTree = "<group>"; };
+ 924A3E720C085ED70066885E /* hscroll_right_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_right_pressed.png; sourceTree = "<group>"; };
+ 924A3E740C085ED70066885E /* menuitemD.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemD.png; sourceTree = "<group>"; };
+ 924A3E750C085ED70066885E /* menuitemF.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemF.png; sourceTree = "<group>"; };
+ 924A3E760C085ED70066885E /* menuitemN.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemN.png; sourceTree = "<group>"; };
+ 924A3E770C085ED70066885E /* menuitemP.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemP.png; sourceTree = "<group>"; };
+ 924A3E780C085ED70066885E /* mouse.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mouse.png; sourceTree = "<group>"; };
+ 924A3E790C085ED70066885E /* radioin.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = radioin.png; sourceTree = "<group>"; };
+ 924A3E7A0C085ED70066885E /* radioout.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = radioout.png; sourceTree = "<group>"; };
+ 924A3E7B0C085ED70066885E /* resize.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = resize.png; sourceTree = "<group>"; };
+ 924A3E7C0C085ED70066885E /* rpgfont_wider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = rpgfont_wider.png; sourceTree = "<group>"; };
+ 924A3E7D0C085ED70066885E /* sansserif8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sansserif8.png; sourceTree = "<group>"; };
+ 924A3E7E0C085ED70066885E /* selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = selection.png; sourceTree = "<group>"; };
+ 924A3E7F0C085ED70066885E /* slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = slider.png; sourceTree = "<group>"; };
+ 924A3E800C085ED70066885E /* target-cursor-blue-l.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-blue-l.png"; sourceTree = "<group>"; };
+ 924A3E810C085ED70066885E /* target-cursor-blue-m.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-blue-m.png"; sourceTree = "<group>"; };
+ 924A3E820C085ED70066885E /* target-cursor-blue-s.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-blue-s.png"; sourceTree = "<group>"; };
+ 924A3E830C085ED70066885E /* target-cursor-red-l.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-red-l.png"; sourceTree = "<group>"; };
+ 924A3E840C085ED70066885E /* target-cursor-red-m.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-red-m.png"; sourceTree = "<group>"; };
+ 924A3E850C085ED70066885E /* target-cursor-red-s.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-red-s.png"; sourceTree = "<group>"; };
+ 924A3E860C085ED70066885E /* thickborder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = thickborder.png; sourceTree = "<group>"; };
+ 924A3E870C085ED70066885E /* vscroll_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_blue.png; sourceTree = "<group>"; };
+ 924A3E880C085ED70066885E /* vscroll_down_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_down_default.png; sourceTree = "<group>"; };
+ 924A3E890C085ED70066885E /* vscroll_down_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_down_highlight.png; sourceTree = "<group>"; };
+ 924A3E8A0C085ED70066885E /* vscroll_down_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_down_pressed.png; sourceTree = "<group>"; };
+ 924A3E8B0C085ED70066885E /* vscroll_grey.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_grey.png; sourceTree = "<group>"; };
+ 924A3E8C0C085ED70066885E /* vscroll_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_red.png; sourceTree = "<group>"; };
+ 924A3E8D0C085ED70066885E /* vscroll_up_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_up_default.png; sourceTree = "<group>"; };
+ 924A3E8E0C085ED70066885E /* vscroll_up_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_up_highlight.png; sourceTree = "<group>"; };
+ 924A3E8F0C085ED70066885E /* vscroll_up_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_up_pressed.png; sourceTree = "<group>"; };
+ 924A3E990C085ED70066885E /* error.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = error.png; sourceTree = "<group>"; };
+ 924A3E9A0C085ED70066885E /* login_wallpaper.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = login_wallpaper.png; sourceTree = "<group>"; };
+ 924A400A0C085ED80066885E /* about.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = about.txt; sourceTree = "<group>"; };
+ 924A400B0C085ED80066885E /* changes.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = changes.txt; sourceTree = "<group>"; };
+ 924A400D0C085ED80066885E /* commands.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = commands.txt; sourceTree = "<group>"; };
+ 924A400E0C085ED80066885E /* header.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = header.txt; sourceTree = "<group>"; };
+ 924A400F0C085ED80066885E /* index.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = index.txt; sourceTree = "<group>"; };
+ 924A40110C085ED80066885E /* skills.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = skills.txt; sourceTree = "<group>"; };
+ 924A40120C085ED80066885E /* support.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = support.txt; sourceTree = "<group>"; };
+ 924A40130C085ED80066885E /* team.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = team.txt; sourceTree = "<group>"; };
+ 924A40180C085ED80066885E /* tmw.ico */ = {isa = PBXFileReference; lastKnownFileType = image.ico; path = tmw.ico; sourceTree = "<group>"; };
+ 924A40190C085ED80066885E /* tmw.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = tmw.png; sourceTree = "<group>"; };
+ 924A401A0C085ED80066885E /* tmw.xpm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = tmw.xpm; sourceTree = "<group>"; };
+ 924A401C0C085ED80066885E /* items.xsd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = items.xsd; sourceTree = "<group>"; };
+ 924A42590C0871EC0066885E /* The Mana World.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "The Mana World.icns"; sourceTree = "<group>"; };
+ 924A42600C0874D00066885E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 925350010BC12A3200115FD5 /* imageset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = imageset.cpp; sourceTree = "<group>"; };
+ 925350020BC12A3200115FD5 /* imageset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = imageset.h; sourceTree = "<group>"; };
+ 926F9CF60DB005FA00AACD26 /* itemshortcut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = itemshortcut.cpp; path = src/itemshortcut.cpp; sourceTree = "<group>"; };
+ 926F9CF70DB005FA00AACD26 /* itemshortcut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = itemshortcut.h; path = src/itemshortcut.h; sourceTree = "<group>"; };
+ 926F9D410DB00AFC00AACD26 /* itemshortcutcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itemshortcutcontainer.cpp; sourceTree = "<group>"; };
+ 926F9D420DB00AFC00AACD26 /* itemshortcutcontainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutcontainer.h; sourceTree = "<group>"; };
+ 926F9D430DB00AFC00AACD26 /* itemshortcutwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itemshortcutwindow.cpp; sourceTree = "<group>"; };
+ 926F9D440DB00AFC00AACD26 /* itemshortcutwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutwindow.h; sourceTree = "<group>"; };
+ 9294DAA00C17E73200FCEDE9 /* libpng.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libpng.framework; path = /Library/Frameworks/libpng.framework; sourceTree = "<absolute>"; };
+ 92A4CC9D0D1C622E00CA28FB /* dye.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dye.cpp; path = src/resources/dye.cpp; sourceTree = "<group>"; };
+ 92A4CCE00D1DA58D00CA28FB /* dir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dir.c; sourceTree = "<group>"; };
+ 92A4CCE10D1DA58D00CA28FB /* grp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = grp.c; sourceTree = "<group>"; };
+ 92A4CCE20D1DA58D00CA28FB /* hog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hog.c; sourceTree = "<group>"; };
+ 92A4CCE30D1DA58D00CA28FB /* lzma.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lzma.c; sourceTree = "<group>"; };
+ 92A4CCE40D1DA58D00CA28FB /* mvl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mvl.c; sourceTree = "<group>"; };
+ 92A4CCE50D1DA58D00CA28FB /* qpak.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = qpak.c; sourceTree = "<group>"; };
+ 92A4CCE60D1DA58D00CA28FB /* wad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wad.c; sourceTree = "<group>"; };
+ 92A4CCE70D1DA58D00CA28FB /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip.c; sourceTree = "<group>"; };
+ 92A4CCF00D1DA5A800CA28FB /* physfs_casefolding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = physfs_casefolding.h; sourceTree = "<group>"; };
+ 92A4CCF10D1DA5A800CA28FB /* physfs_platforms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = physfs_platforms.h; sourceTree = "<group>"; };
+ 92A4CCF20D1DA5C600CA28FB /* macosx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = macosx.c; sourceTree = "<group>"; };
+ 92A4CCFB0D1DA89800CA28FB /* physfs_unicode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = physfs_unicode.c; sourceTree = "<group>"; };
+ 92A4CCFE0D1DA8E500CA28FB /* LICENSE.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = LICENSE.rtf; sourceTree = "<group>"; };
+ 92BC3ECA0BAEE55A000DAB7F /* animatedsprite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = animatedsprite.cpp; path = src/animatedsprite.cpp; sourceTree = "<group>"; };
+ 92BC3ECB0BAEE55A000DAB7F /* animatedsprite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = animatedsprite.h; path = src/animatedsprite.h; sourceTree = "<group>"; };
+ 92BC3ECC0BAEE55A000DAB7F /* being.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = being.cpp; path = src/being.cpp; sourceTree = "<group>"; };
+ 92BC3ECD0BAEE55A000DAB7F /* being.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = being.h; path = src/being.h; sourceTree = "<group>"; };
+ 92BC3ECE0BAEE55A000DAB7F /* beingmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = beingmanager.cpp; path = src/beingmanager.cpp; sourceTree = "<group>"; };
+ 92BC3ECF0BAEE55A000DAB7F /* beingmanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = beingmanager.h; path = src/beingmanager.h; sourceTree = "<group>"; };
+ 92BC3ED10BAEE55A000DAB7F /* configlistener.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = configlistener.h; path = src/configlistener.h; sourceTree = "<group>"; };
+ 92BC3ED20BAEE55A000DAB7F /* configuration.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = configuration.cpp; path = src/configuration.cpp; sourceTree = "<group>"; };
+ 92BC3ED30BAEE55A000DAB7F /* configuration.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = configuration.h; path = src/configuration.h; sourceTree = "<group>"; };
+ 92BC3EE40BAEE55A000DAB7F /* engine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = engine.cpp; path = src/engine.cpp; sourceTree = "<group>"; };
+ 92BC3EE50BAEE55A000DAB7F /* engine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = engine.h; path = src/engine.h; sourceTree = "<group>"; };
+ 92BC3EE60BAEE55A000DAB7F /* equipment.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = equipment.cpp; path = src/equipment.cpp; sourceTree = "<group>"; };
+ 92BC3EE70BAEE55A000DAB7F /* equipment.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = equipment.h; path = src/equipment.h; sourceTree = "<group>"; };
+ 92BC3EE80BAEE55A000DAB7F /* floor_item.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = floor_item.cpp; path = src/floor_item.cpp; sourceTree = "<group>"; };
+ 92BC3EE90BAEE55A000DAB7F /* floor_item.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = floor_item.h; path = src/floor_item.h; sourceTree = "<group>"; };
+ 92BC3EEA0BAEE55A000DAB7F /* flooritemmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = flooritemmanager.cpp; path = src/flooritemmanager.cpp; sourceTree = "<group>"; };
+ 92BC3EEB0BAEE55A000DAB7F /* flooritemmanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = flooritemmanager.h; path = src/flooritemmanager.h; sourceTree = "<group>"; };
+ 92BC3EEC0BAEE55A000DAB7F /* game.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = game.cpp; path = src/game.cpp; sourceTree = "<group>"; };
+ 92BC3EED0BAEE55A000DAB7F /* game.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = game.h; path = src/game.h; sourceTree = "<group>"; };
+ 92BC3EEE0BAEE55A000DAB7F /* graphics.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = graphics.cpp; path = src/graphics.cpp; sourceTree = "<group>"; };
+ 92BC3EEF0BAEE55A000DAB7F /* graphics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = graphics.h; path = src/graphics.h; sourceTree = "<group>"; };
+ 92BC3EF10BAEE55A000DAB7F /* box.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = box.cpp; sourceTree = "<group>"; };
+ 92BC3EF20BAEE55A000DAB7F /* box.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = box.h; sourceTree = "<group>"; };
+ 92BC3EF30BAEE55A000DAB7F /* browserbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = browserbox.cpp; sourceTree = "<group>"; };
+ 92BC3EF40BAEE55A000DAB7F /* browserbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = browserbox.h; sourceTree = "<group>"; };
+ 92BC3EF50BAEE55A000DAB7F /* buddywindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buddywindow.cpp; sourceTree = "<group>"; };
+ 92BC3EF60BAEE55A000DAB7F /* buddywindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buddywindow.h; sourceTree = "<group>"; };
+ 92BC3EF70BAEE55A000DAB7F /* button.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = button.cpp; sourceTree = "<group>"; };
+ 92BC3EF80BAEE55A000DAB7F /* button.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = button.h; sourceTree = "<group>"; };
+ 92BC3EF90BAEE55A000DAB7F /* buy.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buy.cpp; sourceTree = "<group>"; };
+ 92BC3EFA0BAEE55A000DAB7F /* buy.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buy.h; sourceTree = "<group>"; };
+ 92BC3EFB0BAEE55A000DAB7F /* buysell.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buysell.cpp; sourceTree = "<group>"; };
+ 92BC3EFC0BAEE55A000DAB7F /* buysell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buysell.h; sourceTree = "<group>"; };
+ 92BC3EFD0BAEE55A000DAB7F /* char_select.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = char_select.cpp; sourceTree = "<group>"; };
+ 92BC3EFE0BAEE55A000DAB7F /* char_select.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = char_select.h; sourceTree = "<group>"; };
+ 92BC3EFF0BAEE55A000DAB7F /* char_server.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = char_server.cpp; sourceTree = "<group>"; };
+ 92BC3F000BAEE55A000DAB7F /* char_server.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = char_server.h; sourceTree = "<group>"; };
+ 92BC3F010BAEE55A000DAB7F /* chargedialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chargedialog.cpp; sourceTree = "<group>"; };
+ 92BC3F020BAEE55A000DAB7F /* chargedialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chargedialog.h; sourceTree = "<group>"; };
+ 92BC3F030BAEE55A000DAB7F /* chat.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chat.cpp; sourceTree = "<group>"; };
+ 92BC3F040BAEE55A000DAB7F /* chat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chat.h; sourceTree = "<group>"; };
+ 92BC3F050BAEE55A000DAB7F /* chatinput.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chatinput.cpp; sourceTree = "<group>"; };
+ 92BC3F060BAEE55A000DAB7F /* chatinput.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chatinput.h; sourceTree = "<group>"; };
+ 92BC3F070BAEE55A000DAB7F /* checkbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = checkbox.cpp; sourceTree = "<group>"; };
+ 92BC3F080BAEE55A000DAB7F /* checkbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = checkbox.h; sourceTree = "<group>"; };
+ 92BC3F090BAEE55A000DAB7F /* confirm_dialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = confirm_dialog.cpp; sourceTree = "<group>"; };
+ 92BC3F0A0BAEE55A000DAB7F /* confirm_dialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = confirm_dialog.h; sourceTree = "<group>"; };
+ 92BC3F0B0BAEE55A000DAB7F /* connection.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = connection.cpp; sourceTree = "<group>"; };
+ 92BC3F0C0BAEE55A000DAB7F /* connection.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = connection.h; sourceTree = "<group>"; };
+ 92BC3F0D0BAEE55A000DAB7F /* debugwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = debugwindow.cpp; sourceTree = "<group>"; };
+ 92BC3F0E0BAEE55A000DAB7F /* debugwindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = debugwindow.h; sourceTree = "<group>"; };
+ 92BC3F0F0BAEE55A000DAB7F /* equipmentwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = equipmentwindow.cpp; sourceTree = "<group>"; };
+ 92BC3F100BAEE55A000DAB7F /* equipmentwindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = equipmentwindow.h; sourceTree = "<group>"; };
+ 92BC3F110BAEE55A000DAB7F /* focushandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = focushandler.cpp; sourceTree = "<group>"; };
+ 92BC3F120BAEE55A000DAB7F /* focushandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = focushandler.h; sourceTree = "<group>"; };
+ 92BC3F130BAEE55A000DAB7F /* gccontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gccontainer.cpp; sourceTree = "<group>"; };
+ 92BC3F140BAEE55A000DAB7F /* gccontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gccontainer.h; sourceTree = "<group>"; };
+ 92BC3F150BAEE55A000DAB7F /* gui.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gui.cpp; sourceTree = "<group>"; };
+ 92BC3F160BAEE55A000DAB7F /* gui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gui.h; sourceTree = "<group>"; };
+ 92BC3F170BAEE55A000DAB7F /* hbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = hbox.cpp; sourceTree = "<group>"; };
+ 92BC3F180BAEE55A000DAB7F /* hbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = hbox.h; sourceTree = "<group>"; };
+ 92BC3F190BAEE55A000DAB7F /* help.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = help.cpp; sourceTree = "<group>"; };
+ 92BC3F1A0BAEE55A000DAB7F /* help.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = help.h; sourceTree = "<group>"; };
+ 92BC3F1B0BAEE55A000DAB7F /* inttextbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = inttextbox.cpp; sourceTree = "<group>"; };
+ 92BC3F1C0BAEE55A000DAB7F /* inttextbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = inttextbox.h; sourceTree = "<group>"; };
+ 92BC3F1D0BAEE55A000DAB7F /* inventorywindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = inventorywindow.cpp; sourceTree = "<group>"; };
+ 92BC3F1E0BAEE55A000DAB7F /* inventorywindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = inventorywindow.h; sourceTree = "<group>"; };
+ 92BC3F1F0BAEE55A000DAB7F /* item_amount.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = item_amount.cpp; sourceTree = "<group>"; };
+ 92BC3F200BAEE55A000DAB7F /* item_amount.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = item_amount.h; sourceTree = "<group>"; };
+ 92BC3F210BAEE55A000DAB7F /* itemcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = itemcontainer.cpp; sourceTree = "<group>"; };
+ 92BC3F220BAEE55A000DAB7F /* itemcontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = itemcontainer.h; sourceTree = "<group>"; };
+ 92BC3F230BAEE55A000DAB7F /* linkhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = linkhandler.h; sourceTree = "<group>"; };
+ 92BC3F240BAEE55A000DAB7F /* listbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = listbox.cpp; sourceTree = "<group>"; };
+ 92BC3F250BAEE55A000DAB7F /* listbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = listbox.h; sourceTree = "<group>"; };
+ 92BC3F260BAEE55A000DAB7F /* login.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = login.cpp; sourceTree = "<group>"; };
+ 92BC3F270BAEE55A000DAB7F /* login.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = login.h; sourceTree = "<group>"; };
+ 92BC3F280BAEE55A000DAB7F /* menuwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = menuwindow.cpp; sourceTree = "<group>"; };
+ 92BC3F290BAEE55A000DAB7F /* menuwindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = menuwindow.h; sourceTree = "<group>"; };
+ 92BC3F2A0BAEE55A000DAB7F /* minimap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = minimap.cpp; sourceTree = "<group>"; };
+ 92BC3F2B0BAEE55A000DAB7F /* minimap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = minimap.h; sourceTree = "<group>"; };
+ 92BC3F2C0BAEE55A000DAB7F /* ministatus.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ministatus.cpp; sourceTree = "<group>"; };
+ 92BC3F2D0BAEE55A000DAB7F /* ministatus.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ministatus.h; sourceTree = "<group>"; };
+ 92BC3F2E0BAEE55A000DAB7F /* newskill.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = newskill.cpp; sourceTree = "<group>"; };
+ 92BC3F2F0BAEE55A000DAB7F /* newskill.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = newskill.h; sourceTree = "<group>"; };
+ 92BC3F300BAEE55A000DAB7F /* npc_text.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = npc_text.cpp; sourceTree = "<group>"; };
+ 92BC3F310BAEE55A000DAB7F /* npc_text.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = npc_text.h; sourceTree = "<group>"; };
+ 92BC3F320BAEE55A000DAB7F /* npclistdialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = npclistdialog.cpp; sourceTree = "<group>"; };
+ 92BC3F330BAEE55A000DAB7F /* npclistdialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = npclistdialog.h; sourceTree = "<group>"; };
+ 92BC3F340BAEE55A000DAB7F /* ok_dialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ok_dialog.cpp; sourceTree = "<group>"; };
+ 92BC3F350BAEE55A000DAB7F /* ok_dialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ok_dialog.h; sourceTree = "<group>"; };
+ 92BC3F360BAEE55A000DAB7F /* passwordfield.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = passwordfield.cpp; sourceTree = "<group>"; };
+ 92BC3F370BAEE55A000DAB7F /* passwordfield.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = passwordfield.h; sourceTree = "<group>"; };
+ 92BC3F380BAEE55A000DAB7F /* playerbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = playerbox.cpp; sourceTree = "<group>"; };
+ 92BC3F390BAEE55A000DAB7F /* playerbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = playerbox.h; sourceTree = "<group>"; };
+ 92BC3F3A0BAEE55A000DAB7F /* popupmenu.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = popupmenu.cpp; sourceTree = "<group>"; };
+ 92BC3F3B0BAEE55A000DAB7F /* popupmenu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = popupmenu.h; sourceTree = "<group>"; };
+ 92BC3F3C0BAEE55A000DAB7F /* progressbar.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = progressbar.cpp; sourceTree = "<group>"; };
+ 92BC3F3D0BAEE55A000DAB7F /* progressbar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = progressbar.h; sourceTree = "<group>"; };
+ 92BC3F3E0BAEE55A000DAB7F /* radiobutton.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = radiobutton.cpp; sourceTree = "<group>"; };
+ 92BC3F3F0BAEE55A000DAB7F /* radiobutton.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = radiobutton.h; sourceTree = "<group>"; };
+ 92BC3F400BAEE55A000DAB7F /* register.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = register.cpp; sourceTree = "<group>"; };
+ 92BC3F410BAEE55A000DAB7F /* register.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = register.h; sourceTree = "<group>"; };
+ 92BC3F420BAEE55A000DAB7F /* scrollarea.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = scrollarea.cpp; sourceTree = "<group>"; };
+ 92BC3F430BAEE55A000DAB7F /* scrollarea.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = scrollarea.h; sourceTree = "<group>"; };
+ 92BC3F450BAEE55A000DAB7F /* sell.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = sell.cpp; sourceTree = "<group>"; };
+ 92BC3F460BAEE55A000DAB7F /* sell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sell.h; sourceTree = "<group>"; };
+ 92BC3F470BAEE55A000DAB7F /* setup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup.cpp; sourceTree = "<group>"; };
+ 92BC3F480BAEE55A000DAB7F /* setup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup.h; sourceTree = "<group>"; };
+ 92BC3F490BAEE55A000DAB7F /* setup_audio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_audio.cpp; sourceTree = "<group>"; };
+ 92BC3F4A0BAEE55A000DAB7F /* setup_audio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_audio.h; sourceTree = "<group>"; };
+ 92BC3F4B0BAEE55A000DAB7F /* setup_joystick.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_joystick.cpp; sourceTree = "<group>"; };
+ 92BC3F4C0BAEE55A000DAB7F /* setup_joystick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_joystick.h; sourceTree = "<group>"; };
+ 92BC3F4D0BAEE55A000DAB7F /* setup_video.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_video.cpp; sourceTree = "<group>"; };
+ 92BC3F4E0BAEE55A000DAB7F /* setup_video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_video.h; sourceTree = "<group>"; };
+ 92BC3F4F0BAEE55A000DAB7F /* setuptab.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setuptab.h; sourceTree = "<group>"; };
+ 92BC3F500BAEE55A000DAB7F /* shop.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shop.cpp; sourceTree = "<group>"; };
+ 92BC3F510BAEE55A000DAB7F /* shop.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shop.h; sourceTree = "<group>"; };
+ 92BC3F520BAEE55A000DAB7F /* shoplistbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shoplistbox.cpp; sourceTree = "<group>"; };
+ 92BC3F530BAEE55A000DAB7F /* shoplistbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shoplistbox.h; sourceTree = "<group>"; };
+ 92BC3F540BAEE55A000DAB7F /* skill.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = skill.cpp; sourceTree = "<group>"; };
+ 92BC3F550BAEE55A000DAB7F /* skill.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = skill.h; sourceTree = "<group>"; };
+ 92BC3F560BAEE55A000DAB7F /* slider.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = slider.cpp; sourceTree = "<group>"; };
+ 92BC3F570BAEE55A000DAB7F /* slider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = slider.h; sourceTree = "<group>"; };
+ 92BC3F580BAEE55A000DAB7F /* status.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = status.cpp; sourceTree = "<group>"; };
+ 92BC3F590BAEE55B000DAB7F /* status.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = status.h; sourceTree = "<group>"; };
+ 92BC3F5A0BAEE55B000DAB7F /* tabbedcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = tabbedcontainer.cpp; sourceTree = "<group>"; };
+ 92BC3F5B0BAEE55B000DAB7F /* tabbedcontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tabbedcontainer.h; sourceTree = "<group>"; };
+ 92BC3F5C0BAEE55B000DAB7F /* textbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = textbox.cpp; sourceTree = "<group>"; };
+ 92BC3F5D0BAEE55B000DAB7F /* textbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = textbox.h; sourceTree = "<group>"; };
+ 92BC3F5E0BAEE55B000DAB7F /* textfield.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = textfield.cpp; sourceTree = "<group>"; };
+ 92BC3F5F0BAEE55B000DAB7F /* textfield.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = textfield.h; sourceTree = "<group>"; };
+ 92BC3F600BAEE55B000DAB7F /* trade.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = trade.cpp; sourceTree = "<group>"; };
+ 92BC3F610BAEE55B000DAB7F /* trade.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = trade.h; sourceTree = "<group>"; };
+ 92BC3F620BAEE55B000DAB7F /* updatewindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = updatewindow.cpp; sourceTree = "<group>"; };
+ 92BC3F630BAEE55B000DAB7F /* updatewindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = updatewindow.h; sourceTree = "<group>"; };
+ 92BC3F640BAEE55B000DAB7F /* vbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vbox.cpp; sourceTree = "<group>"; };
+ 92BC3F650BAEE55B000DAB7F /* vbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vbox.h; sourceTree = "<group>"; };
+ 92BC3F660BAEE55B000DAB7F /* viewport.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = viewport.cpp; sourceTree = "<group>"; };
+ 92BC3F670BAEE55B000DAB7F /* viewport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = viewport.h; sourceTree = "<group>"; };
+ 92BC3F680BAEE55B000DAB7F /* window.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = window.cpp; sourceTree = "<group>"; };
+ 92BC3F690BAEE55B000DAB7F /* window.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = "<group>"; };
+ 92BC3F6A0BAEE55B000DAB7F /* windowcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = windowcontainer.cpp; sourceTree = "<group>"; };
+ 92BC3F6B0BAEE55B000DAB7F /* windowcontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = windowcontainer.h; sourceTree = "<group>"; };
+ 92BC3F6C0BAEE55B000DAB7F /* guichanfwd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = guichanfwd.h; path = src/guichanfwd.h; sourceTree = "<group>"; };
+ 92BC3F6D0BAEE55B000DAB7F /* inventory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = inventory.cpp; path = src/inventory.cpp; sourceTree = "<group>"; };
+ 92BC3F6E0BAEE55B000DAB7F /* inventory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = inventory.h; path = src/inventory.h; sourceTree = "<group>"; };
+ 92BC3F6F0BAEE55B000DAB7F /* item.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = item.cpp; path = src/item.cpp; sourceTree = "<group>"; };
+ 92BC3F700BAEE55B000DAB7F /* item.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = item.h; path = src/item.h; sourceTree = "<group>"; };
+ 92BC3F710BAEE55B000DAB7F /* joystick.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = joystick.cpp; path = src/joystick.cpp; sourceTree = "<group>"; };
+ 92BC3F720BAEE55B000DAB7F /* joystick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = joystick.h; path = src/joystick.h; sourceTree = "<group>"; };
+ 92BC3F730BAEE55B000DAB7F /* localplayer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = localplayer.cpp; path = src/localplayer.cpp; sourceTree = "<group>"; };
+ 92BC3F740BAEE55B000DAB7F /* localplayer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = localplayer.h; path = src/localplayer.h; sourceTree = "<group>"; };
+ 92BC3F750BAEE55B000DAB7F /* lockedarray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = lockedarray.h; path = src/lockedarray.h; sourceTree = "<group>"; };
+ 92BC3F760BAEE55B000DAB7F /* log.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = log.cpp; path = src/log.cpp; sourceTree = "<group>"; };
+ 92BC3F770BAEE55B000DAB7F /* log.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = log.h; path = src/log.h; sourceTree = "<group>"; };
+ 92BC3F780BAEE55B000DAB7F /* logindata.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = logindata.h; path = src/logindata.h; sourceTree = "<group>"; };
+ 92BC3F790BAEE55B000DAB7F /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = "<group>"; };
+ 92BC3F7A0BAEE55B000DAB7F /* main.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = main.h; path = src/main.h; sourceTree = "<group>"; };
+ 92BC3F7C0BAEE55B000DAB7F /* map.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = map.cpp; path = src/map.cpp; sourceTree = "<group>"; };
+ 92BC3F7D0BAEE55B000DAB7F /* map.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = map.h; path = src/map.h; sourceTree = "<group>"; };
+ 92BC3F7E0BAEE55B000DAB7F /* monster.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = monster.cpp; path = src/monster.cpp; sourceTree = "<group>"; };
+ 92BC3F7F0BAEE55B000DAB7F /* monster.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = monster.h; path = src/monster.h; sourceTree = "<group>"; };
+ 92BC3F810BAEE55B000DAB7F /* beinghandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = beinghandler.cpp; sourceTree = "<group>"; };
+ 92BC3F820BAEE55B000DAB7F /* beinghandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = beinghandler.h; sourceTree = "<group>"; };
+ 92BC3F830BAEE55B000DAB7F /* buysellhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buysellhandler.cpp; sourceTree = "<group>"; };
+ 92BC3F840BAEE55B000DAB7F /* buysellhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buysellhandler.h; sourceTree = "<group>"; };
+ 92BC3F850BAEE55B000DAB7F /* charserverhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = charserverhandler.cpp; sourceTree = "<group>"; };
+ 92BC3F860BAEE55B000DAB7F /* charserverhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = charserverhandler.h; sourceTree = "<group>"; };
+ 92BC3F870BAEE55B000DAB7F /* chathandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chathandler.cpp; sourceTree = "<group>"; };
+ 92BC3F880BAEE55B000DAB7F /* chathandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chathandler.h; sourceTree = "<group>"; };
+ 92BC3F890BAEE55B000DAB7F /* equipmenthandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = equipmenthandler.cpp; sourceTree = "<group>"; };
+ 92BC3F8A0BAEE55B000DAB7F /* equipmenthandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = equipmenthandler.h; sourceTree = "<group>"; };
+ 92BC3F8B0BAEE55B000DAB7F /* inventoryhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = inventoryhandler.cpp; sourceTree = "<group>"; };
+ 92BC3F8C0BAEE55B000DAB7F /* inventoryhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = inventoryhandler.h; sourceTree = "<group>"; };
+ 92BC3F8D0BAEE55B000DAB7F /* itemhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = itemhandler.cpp; sourceTree = "<group>"; };
+ 92BC3F8E0BAEE55B000DAB7F /* itemhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = itemhandler.h; sourceTree = "<group>"; };
+ 92BC3F8F0BAEE55B000DAB7F /* loginhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = loginhandler.cpp; sourceTree = "<group>"; };
+ 92BC3F900BAEE55B000DAB7F /* loginhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = loginhandler.h; sourceTree = "<group>"; };
+ 92BC3F910BAEE55B000DAB7F /* maploginhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = maploginhandler.cpp; sourceTree = "<group>"; };
+ 92BC3F920BAEE55B000DAB7F /* maploginhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = maploginhandler.h; sourceTree = "<group>"; };
+ 92BC3F930BAEE55B000DAB7F /* messagehandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = messagehandler.cpp; sourceTree = "<group>"; };
+ 92BC3F940BAEE55B000DAB7F /* messagehandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = messagehandler.h; sourceTree = "<group>"; };
+ 92BC3F950BAEE55B000DAB7F /* messagein.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = messagein.cpp; sourceTree = "<group>"; };
+ 92BC3F960BAEE55B000DAB7F /* messagein.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = messagein.h; sourceTree = "<group>"; };
+ 92BC3F970BAEE55B000DAB7F /* messageout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = messageout.cpp; sourceTree = "<group>"; };
+ 92BC3F980BAEE55B000DAB7F /* messageout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = messageout.h; sourceTree = "<group>"; };
+ 92BC3F990BAEE55B000DAB7F /* network.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = network.cpp; sourceTree = "<group>"; };
+ 92BC3F9A0BAEE55B000DAB7F /* network.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = network.h; sourceTree = "<group>"; };
+ 92BC3F9B0BAEE55B000DAB7F /* npchandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = npchandler.cpp; sourceTree = "<group>"; };
+ 92BC3F9C0BAEE55B000DAB7F /* npchandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = npchandler.h; sourceTree = "<group>"; };
+ 92BC3F9D0BAEE55B000DAB7F /* playerhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = playerhandler.cpp; sourceTree = "<group>"; };
+ 92BC3F9E0BAEE55B000DAB7F /* playerhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = playerhandler.h; sourceTree = "<group>"; };
+ 92BC3F9F0BAEE55B000DAB7F /* protocol.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = protocol.cpp; sourceTree = "<group>"; };
+ 92BC3FA00BAEE55B000DAB7F /* protocol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = protocol.h; sourceTree = "<group>"; };
+ 92BC3FA10BAEE55B000DAB7F /* skillhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = skillhandler.cpp; sourceTree = "<group>"; };
+ 92BC3FA20BAEE55B000DAB7F /* skillhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = skillhandler.h; sourceTree = "<group>"; };
+ 92BC3FA30BAEE55B000DAB7F /* tradehandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = tradehandler.cpp; sourceTree = "<group>"; };
+ 92BC3FA40BAEE55B000DAB7F /* tradehandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tradehandler.h; sourceTree = "<group>"; };
+ 92BC3FA50BAEE55B000DAB7F /* npc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = npc.cpp; path = src/npc.cpp; sourceTree = "<group>"; };
+ 92BC3FA60BAEE55B000DAB7F /* npc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = npc.h; path = src/npc.h; sourceTree = "<group>"; };
+ 92BC3FA70BAEE55B000DAB7F /* openglgraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = openglgraphics.cpp; path = src/openglgraphics.cpp; sourceTree = "<group>"; };
+ 92BC3FA80BAEE55B000DAB7F /* openglgraphics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = openglgraphics.h; path = src/openglgraphics.h; sourceTree = "<group>"; };
+ 92BC3FAB0BAEE55B000DAB7F /* physfs.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = physfs.c; sourceTree = "<group>"; };
+ 92BC3FAC0BAEE55B000DAB7F /* physfs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = physfs.h; sourceTree = "<group>"; };
+ 92BC3FAD0BAEE55B000DAB7F /* physfs_byteorder.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = physfs_byteorder.c; sourceTree = "<group>"; };
+ 92BC3FAE0BAEE55B000DAB7F /* physfs_internal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = physfs_internal.h; sourceTree = "<group>"; };
+ 92BC3FB50BAEE55B000DAB7F /* posix.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = posix.c; sourceTree = "<group>"; };
+ 92BC3FB70BAEE55B000DAB7F /* unix.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = unix.c; sourceTree = "<group>"; };
+ 92BC3FBA0BAEE55B000DAB7F /* player.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = player.cpp; path = src/player.cpp; sourceTree = "<group>"; };
+ 92BC3FBB0BAEE55B000DAB7F /* player.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = player.h; path = src/player.h; sourceTree = "<group>"; };
+ 92BC3FBC0BAEE55B000DAB7F /* properties.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = properties.h; path = src/properties.h; sourceTree = "<group>"; };
+ 92BC3FBE0BAEE55B000DAB7F /* action.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = action.cpp; sourceTree = "<group>"; };
+ 92BC3FBF0BAEE55B000DAB7F /* action.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = action.h; sourceTree = "<group>"; };
+ 92BC3FC00BAEE55B000DAB7F /* ambientoverlay.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ambientoverlay.cpp; sourceTree = "<group>"; };
+ 92BC3FC10BAEE55B000DAB7F /* ambientoverlay.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ambientoverlay.h; sourceTree = "<group>"; };
+ 92BC3FC20BAEE55B000DAB7F /* animation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = animation.cpp; sourceTree = "<group>"; };
+ 92BC3FC30BAEE55B000DAB7F /* animation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = animation.h; sourceTree = "<group>"; };
+ 92BC3FC40BAEE55B000DAB7F /* buddylist.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buddylist.cpp; sourceTree = "<group>"; };
+ 92BC3FC50BAEE55B000DAB7F /* buddylist.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buddylist.h; sourceTree = "<group>"; };
+ 92BC3FC90BAEE55B000DAB7F /* image.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = image.cpp; sourceTree = "<group>"; };
+ 92BC3FCA0BAEE55B000DAB7F /* image.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = image.h; sourceTree = "<group>"; };
+ 92BC3FCB0BAEE55B000DAB7F /* imagewriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = imagewriter.cpp; sourceTree = "<group>"; };
+ 92BC3FCC0BAEE55B000DAB7F /* imagewriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = imagewriter.h; sourceTree = "<group>"; };
+ 92BC3FCD0BAEE55B000DAB7F /* itemdb.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = itemdb.cpp; sourceTree = "<group>"; };
+ 92BC3FCE0BAEE55B000DAB7F /* itemdb.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = itemdb.h; sourceTree = "<group>"; };
+ 92BC3FCF0BAEE55B000DAB7F /* iteminfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = iteminfo.cpp; sourceTree = "<group>"; };
+ 92BC3FD00BAEE55B000DAB7F /* iteminfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = iteminfo.h; sourceTree = "<group>"; };
+ 92BC3FD10BAEE55B000DAB7F /* mapreader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = mapreader.cpp; sourceTree = "<group>"; };
+ 92BC3FD20BAEE55B000DAB7F /* mapreader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mapreader.h; sourceTree = "<group>"; };
+ 92BC3FD30BAEE55B000DAB7F /* monsterdb.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = monsterdb.cpp; sourceTree = "<group>"; };
+ 92BC3FD40BAEE55B000DAB7F /* monsterdb.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = monsterdb.h; sourceTree = "<group>"; };
+ 92BC3FD50BAEE55B000DAB7F /* monsterinfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = monsterinfo.cpp; sourceTree = "<group>"; };
+ 92BC3FD60BAEE55B000DAB7F /* monsterinfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = monsterinfo.h; sourceTree = "<group>"; };
+ 92BC3FD70BAEE55B000DAB7F /* music.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = music.cpp; sourceTree = "<group>"; };
+ 92BC3FD80BAEE55B000DAB7F /* music.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = music.h; sourceTree = "<group>"; };
+ 92BC3FDB0BAEE55B000DAB7F /* resource.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = resource.cpp; sourceTree = "<group>"; };
+ 92BC3FDC0BAEE55B000DAB7F /* resource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = "<group>"; };
+ 92BC3FDD0BAEE55B000DAB7F /* resourcemanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = resourcemanager.cpp; sourceTree = "<group>"; };
+ 92BC3FDE0BAEE55B000DAB7F /* resourcemanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = resourcemanager.h; sourceTree = "<group>"; };
+ 92BC3FE10BAEE55B000DAB7F /* soundeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = soundeffect.cpp; sourceTree = "<group>"; };
+ 92BC3FE20BAEE55B000DAB7F /* soundeffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = soundeffect.h; sourceTree = "<group>"; };
+ 92BC3FE30BAEE55B000DAB7F /* spritedef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = spritedef.cpp; sourceTree = "<group>"; };
+ 92BC3FE40BAEE55B000DAB7F /* spritedef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = spritedef.h; sourceTree = "<group>"; };
+ 92BC3FE70BAEE55B000DAB7F /* serverinfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = serverinfo.h; path = src/serverinfo.h; sourceTree = "<group>"; };
+ 92BC3FE80BAEE55B000DAB7F /* simpleanimation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = simpleanimation.cpp; path = src/simpleanimation.cpp; sourceTree = "<group>"; };
+ 92BC3FE90BAEE55B000DAB7F /* simpleanimation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = simpleanimation.h; path = src/simpleanimation.h; sourceTree = "<group>"; };
+ 92BC3FEA0BAEE55B000DAB7F /* sound.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sound.cpp; path = src/sound.cpp; sourceTree = "<group>"; };
+ 92BC3FEB0BAEE55B000DAB7F /* sound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sound.h; path = src/sound.h; sourceTree = "<group>"; };
+ 92BC3FEC0BAEE55B000DAB7F /* sprite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sprite.h; path = src/sprite.h; sourceTree = "<group>"; };
+ 92BC3FED0BAEE55B000DAB7F /* tileset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tileset.h; path = src/tileset.h; sourceTree = "<group>"; };
+ 92BC3FEF0BAEE55B000DAB7F /* base64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = base64.cpp; sourceTree = "<group>"; };
+ 92BC3FF00BAEE55B000DAB7F /* base64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = base64.h; sourceTree = "<group>"; };
+ 92BC3FF10BAEE55B000DAB7F /* dtor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dtor.h; sourceTree = "<group>"; };
+ 92BC3FF20BAEE55B000DAB7F /* tostring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tostring.h; sourceTree = "<group>"; };
+ 92BC3FF40BAEE55B000DAB7F /* xml.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = xml.cpp; sourceTree = "<group>"; };
+ 92BC3FF50BAEE55B000DAB7F /* xml.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = xml.h; sourceTree = "<group>"; };
+ 92BC408E0BAEE818000DAB7F /* SDL_image.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_image.framework; path = /Library/Frameworks/SDL_image.framework; sourceTree = "<absolute>"; };
+ 92BC408F0BAEE818000DAB7F /* SDL_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_mixer.framework; path = /Library/Frameworks/SDL_mixer.framework; sourceTree = "<absolute>"; };
+ 92BC40900BAEE818000DAB7F /* SDL_net.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_net.framework; path = /Library/Frameworks/SDL_net.framework; sourceTree = "<absolute>"; };
+ 92BC40910BAEE818000DAB7F /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = "<absolute>"; };
+ 92BC40C60BAEEDAA000DAB7F /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
+ 92BC40D80BAEEED3000DAB7F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
+ 92BC40E50BAEF54B000DAB7F /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SDLMain.m; path = src/SDLMain.m; sourceTree = "<group>"; };
+ 92BC40E80BAEF57D000DAB7F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ 92BC416E0BAF664C000DAB7F /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ChangeLog; sourceTree = "<group>"; };
+ 92FD19AE0DDCE51000D14E5D /* player_relations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = player_relations.cpp; path = src/player_relations.cpp; sourceTree = "<group>"; };
+ 92FD19AF0DDCE51000D14E5D /* player_relations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = player_relations.h; path = src/player_relations.h; sourceTree = "<group>"; };
+ 92FD19B30DDCE53400D14E5D /* setup_players.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = setup_players.cpp; sourceTree = "<group>"; };
+ 92FD19B40DDCE53400D14E5D /* setup_players.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_players.h; sourceTree = "<group>"; };
+ 92FD19B50DDCE53400D14E5D /* table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table.cpp; sourceTree = "<group>"; };
+ 92FD19B60DDCE53400D14E5D /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = "<group>"; };
+ 92FD19B70DDCE53400D14E5D /* table_model.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_model.cpp; sourceTree = "<group>"; };
+ 92FD19B80DDCE53400D14E5D /* table_model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_model.h; sourceTree = "<group>"; };
+ 92FD19BD0DDCE56A00D14E5D /* dye.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dye.h; sourceTree = "<group>"; };
+ 92FD19BF0DDCE6F700D14E5D /* strprintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strprintf.cpp; sourceTree = "<group>"; };
+ 92FD19C00DDCE6F700D14E5D /* strprintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strprintf.h; sourceTree = "<group>"; };
+ 92FD19C60DDCEB8500D14E5D /* emotions.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = emotions.png; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D0C4E910486CD37000505A6 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */,
+ 92BC40940BAEE818000DAB7F /* SDL_image.framework in Frameworks */,
+ 92BC40950BAEE818000DAB7F /* SDL_mixer.framework in Frameworks */,
+ 92BC40960BAEE818000DAB7F /* SDL_net.framework in Frameworks */,
+ 92BC40970BAEE818000DAB7F /* SDL.framework in Frameworks */,
+ 92BC40C70BAEEDAA000DAB7F /* OpenGL.framework in Frameworks */,
+ 92BC40D90BAEEED3000DAB7F /* IOKit.framework in Frameworks */,
+ 92BC40E90BAEF57D000DAB7F /* Cocoa.framework in Frameworks */,
+ 9294DAA10C17E73200FCEDE9 /* libpng.framework in Frameworks */,
+ 922CD9ED0E3D02C50074C50E /* guichan.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 195DF8CFFE9D517E11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 508344B209E5C41E0093A071 /* The Mana World.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 20286C29FDCF999611CA2CEA /* themanaworld */ = {
+ isa = PBXGroup;
+ children = (
+ 924A42600C0874D00066885E /* Info.plist */,
+ 5048396909E3304600765E4B /* Configuration Files */,
+ 20286C2AFDCF999611CA2CEA /* Sources */,
+ 20286C2CFDCF999611CA2CEA /* Resources */,
+ 20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
+ 195DF8CFFE9D517E11CA2CBB /* Products */,
+ );
+ name = themanaworld;
+ sourceTree = "<group>";
+ };
+ 20286C2AFDCF999611CA2CEA /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 92037A1A0ED2037300D3712D /* particleemitterprop.h */,
+ 92037A1B0ED2037300D3712D /* text.cpp */,
+ 92037A1C0ED2037300D3712D /* text.h */,
+ 92037A1D0ED2037300D3712D /* textmanager.cpp */,
+ 92037A1E0ED2037300D3712D /* textmanager.h */,
+ 922CD95D0E3D01080074C50E /* shopitem.cpp */,
+ 922CD95E0E3D01080074C50E /* shopitem.h */,
+ 92FD19AE0DDCE51000D14E5D /* player_relations.cpp */,
+ 92FD19AF0DDCE51000D14E5D /* player_relations.h */,
+ 926F9CF60DB005FA00AACD26 /* itemshortcut.cpp */,
+ 926F9CF70DB005FA00AACD26 /* itemshortcut.h */,
+ 92A4CC9D0D1C622E00CA28FB /* dye.cpp */,
+ 92024D2A0CF1BD9E006B55CB /* keyboardconfig.cpp */,
+ 92024D2B0CF1BD9E006B55CB /* keyboardconfig.h */,
+ 92024D2C0CF1BD9E006B55CB /* vector.h */,
+ 924A39E80C0784280066885E /* animationparticle.cpp */,
+ 924A39E90C0784280066885E /* animationparticle.h */,
+ 924A39EA0C0784280066885E /* imageparticle.cpp */,
+ 924A39EB0C0784280066885E /* imageparticle.h */,
+ 924A39EC0C0784280066885E /* particle.cpp */,
+ 924A39ED0C0784280066885E /* particle.h */,
+ 924A39EE0C0784280066885E /* particleemitter.cpp */,
+ 924A39EF0C0784280066885E /* particleemitter.h */,
+ 924A39F00C0784280066885E /* textparticle.cpp */,
+ 924A39F10C0784280066885E /* textparticle.h */,
+ 92BC3ECA0BAEE55A000DAB7F /* animatedsprite.cpp */,
+ 92BC3ECB0BAEE55A000DAB7F /* animatedsprite.h */,
+ 92BC3ECC0BAEE55A000DAB7F /* being.cpp */,
+ 92BC3ECD0BAEE55A000DAB7F /* being.h */,
+ 92BC3ECE0BAEE55A000DAB7F /* beingmanager.cpp */,
+ 92BC3ECF0BAEE55A000DAB7F /* beingmanager.h */,
+ 92BC3ED10BAEE55A000DAB7F /* configlistener.h */,
+ 92BC3ED20BAEE55A000DAB7F /* configuration.cpp */,
+ 92BC3ED30BAEE55A000DAB7F /* configuration.h */,
+ 92BC3EE40BAEE55A000DAB7F /* engine.cpp */,
+ 92BC3EE50BAEE55A000DAB7F /* engine.h */,
+ 92BC3EE60BAEE55A000DAB7F /* equipment.cpp */,
+ 92BC3EE70BAEE55A000DAB7F /* equipment.h */,
+ 92BC3EE80BAEE55A000DAB7F /* floor_item.cpp */,
+ 92BC3EE90BAEE55A000DAB7F /* floor_item.h */,
+ 92BC3EEA0BAEE55A000DAB7F /* flooritemmanager.cpp */,
+ 92BC3EEB0BAEE55A000DAB7F /* flooritemmanager.h */,
+ 92BC3EEC0BAEE55A000DAB7F /* game.cpp */,
+ 92BC3EED0BAEE55A000DAB7F /* game.h */,
+ 92BC3EEE0BAEE55A000DAB7F /* graphics.cpp */,
+ 92BC3EEF0BAEE55A000DAB7F /* graphics.h */,
+ 92BC3EF00BAEE55A000DAB7F /* gui */,
+ 92BC3F6C0BAEE55B000DAB7F /* guichanfwd.h */,
+ 92BC3F6D0BAEE55B000DAB7F /* inventory.cpp */,
+ 92BC3F6E0BAEE55B000DAB7F /* inventory.h */,
+ 92BC3F6F0BAEE55B000DAB7F /* item.cpp */,
+ 92BC3F700BAEE55B000DAB7F /* item.h */,
+ 92BC3F710BAEE55B000DAB7F /* joystick.cpp */,
+ 92BC3F720BAEE55B000DAB7F /* joystick.h */,
+ 92BC3F730BAEE55B000DAB7F /* localplayer.cpp */,
+ 92BC3F740BAEE55B000DAB7F /* localplayer.h */,
+ 92BC3F750BAEE55B000DAB7F /* lockedarray.h */,
+ 92BC3F760BAEE55B000DAB7F /* log.cpp */,
+ 92BC3F770BAEE55B000DAB7F /* log.h */,
+ 92BC3F780BAEE55B000DAB7F /* logindata.h */,
+ 92BC3F790BAEE55B000DAB7F /* main.cpp */,
+ 92BC3F7A0BAEE55B000DAB7F /* main.h */,
+ 92BC3F7C0BAEE55B000DAB7F /* map.cpp */,
+ 92BC3F7D0BAEE55B000DAB7F /* map.h */,
+ 92BC3F7E0BAEE55B000DAB7F /* monster.cpp */,
+ 92BC3F7F0BAEE55B000DAB7F /* monster.h */,
+ 92BC3F800BAEE55B000DAB7F /* net */,
+ 92BC3FA50BAEE55B000DAB7F /* npc.cpp */,
+ 92BC3FA60BAEE55B000DAB7F /* npc.h */,
+ 92BC3FA70BAEE55B000DAB7F /* openglgraphics.cpp */,
+ 92BC3FA80BAEE55B000DAB7F /* openglgraphics.h */,
+ 92BC3FA90BAEE55B000DAB7F /* physfs */,
+ 92BC3FBA0BAEE55B000DAB7F /* player.cpp */,
+ 92BC3FBB0BAEE55B000DAB7F /* player.h */,
+ 92BC3FBC0BAEE55B000DAB7F /* properties.h */,
+ 92BC3FBD0BAEE55B000DAB7F /* resources */,
+ 92BC3FE70BAEE55B000DAB7F /* serverinfo.h */,
+ 92BC3FE80BAEE55B000DAB7F /* simpleanimation.cpp */,
+ 92BC3FE90BAEE55B000DAB7F /* simpleanimation.h */,
+ 92BC3FEA0BAEE55B000DAB7F /* sound.cpp */,
+ 92BC3FEB0BAEE55B000DAB7F /* sound.h */,
+ 92BC3FEC0BAEE55B000DAB7F /* sprite.h */,
+ 92BC3FED0BAEE55B000DAB7F /* tileset.h */,
+ 92BC3FEE0BAEE55B000DAB7F /* utils */,
+ );
+ name = Sources;
+ sourceTree = "<group>";
+ };
+ 20286C2CFDCF999611CA2CEA /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 92A4CCFE0D1DA8E500CA28FB /* LICENSE.rtf */,
+ 924A42590C0871EC0066885E /* The Mana World.icns */,
+ 924A3E590C085ED70066885E /* data */,
+ 92BC416E0BAF664C000DAB7F /* ChangeLog */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 922CD9EC0E3D02C50074C50E /* guichan.framework */,
+ 9294DAA00C17E73200FCEDE9 /* libpng.framework */,
+ 92BC40E80BAEF57D000DAB7F /* Cocoa.framework */,
+ 92BC40D80BAEEED3000DAB7F /* IOKit.framework */,
+ 92BC40C60BAEEDAA000DAB7F /* OpenGL.framework */,
+ 92BC408E0BAEE818000DAB7F /* SDL_image.framework */,
+ 92BC408F0BAEE818000DAB7F /* SDL_mixer.framework */,
+ 92BC40900BAEE818000DAB7F /* SDL_net.framework */,
+ 92BC40910BAEE818000DAB7F /* SDL.framework */,
+ 20286C33FDCF999611CA2CEA /* Carbon.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 5048396909E3304600765E4B /* Configuration Files */ = {
+ isa = PBXGroup;
+ children = (
+ 92037A190ED2035A00D3712D /* SDLMain.h */,
+ 92BC40E50BAEF54B000DAB7F /* SDLMain.m */,
+ );
+ name = "Configuration Files";
+ sourceTree = "<group>";
+ };
+ 924A3A0F0C07A60B0066885E /* widgets */ = {
+ isa = PBXGroup;
+ children = (
+ 924A3A100C07A60B0066885E /* resizegrip.cpp */,
+ 924A3A110C07A60B0066885E /* resizegrip.h */,
+ );
+ path = widgets;
+ sourceTree = "<group>";
+ };
+ 924A3E590C085ED70066885E /* data */ = {
+ isa = PBXGroup;
+ children = (
+ 924A3E5C0C085ED70066885E /* graphics */,
+ 924A40090C085ED80066885E /* help */,
+ 924A40140C085ED80066885E /* icons */,
+ 924A401C0C085ED80066885E /* items.xsd */,
+ );
+ path = data;
+ sourceTree = "<group>";
+ };
+ 924A3E5C0C085ED70066885E /* graphics */ = {
+ isa = PBXGroup;
+ children = (
+ 924A3E5E0C085ED70066885E /* gui */,
+ 924A3E900C085ED70066885E /* images */,
+ );
+ path = graphics;
+ sourceTree = "<group>";
+ };
+ 924A3E5E0C085ED70066885E /* gui */ = {
+ isa = PBXGroup;
+ children = (
+ 92FD19C60DDCEB8500D14E5D /* emotions.png */,
+ 92024D5B0CF1BE5C006B55CB /* close_button.png */,
+ 92024D5D0CF1BE5C006B55CB /* unknown-item.png */,
+ 92024D5C0CF1BE5C006B55CB /* item_shortcut_bgr.png */,
+ 924A3E600C085ED70066885E /* bg_quad_dis.png */,
+ 924A3E610C085ED70066885E /* browserfont.png */,
+ 924A3E620C085ED70066885E /* button.png */,
+ 924A3E630C085ED70066885E /* button_disabled.png */,
+ 924A3E640C085ED70066885E /* buttonhi.png */,
+ 924A3E650C085ED70066885E /* buttonpress.png */,
+ 924A3E660C085ED70066885E /* checkbox.png */,
+ 924A3E680C085ED70066885E /* deepbox.png */,
+ 924A3E690C085ED70066885E /* fixedfont.png */,
+ 924A3E6A0C085ED70066885E /* hits_blue.png */,
+ 924A3E6B0C085ED70066885E /* hits_red.png */,
+ 924A3E6C0C085ED70066885E /* hits_yellow.png */,
+ 924A3E6D0C085ED70066885E /* hscroll_left_default.png */,
+ 924A3E6E0C085ED70066885E /* hscroll_left_highlight.png */,
+ 924A3E6F0C085ED70066885E /* hscroll_left_pressed.png */,
+ 924A3E700C085ED70066885E /* hscroll_right_default.png */,
+ 924A3E710C085ED70066885E /* hscroll_right_highlight.png */,
+ 924A3E720C085ED70066885E /* hscroll_right_pressed.png */,
+ 924A3E740C085ED70066885E /* menuitemD.png */,
+ 924A3E750C085ED70066885E /* menuitemF.png */,
+ 924A3E760C085ED70066885E /* menuitemN.png */,
+ 924A3E770C085ED70066885E /* menuitemP.png */,
+ 924A3E780C085ED70066885E /* mouse.png */,
+ 924A3E790C085ED70066885E /* radioin.png */,
+ 924A3E7A0C085ED70066885E /* radioout.png */,
+ 924A3E7B0C085ED70066885E /* resize.png */,
+ 924A3E7C0C085ED70066885E /* rpgfont_wider.png */,
+ 924A3E7D0C085ED70066885E /* sansserif8.png */,
+ 924A3E7E0C085ED70066885E /* selection.png */,
+ 924A3E7F0C085ED70066885E /* slider.png */,
+ 924A3E800C085ED70066885E /* target-cursor-blue-l.png */,
+ 924A3E810C085ED70066885E /* target-cursor-blue-m.png */,
+ 924A3E820C085ED70066885E /* target-cursor-blue-s.png */,
+ 924A3E830C085ED70066885E /* target-cursor-red-l.png */,
+ 924A3E840C085ED70066885E /* target-cursor-red-m.png */,
+ 924A3E850C085ED70066885E /* target-cursor-red-s.png */,
+ 924A3E860C085ED70066885E /* thickborder.png */,
+ 924A3E870C085ED70066885E /* vscroll_blue.png */,
+ 924A3E880C085ED70066885E /* vscroll_down_default.png */,
+ 924A3E890C085ED70066885E /* vscroll_down_highlight.png */,
+ 924A3E8A0C085ED70066885E /* vscroll_down_pressed.png */,
+ 924A3E8B0C085ED70066885E /* vscroll_grey.png */,
+ 924A3E8C0C085ED70066885E /* vscroll_red.png */,
+ 924A3E8D0C085ED70066885E /* vscroll_up_default.png */,
+ 924A3E8E0C085ED70066885E /* vscroll_up_highlight.png */,
+ 924A3E8F0C085ED70066885E /* vscroll_up_pressed.png */,
+ );
+ path = gui;
+ sourceTree = "<group>";
+ };
+ 924A3E900C085ED70066885E /* images */ = {
+ isa = PBXGroup;
+ children = (
+ 924A3E990C085ED70066885E /* error.png */,
+ 924A3E9A0C085ED70066885E /* login_wallpaper.png */,
+ );
+ path = images;
+ sourceTree = "<group>";
+ };
+ 924A40090C085ED80066885E /* help */ = {
+ isa = PBXGroup;
+ children = (
+ 924A400A0C085ED80066885E /* about.txt */,
+ 924A400B0C085ED80066885E /* changes.txt */,
+ 924A400D0C085ED80066885E /* commands.txt */,
+ 924A400E0C085ED80066885E /* header.txt */,
+ 924A400F0C085ED80066885E /* index.txt */,
+ 924A40110C085ED80066885E /* skills.txt */,
+ 924A40120C085ED80066885E /* support.txt */,
+ 924A40130C085ED80066885E /* team.txt */,
+ );
+ path = help;
+ sourceTree = "<group>";
+ };
+ 924A40140C085ED80066885E /* icons */ = {
+ isa = PBXGroup;
+ children = (
+ 92024DDD0CF1BFC8006B55CB /* The Mana World.icns */,
+ 924A40180C085ED80066885E /* tmw.ico */,
+ 924A40190C085ED80066885E /* tmw.png */,
+ 924A401A0C085ED80066885E /* tmw.xpm */,
+ );
+ path = icons;
+ sourceTree = "<group>";
+ };
+ 92A4CCDF0D1DA58D00CA28FB /* archivers */ = {
+ isa = PBXGroup;
+ children = (
+ 92A4CCE00D1DA58D00CA28FB /* dir.c */,
+ 92A4CCE10D1DA58D00CA28FB /* grp.c */,
+ 92A4CCE20D1DA58D00CA28FB /* hog.c */,
+ 92A4CCE30D1DA58D00CA28FB /* lzma.c */,
+ 92A4CCE40D1DA58D00CA28FB /* mvl.c */,
+ 92A4CCE50D1DA58D00CA28FB /* qpak.c */,
+ 92A4CCE60D1DA58D00CA28FB /* wad.c */,
+ 92A4CCE70D1DA58D00CA28FB /* zip.c */,
+ );
+ path = archivers;
+ sourceTree = "<group>";
+ };
+ 92BC3EF00BAEE55A000DAB7F /* gui */ = {
+ isa = PBXGroup;
+ children = (
+ 92FD19B30DDCE53400D14E5D /* setup_players.cpp */,
+ 92FD19B40DDCE53400D14E5D /* setup_players.h */,
+ 92FD19B50DDCE53400D14E5D /* table.cpp */,
+ 92FD19B60DDCE53400D14E5D /* table.h */,
+ 92FD19B70DDCE53400D14E5D /* table_model.cpp */,
+ 92FD19B80DDCE53400D14E5D /* table_model.h */,
+ 926F9D410DB00AFC00AACD26 /* itemshortcutcontainer.cpp */,
+ 926F9D420DB00AFC00AACD26 /* itemshortcutcontainer.h */,
+ 926F9D430DB00AFC00AACD26 /* itemshortcutwindow.cpp */,
+ 926F9D440DB00AFC00AACD26 /* itemshortcutwindow.h */,
+ 92024D360CF1BDF7006B55CB /* setup_keyboard.cpp */,
+ 92024D370CF1BDF7006B55CB /* setup_keyboard.h */,
+ 924A3A0F0C07A60B0066885E /* widgets */,
+ 92BC3EF10BAEE55A000DAB7F /* box.cpp */,
+ 92BC3EF20BAEE55A000DAB7F /* box.h */,
+ 92BC3EF30BAEE55A000DAB7F /* browserbox.cpp */,
+ 92BC3EF40BAEE55A000DAB7F /* browserbox.h */,
+ 92BC3EF50BAEE55A000DAB7F /* buddywindow.cpp */,
+ 92BC3EF60BAEE55A000DAB7F /* buddywindow.h */,
+ 92BC3EF70BAEE55A000DAB7F /* button.cpp */,
+ 92BC3EF80BAEE55A000DAB7F /* button.h */,
+ 92BC3EF90BAEE55A000DAB7F /* buy.cpp */,
+ 92BC3EFA0BAEE55A000DAB7F /* buy.h */,
+ 92BC3EFB0BAEE55A000DAB7F /* buysell.cpp */,
+ 92BC3EFC0BAEE55A000DAB7F /* buysell.h */,
+ 92BC3EFD0BAEE55A000DAB7F /* char_select.cpp */,
+ 92BC3EFE0BAEE55A000DAB7F /* char_select.h */,
+ 92BC3EFF0BAEE55A000DAB7F /* char_server.cpp */,
+ 92BC3F000BAEE55A000DAB7F /* char_server.h */,
+ 92BC3F010BAEE55A000DAB7F /* chargedialog.cpp */,
+ 92BC3F020BAEE55A000DAB7F /* chargedialog.h */,
+ 92BC3F030BAEE55A000DAB7F /* chat.cpp */,
+ 92BC3F040BAEE55A000DAB7F /* chat.h */,
+ 92BC3F050BAEE55A000DAB7F /* chatinput.cpp */,
+ 92BC3F060BAEE55A000DAB7F /* chatinput.h */,
+ 92BC3F070BAEE55A000DAB7F /* checkbox.cpp */,
+ 92BC3F080BAEE55A000DAB7F /* checkbox.h */,
+ 92BC3F090BAEE55A000DAB7F /* confirm_dialog.cpp */,
+ 92BC3F0A0BAEE55A000DAB7F /* confirm_dialog.h */,
+ 92BC3F0B0BAEE55A000DAB7F /* connection.cpp */,
+ 92BC3F0C0BAEE55A000DAB7F /* connection.h */,
+ 92BC3F0D0BAEE55A000DAB7F /* debugwindow.cpp */,
+ 92BC3F0E0BAEE55A000DAB7F /* debugwindow.h */,
+ 92BC3F0F0BAEE55A000DAB7F /* equipmentwindow.cpp */,
+ 92BC3F100BAEE55A000DAB7F /* equipmentwindow.h */,
+ 92BC3F110BAEE55A000DAB7F /* focushandler.cpp */,
+ 92BC3F120BAEE55A000DAB7F /* focushandler.h */,
+ 92BC3F130BAEE55A000DAB7F /* gccontainer.cpp */,
+ 92BC3F140BAEE55A000DAB7F /* gccontainer.h */,
+ 92BC3F150BAEE55A000DAB7F /* gui.cpp */,
+ 92BC3F160BAEE55A000DAB7F /* gui.h */,
+ 92BC3F170BAEE55A000DAB7F /* hbox.cpp */,
+ 92BC3F180BAEE55A000DAB7F /* hbox.h */,
+ 92BC3F190BAEE55A000DAB7F /* help.cpp */,
+ 92BC3F1A0BAEE55A000DAB7F /* help.h */,
+ 92BC3F1B0BAEE55A000DAB7F /* inttextbox.cpp */,
+ 92BC3F1C0BAEE55A000DAB7F /* inttextbox.h */,
+ 92BC3F1D0BAEE55A000DAB7F /* inventorywindow.cpp */,
+ 92BC3F1E0BAEE55A000DAB7F /* inventorywindow.h */,
+ 92BC3F1F0BAEE55A000DAB7F /* item_amount.cpp */,
+ 92BC3F200BAEE55A000DAB7F /* item_amount.h */,
+ 92BC3F210BAEE55A000DAB7F /* itemcontainer.cpp */,
+ 92BC3F220BAEE55A000DAB7F /* itemcontainer.h */,
+ 92BC3F230BAEE55A000DAB7F /* linkhandler.h */,
+ 92BC3F240BAEE55A000DAB7F /* listbox.cpp */,
+ 92BC3F250BAEE55A000DAB7F /* listbox.h */,
+ 92BC3F260BAEE55A000DAB7F /* login.cpp */,
+ 92BC3F270BAEE55A000DAB7F /* login.h */,
+ 92BC3F280BAEE55A000DAB7F /* menuwindow.cpp */,
+ 92BC3F290BAEE55A000DAB7F /* menuwindow.h */,
+ 92BC3F2A0BAEE55A000DAB7F /* minimap.cpp */,
+ 92BC3F2B0BAEE55A000DAB7F /* minimap.h */,
+ 92BC3F2C0BAEE55A000DAB7F /* ministatus.cpp */,
+ 92BC3F2D0BAEE55A000DAB7F /* ministatus.h */,
+ 92BC3F2E0BAEE55A000DAB7F /* newskill.cpp */,
+ 92BC3F2F0BAEE55A000DAB7F /* newskill.h */,
+ 92BC3F300BAEE55A000DAB7F /* npc_text.cpp */,
+ 92BC3F310BAEE55A000DAB7F /* npc_text.h */,
+ 92BC3F320BAEE55A000DAB7F /* npclistdialog.cpp */,
+ 92BC3F330BAEE55A000DAB7F /* npclistdialog.h */,
+ 92BC3F340BAEE55A000DAB7F /* ok_dialog.cpp */,
+ 92BC3F350BAEE55A000DAB7F /* ok_dialog.h */,
+ 92BC3F360BAEE55A000DAB7F /* passwordfield.cpp */,
+ 92BC3F370BAEE55A000DAB7F /* passwordfield.h */,
+ 92BC3F380BAEE55A000DAB7F /* playerbox.cpp */,
+ 92BC3F390BAEE55A000DAB7F /* playerbox.h */,
+ 92BC3F3A0BAEE55A000DAB7F /* popupmenu.cpp */,
+ 92BC3F3B0BAEE55A000DAB7F /* popupmenu.h */,
+ 92BC3F3C0BAEE55A000DAB7F /* progressbar.cpp */,
+ 92BC3F3D0BAEE55A000DAB7F /* progressbar.h */,
+ 92BC3F3E0BAEE55A000DAB7F /* radiobutton.cpp */,
+ 92BC3F3F0BAEE55A000DAB7F /* radiobutton.h */,
+ 92BC3F400BAEE55A000DAB7F /* register.cpp */,
+ 92BC3F410BAEE55A000DAB7F /* register.h */,
+ 92BC3F420BAEE55A000DAB7F /* scrollarea.cpp */,
+ 92BC3F430BAEE55A000DAB7F /* scrollarea.h */,
+ 92BC3F450BAEE55A000DAB7F /* sell.cpp */,
+ 92BC3F460BAEE55A000DAB7F /* sell.h */,
+ 92BC3F470BAEE55A000DAB7F /* setup.cpp */,
+ 92BC3F480BAEE55A000DAB7F /* setup.h */,
+ 92BC3F490BAEE55A000DAB7F /* setup_audio.cpp */,
+ 92BC3F4A0BAEE55A000DAB7F /* setup_audio.h */,
+ 92BC3F4B0BAEE55A000DAB7F /* setup_joystick.cpp */,
+ 92BC3F4C0BAEE55A000DAB7F /* setup_joystick.h */,
+ 92BC3F4D0BAEE55A000DAB7F /* setup_video.cpp */,
+ 92BC3F4E0BAEE55A000DAB7F /* setup_video.h */,
+ 92BC3F4F0BAEE55A000DAB7F /* setuptab.h */,
+ 92BC3F500BAEE55A000DAB7F /* shop.cpp */,
+ 92BC3F510BAEE55A000DAB7F /* shop.h */,
+ 92BC3F520BAEE55A000DAB7F /* shoplistbox.cpp */,
+ 92BC3F530BAEE55A000DAB7F /* shoplistbox.h */,
+ 92BC3F540BAEE55A000DAB7F /* skill.cpp */,
+ 92BC3F550BAEE55A000DAB7F /* skill.h */,
+ 92BC3F560BAEE55A000DAB7F /* slider.cpp */,
+ 92BC3F570BAEE55A000DAB7F /* slider.h */,
+ 92BC3F580BAEE55A000DAB7F /* status.cpp */,
+ 92BC3F590BAEE55B000DAB7F /* status.h */,
+ 92BC3F5A0BAEE55B000DAB7F /* tabbedcontainer.cpp */,
+ 92BC3F5B0BAEE55B000DAB7F /* tabbedcontainer.h */,
+ 92BC3F5C0BAEE55B000DAB7F /* textbox.cpp */,
+ 92BC3F5D0BAEE55B000DAB7F /* textbox.h */,
+ 92BC3F5E0BAEE55B000DAB7F /* textfield.cpp */,
+ 92BC3F5F0BAEE55B000DAB7F /* textfield.h */,
+ 92BC3F600BAEE55B000DAB7F /* trade.cpp */,
+ 92BC3F610BAEE55B000DAB7F /* trade.h */,
+ 92BC3F620BAEE55B000DAB7F /* updatewindow.cpp */,
+ 92BC3F630BAEE55B000DAB7F /* updatewindow.h */,
+ 92BC3F640BAEE55B000DAB7F /* vbox.cpp */,
+ 92BC3F650BAEE55B000DAB7F /* vbox.h */,
+ 92BC3F660BAEE55B000DAB7F /* viewport.cpp */,
+ 92BC3F670BAEE55B000DAB7F /* viewport.h */,
+ 92BC3F680BAEE55B000DAB7F /* window.cpp */,
+ 92BC3F690BAEE55B000DAB7F /* window.h */,
+ 92BC3F6A0BAEE55B000DAB7F /* windowcontainer.cpp */,
+ 92BC3F6B0BAEE55B000DAB7F /* windowcontainer.h */,
+ );
+ name = gui;
+ path = src/gui;
+ sourceTree = "<group>";
+ };
+ 92BC3F800BAEE55B000DAB7F /* net */ = {
+ isa = PBXGroup;
+ children = (
+ 92BC3F810BAEE55B000DAB7F /* beinghandler.cpp */,
+ 92BC3F820BAEE55B000DAB7F /* beinghandler.h */,
+ 92BC3F830BAEE55B000DAB7F /* buysellhandler.cpp */,
+ 92BC3F840BAEE55B000DAB7F /* buysellhandler.h */,
+ 92BC3F850BAEE55B000DAB7F /* charserverhandler.cpp */,
+ 92BC3F860BAEE55B000DAB7F /* charserverhandler.h */,
+ 92BC3F870BAEE55B000DAB7F /* chathandler.cpp */,
+ 92BC3F880BAEE55B000DAB7F /* chathandler.h */,
+ 92BC3F890BAEE55B000DAB7F /* equipmenthandler.cpp */,
+ 92BC3F8A0BAEE55B000DAB7F /* equipmenthandler.h */,
+ 92BC3F8B0BAEE55B000DAB7F /* inventoryhandler.cpp */,
+ 92BC3F8C0BAEE55B000DAB7F /* inventoryhandler.h */,
+ 92BC3F8D0BAEE55B000DAB7F /* itemhandler.cpp */,
+ 92BC3F8E0BAEE55B000DAB7F /* itemhandler.h */,
+ 92BC3F8F0BAEE55B000DAB7F /* loginhandler.cpp */,
+ 92BC3F900BAEE55B000DAB7F /* loginhandler.h */,
+ 92BC3F910BAEE55B000DAB7F /* maploginhandler.cpp */,
+ 92BC3F920BAEE55B000DAB7F /* maploginhandler.h */,
+ 92BC3F930BAEE55B000DAB7F /* messagehandler.cpp */,
+ 92BC3F940BAEE55B000DAB7F /* messagehandler.h */,
+ 92BC3F950BAEE55B000DAB7F /* messagein.cpp */,
+ 92BC3F960BAEE55B000DAB7F /* messagein.h */,
+ 92BC3F970BAEE55B000DAB7F /* messageout.cpp */,
+ 92BC3F980BAEE55B000DAB7F /* messageout.h */,
+ 92BC3F990BAEE55B000DAB7F /* network.cpp */,
+ 92BC3F9A0BAEE55B000DAB7F /* network.h */,
+ 92BC3F9B0BAEE55B000DAB7F /* npchandler.cpp */,
+ 92BC3F9C0BAEE55B000DAB7F /* npchandler.h */,
+ 92BC3F9D0BAEE55B000DAB7F /* playerhandler.cpp */,
+ 92BC3F9E0BAEE55B000DAB7F /* playerhandler.h */,
+ 92BC3F9F0BAEE55B000DAB7F /* protocol.cpp */,
+ 92BC3FA00BAEE55B000DAB7F /* protocol.h */,
+ 92BC3FA10BAEE55B000DAB7F /* skillhandler.cpp */,
+ 92BC3FA20BAEE55B000DAB7F /* skillhandler.h */,
+ 92BC3FA30BAEE55B000DAB7F /* tradehandler.cpp */,
+ 92BC3FA40BAEE55B000DAB7F /* tradehandler.h */,
+ );
+ name = net;
+ path = src/net;
+ sourceTree = "<group>";
+ };
+ 92BC3FA90BAEE55B000DAB7F /* physfs */ = {
+ isa = PBXGroup;
+ children = (
+ 92A4CCFB0D1DA89800CA28FB /* physfs_unicode.c */,
+ 92A4CCF00D1DA5A800CA28FB /* physfs_casefolding.h */,
+ 92A4CCF10D1DA5A800CA28FB /* physfs_platforms.h */,
+ 92A4CCDF0D1DA58D00CA28FB /* archivers */,
+ 92BC3FAB0BAEE55B000DAB7F /* physfs.c */,
+ 92BC3FAC0BAEE55B000DAB7F /* physfs.h */,
+ 92BC3FAD0BAEE55B000DAB7F /* physfs_byteorder.c */,
+ 92BC3FAE0BAEE55B000DAB7F /* physfs_internal.h */,
+ 92BC3FAF0BAEE55B000DAB7F /* platform */,
+ );
+ name = physfs;
+ path = src/physfs;
+ sourceTree = "<group>";
+ };
+ 92BC3FAF0BAEE55B000DAB7F /* platform */ = {
+ isa = PBXGroup;
+ children = (
+ 92A4CCF20D1DA5C600CA28FB /* macosx.c */,
+ 92BC3FB50BAEE55B000DAB7F /* posix.c */,
+ 92BC3FB70BAEE55B000DAB7F /* unix.c */,
+ );
+ path = platform;
+ sourceTree = "<group>";
+ };
+ 92BC3FBD0BAEE55B000DAB7F /* resources */ = {
+ isa = PBXGroup;
+ children = (
+ 922CD9560E3D00900074C50E /* npcdb.cpp */,
+ 922CD9570E3D00900074C50E /* npcdb.h */,
+ 92FD19BD0DDCE56A00D14E5D /* dye.h */,
+ 92024E740CF1DCF6006B55CB /* imageloader.cpp */,
+ 92024E750CF1DCF6006B55CB /* imageloader.h */,
+ 925350010BC12A3200115FD5 /* imageset.cpp */,
+ 925350020BC12A3200115FD5 /* imageset.h */,
+ 92BC3FBE0BAEE55B000DAB7F /* action.cpp */,
+ 92BC3FBF0BAEE55B000DAB7F /* action.h */,
+ 92BC3FC00BAEE55B000DAB7F /* ambientoverlay.cpp */,
+ 92BC3FC10BAEE55B000DAB7F /* ambientoverlay.h */,
+ 92BC3FC20BAEE55B000DAB7F /* animation.cpp */,
+ 92BC3FC30BAEE55B000DAB7F /* animation.h */,
+ 92BC3FC40BAEE55B000DAB7F /* buddylist.cpp */,
+ 92BC3FC50BAEE55B000DAB7F /* buddylist.h */,
+ 92BC3FC90BAEE55B000DAB7F /* image.cpp */,
+ 92BC3FCA0BAEE55B000DAB7F /* image.h */,
+ 92BC3FCB0BAEE55B000DAB7F /* imagewriter.cpp */,
+ 92BC3FCC0BAEE55B000DAB7F /* imagewriter.h */,
+ 92BC3FCD0BAEE55B000DAB7F /* itemdb.cpp */,
+ 92BC3FCE0BAEE55B000DAB7F /* itemdb.h */,
+ 92BC3FCF0BAEE55B000DAB7F /* iteminfo.cpp */,
+ 92BC3FD00BAEE55B000DAB7F /* iteminfo.h */,
+ 92BC3FD10BAEE55B000DAB7F /* mapreader.cpp */,
+ 92BC3FD20BAEE55B000DAB7F /* mapreader.h */,
+ 92BC3FD30BAEE55B000DAB7F /* monsterdb.cpp */,
+ 92BC3FD40BAEE55B000DAB7F /* monsterdb.h */,
+ 92BC3FD50BAEE55B000DAB7F /* monsterinfo.cpp */,
+ 92BC3FD60BAEE55B000DAB7F /* monsterinfo.h */,
+ 92BC3FD70BAEE55B000DAB7F /* music.cpp */,
+ 92BC3FD80BAEE55B000DAB7F /* music.h */,
+ 92BC3FDB0BAEE55B000DAB7F /* resource.cpp */,
+ 92BC3FDC0BAEE55B000DAB7F /* resource.h */,
+ 92BC3FDD0BAEE55B000DAB7F /* resourcemanager.cpp */,
+ 92BC3FDE0BAEE55B000DAB7F /* resourcemanager.h */,
+ 92BC3FE10BAEE55B000DAB7F /* soundeffect.cpp */,
+ 92BC3FE20BAEE55B000DAB7F /* soundeffect.h */,
+ 92BC3FE30BAEE55B000DAB7F /* spritedef.cpp */,
+ 92BC3FE40BAEE55B000DAB7F /* spritedef.h */,
+ );
+ name = resources;
+ path = src/resources;
+ sourceTree = "<group>";
+ };
+ 92BC3FEE0BAEE55B000DAB7F /* utils */ = {
+ isa = PBXGroup;
+ children = (
+ 92FD19BF0DDCE6F700D14E5D /* strprintf.cpp */,
+ 92FD19C00DDCE6F700D14E5D /* strprintf.h */,
+ 92024D400CF1BE22006B55CB /* fastsqrt.h */,
+ 92024D420CF1BE22006B55CB /* trim.h */,
+ 92BC3FEF0BAEE55B000DAB7F /* base64.cpp */,
+ 92BC3FF00BAEE55B000DAB7F /* base64.h */,
+ 92BC3FF10BAEE55B000DAB7F /* dtor.h */,
+ 92BC3FF20BAEE55B000DAB7F /* tostring.h */,
+ 92BC3FF40BAEE55B000DAB7F /* xml.cpp */,
+ 92BC3FF50BAEE55B000DAB7F /* xml.h */,
+ );
+ name = utils;
+ path = src/utils;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8D0C4E890486CD37000505A6 /* themanaworld */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "themanaworld" */;
+ buildPhases = (
+ 8D0C4E8C0486CD37000505A6 /* Resources */,
+ 8D0C4E8F0486CD37000505A6 /* Sources */,
+ 8D0C4E910486CD37000505A6 /* Frameworks */,
+ 924A3A520C085C190066885E /* Copy Data Files */,
+ 924A3E540C085CAF0066885E /* Copy GUI Files */,
+ 924A40880C085FBD0066885E /* Copy Image Files */,
+ 924A42000C0861C70066885E /* Copy Help Files */,
+ 92EEA0090D2E20D100DDE300 /* Copy Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = themanaworld;
+ productInstallPath = "$(HOME)/Applications";
+ productName = themanaworld;
+ productReference = 508344B209E5C41E0093A071 /* The Mana World.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 20286C28FDCF999611CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "themanaworld" */;
+ compatibilityVersion = "Xcode 2.4";
+ hasScannedForEncodings = 1;
+ mainGroup = 20286C29FDCF999611CA2CEA /* themanaworld */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8D0C4E890486CD37000505A6 /* themanaworld */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D0C4E8C0486CD37000505A6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 924A425A0C0871EC0066885E /* The Mana World.icns in Resources */,
+ 92A4CCFF0D1DA8E500CA28FB /* LICENSE.rtf in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D0C4E8F0486CD37000505A6 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 92BC3FF60BAEE55B000DAB7F /* animatedsprite.cpp in Sources */,
+ 92BC3FF70BAEE55B000DAB7F /* being.cpp in Sources */,
+ 92BC3FF80BAEE55B000DAB7F /* beingmanager.cpp in Sources */,
+ 92BC3FFA0BAEE55B000DAB7F /* configuration.cpp in Sources */,
+ 92BC40020BAEE55B000DAB7F /* engine.cpp in Sources */,
+ 92BC40030BAEE55B000DAB7F /* equipment.cpp in Sources */,
+ 92BC40040BAEE55B000DAB7F /* floor_item.cpp in Sources */,
+ 92BC40050BAEE55B000DAB7F /* flooritemmanager.cpp in Sources */,
+ 92BC40060BAEE55B000DAB7F /* game.cpp in Sources */,
+ 92BC40070BAEE55B000DAB7F /* graphics.cpp in Sources */,
+ 92BC40080BAEE55B000DAB7F /* box.cpp in Sources */,
+ 92BC40090BAEE55B000DAB7F /* browserbox.cpp in Sources */,
+ 92BC400A0BAEE55B000DAB7F /* buddywindow.cpp in Sources */,
+ 92BC400B0BAEE55B000DAB7F /* button.cpp in Sources */,
+ 92BC400C0BAEE55B000DAB7F /* buy.cpp in Sources */,
+ 92BC400D0BAEE55B000DAB7F /* buysell.cpp in Sources */,
+ 92BC400E0BAEE55B000DAB7F /* char_select.cpp in Sources */,
+ 92BC400F0BAEE55B000DAB7F /* char_server.cpp in Sources */,
+ 92BC40100BAEE55B000DAB7F /* chargedialog.cpp in Sources */,
+ 92BC40110BAEE55B000DAB7F /* chat.cpp in Sources */,
+ 92BC40120BAEE55B000DAB7F /* chatinput.cpp in Sources */,
+ 92BC40130BAEE55B000DAB7F /* checkbox.cpp in Sources */,
+ 92BC40140BAEE55B000DAB7F /* confirm_dialog.cpp in Sources */,
+ 92BC40150BAEE55B000DAB7F /* connection.cpp in Sources */,
+ 92BC40160BAEE55B000DAB7F /* debugwindow.cpp in Sources */,
+ 92BC40170BAEE55B000DAB7F /* equipmentwindow.cpp in Sources */,
+ 92BC40180BAEE55B000DAB7F /* focushandler.cpp in Sources */,
+ 92BC40190BAEE55B000DAB7F /* gccontainer.cpp in Sources */,
+ 92BC401A0BAEE55B000DAB7F /* gui.cpp in Sources */,
+ 92BC401B0BAEE55B000DAB7F /* hbox.cpp in Sources */,
+ 92BC401C0BAEE55B000DAB7F /* help.cpp in Sources */,
+ 92BC401D0BAEE55B000DAB7F /* inttextbox.cpp in Sources */,
+ 92BC401E0BAEE55B000DAB7F /* inventorywindow.cpp in Sources */,
+ 92BC401F0BAEE55B000DAB7F /* item_amount.cpp in Sources */,
+ 92BC40200BAEE55B000DAB7F /* itemcontainer.cpp in Sources */,
+ 92BC40210BAEE55B000DAB7F /* listbox.cpp in Sources */,
+ 92BC40220BAEE55B000DAB7F /* login.cpp in Sources */,
+ 92BC40230BAEE55B000DAB7F /* menuwindow.cpp in Sources */,
+ 92BC40240BAEE55B000DAB7F /* minimap.cpp in Sources */,
+ 92BC40250BAEE55B000DAB7F /* ministatus.cpp in Sources */,
+ 92BC40260BAEE55B000DAB7F /* newskill.cpp in Sources */,
+ 92BC40270BAEE55B000DAB7F /* npc_text.cpp in Sources */,
+ 92BC40280BAEE55B000DAB7F /* npclistdialog.cpp in Sources */,
+ 92BC40290BAEE55B000DAB7F /* ok_dialog.cpp in Sources */,
+ 92BC402A0BAEE55B000DAB7F /* passwordfield.cpp in Sources */,
+ 92BC402B0BAEE55B000DAB7F /* playerbox.cpp in Sources */,
+ 92BC402C0BAEE55B000DAB7F /* popupmenu.cpp in Sources */,
+ 92BC402D0BAEE55B000DAB7F /* progressbar.cpp in Sources */,
+ 92BC402E0BAEE55B000DAB7F /* radiobutton.cpp in Sources */,
+ 92BC402F0BAEE55B000DAB7F /* register.cpp in Sources */,
+ 92BC40300BAEE55B000DAB7F /* scrollarea.cpp in Sources */,
+ 92BC40310BAEE55B000DAB7F /* sell.cpp in Sources */,
+ 92BC40320BAEE55B000DAB7F /* setup.cpp in Sources */,
+ 92BC40330BAEE55B000DAB7F /* setup_audio.cpp in Sources */,
+ 92BC40340BAEE55B000DAB7F /* setup_joystick.cpp in Sources */,
+ 92BC40350BAEE55B000DAB7F /* setup_video.cpp in Sources */,
+ 92BC40360BAEE55B000DAB7F /* shop.cpp in Sources */,
+ 92BC40370BAEE55B000DAB7F /* shoplistbox.cpp in Sources */,
+ 92BC40380BAEE55B000DAB7F /* skill.cpp in Sources */,
+ 92BC40390BAEE55B000DAB7F /* slider.cpp in Sources */,
+ 92BC403A0BAEE55B000DAB7F /* status.cpp in Sources */,
+ 92BC403B0BAEE55B000DAB7F /* tabbedcontainer.cpp in Sources */,
+ 92BC403C0BAEE55B000DAB7F /* textbox.cpp in Sources */,
+ 92BC403D0BAEE55B000DAB7F /* textfield.cpp in Sources */,
+ 92BC403E0BAEE55B000DAB7F /* trade.cpp in Sources */,
+ 92BC403F0BAEE55B000DAB7F /* updatewindow.cpp in Sources */,
+ 92BC40400BAEE55B000DAB7F /* vbox.cpp in Sources */,
+ 92BC40410BAEE55B000DAB7F /* viewport.cpp in Sources */,
+ 92BC40420BAEE55B000DAB7F /* window.cpp in Sources */,
+ 92BC40430BAEE55B000DAB7F /* windowcontainer.cpp in Sources */,
+ 92BC40440BAEE55B000DAB7F /* inventory.cpp in Sources */,
+ 92BC40450BAEE55B000DAB7F /* item.cpp in Sources */,
+ 92BC40460BAEE55B000DAB7F /* joystick.cpp in Sources */,
+ 92BC40470BAEE55B000DAB7F /* localplayer.cpp in Sources */,
+ 92BC40480BAEE55B000DAB7F /* log.cpp in Sources */,
+ 92BC40490BAEE55B000DAB7F /* main.cpp in Sources */,
+ 92BC404B0BAEE55B000DAB7F /* map.cpp in Sources */,
+ 92BC404C0BAEE55B000DAB7F /* monster.cpp in Sources */,
+ 92BC404D0BAEE55B000DAB7F /* beinghandler.cpp in Sources */,
+ 92BC404E0BAEE55B000DAB7F /* buysellhandler.cpp in Sources */,
+ 92BC404F0BAEE55B000DAB7F /* charserverhandler.cpp in Sources */,
+ 92BC40500BAEE55B000DAB7F /* chathandler.cpp in Sources */,
+ 92BC40510BAEE55B000DAB7F /* equipmenthandler.cpp in Sources */,
+ 92BC40520BAEE55B000DAB7F /* inventoryhandler.cpp in Sources */,
+ 92BC40530BAEE55B000DAB7F /* itemhandler.cpp in Sources */,
+ 92BC40540BAEE55B000DAB7F /* loginhandler.cpp in Sources */,
+ 92BC40550BAEE55B000DAB7F /* maploginhandler.cpp in Sources */,
+ 92BC40560BAEE55B000DAB7F /* messagehandler.cpp in Sources */,
+ 92BC40570BAEE55B000DAB7F /* messagein.cpp in Sources */,
+ 92BC40580BAEE55B000DAB7F /* messageout.cpp in Sources */,
+ 92BC40590BAEE55B000DAB7F /* network.cpp in Sources */,
+ 92BC405A0BAEE55B000DAB7F /* npchandler.cpp in Sources */,
+ 92BC405B0BAEE55B000DAB7F /* playerhandler.cpp in Sources */,
+ 92BC405C0BAEE55B000DAB7F /* protocol.cpp in Sources */,
+ 92BC405D0BAEE55B000DAB7F /* skillhandler.cpp in Sources */,
+ 92BC405E0BAEE55B000DAB7F /* tradehandler.cpp in Sources */,
+ 92BC405F0BAEE55B000DAB7F /* npc.cpp in Sources */,
+ 92BC40600BAEE55B000DAB7F /* openglgraphics.cpp in Sources */,
+ 92BC406E0BAEE55B000DAB7F /* player.cpp in Sources */,
+ 92BC406F0BAEE55B000DAB7F /* action.cpp in Sources */,
+ 92BC40700BAEE55B000DAB7F /* ambientoverlay.cpp in Sources */,
+ 92BC40710BAEE55B000DAB7F /* animation.cpp in Sources */,
+ 92BC40720BAEE55B000DAB7F /* buddylist.cpp in Sources */,
+ 92BC40740BAEE55B000DAB7F /* image.cpp in Sources */,
+ 92BC40750BAEE55B000DAB7F /* imagewriter.cpp in Sources */,
+ 92BC40760BAEE55B000DAB7F /* itemdb.cpp in Sources */,
+ 92BC40770BAEE55B000DAB7F /* iteminfo.cpp in Sources */,
+ 92BC40780BAEE55B000DAB7F /* mapreader.cpp in Sources */,
+ 92BC40790BAEE55B000DAB7F /* monsterdb.cpp in Sources */,
+ 92BC407A0BAEE55B000DAB7F /* monsterinfo.cpp in Sources */,
+ 92BC407B0BAEE55B000DAB7F /* music.cpp in Sources */,
+ 92BC407D0BAEE55B000DAB7F /* resource.cpp in Sources */,
+ 92BC407E0BAEE55B000DAB7F /* resourcemanager.cpp in Sources */,
+ 92BC40800BAEE55B000DAB7F /* soundeffect.cpp in Sources */,
+ 92BC40810BAEE55B000DAB7F /* spritedef.cpp in Sources */,
+ 92BC40830BAEE55B000DAB7F /* simpleanimation.cpp in Sources */,
+ 92BC40840BAEE55B000DAB7F /* sound.cpp in Sources */,
+ 92BC40850BAEE55B000DAB7F /* base64.cpp in Sources */,
+ 92BC40860BAEE55B000DAB7F /* xml.cpp in Sources */,
+ 92BC40E60BAEF54B000DAB7F /* SDLMain.m in Sources */,
+ 925350030BC12A3200115FD5 /* imageset.cpp in Sources */,
+ 924A39F20C0784280066885E /* animationparticle.cpp in Sources */,
+ 924A39F30C0784280066885E /* imageparticle.cpp in Sources */,
+ 924A39F40C0784280066885E /* particle.cpp in Sources */,
+ 924A39F50C0784280066885E /* particleemitter.cpp in Sources */,
+ 924A39F60C0784280066885E /* textparticle.cpp in Sources */,
+ 924A3A120C07A60B0066885E /* resizegrip.cpp in Sources */,
+ 9294DA9B0C17E70400FCEDE9 /* physfs.c in Sources */,
+ 9294DA9C0C17E70600FCEDE9 /* physfs_byteorder.c in Sources */,
+ 92024D2F0CF1BD9E006B55CB /* keyboardconfig.cpp in Sources */,
+ 92024D3D0CF1BDF7006B55CB /* setup_keyboard.cpp in Sources */,
+ 92024E760CF1DCF6006B55CB /* imageloader.cpp in Sources */,
+ 92A4CC9E0D1C622E00CA28FB /* dye.cpp in Sources */,
+ 92A4CCE80D1DA58D00CA28FB /* dir.c in Sources */,
+ 92A4CCE90D1DA58D00CA28FB /* grp.c in Sources */,
+ 92A4CCEA0D1DA58D00CA28FB /* hog.c in Sources */,
+ 92A4CCEB0D1DA58D00CA28FB /* lzma.c in Sources */,
+ 92A4CCEC0D1DA58D00CA28FB /* mvl.c in Sources */,
+ 92A4CCED0D1DA58D00CA28FB /* qpak.c in Sources */,
+ 92A4CCEE0D1DA58D00CA28FB /* wad.c in Sources */,
+ 92A4CCEF0D1DA58D00CA28FB /* zip.c in Sources */,
+ 92A4CCF30D1DA5C600CA28FB /* macosx.c in Sources */,
+ 92A4CCF90D1DA81A00CA28FB /* posix.c in Sources */,
+ 92A4CCFC0D1DA89800CA28FB /* physfs_unicode.c in Sources */,
+ 926F9CF80DB005FA00AACD26 /* itemshortcut.cpp in Sources */,
+ 926F9D450DB00AFC00AACD26 /* itemshortcutcontainer.cpp in Sources */,
+ 926F9D460DB00AFC00AACD26 /* itemshortcutwindow.cpp in Sources */,
+ 92FD19B00DDCE51000D14E5D /* player_relations.cpp in Sources */,
+ 92FD19BA0DDCE53400D14E5D /* setup_players.cpp in Sources */,
+ 92FD19BB0DDCE53400D14E5D /* table.cpp in Sources */,
+ 92FD19BC0DDCE53400D14E5D /* table_model.cpp in Sources */,
+ 92FD19C10DDCE6F700D14E5D /* strprintf.cpp in Sources */,
+ 922CD9580E3D00900074C50E /* npcdb.cpp in Sources */,
+ 922CD95F0E3D01080074C50E /* shopitem.cpp in Sources */,
+ 92037A1F0ED2037300D3712D /* text.cpp in Sources */,
+ 92037A200ED2037300D3712D /* textmanager.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ C0E91AC608A95435008D54AB /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"/System/Library/Frameworks\"";
+ GCC_DEBUGGING_SYMBOLS = full;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ PHYSFS_SUPPORTS_ZIP,
+ USE_OPENGL,
+ __PHYSFS_CARBONIZED__,
+ );
+ HEADER_SEARCH_PATHS = (
+ /Library/Frameworks/SDL_net.framework/Headers,
+ /Library/Frameworks/SDL_image.framework/Headers,
+ /Library/Frameworks/SDL_mixer.framework/Headers,
+ guichan.framework/Headers,
+ /Library/Frameworks/libpng.framework/Headers,
+ /usr/include/libxml2,
+ /Library/Frameworks/SDL.framework/Headers,
+ );
+ INFOPLIST_FILE = Info.plist;
+ LIBRARY_SEARCH_PATHS = /usr/lib;
+ MACOSX_DEPLOYMENT_TARGET = 10.5;
+ OTHER_LDFLAGS = (
+ "-lz",
+ "-lxml2",
+ "-lcurl",
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = "The Mana World";
+ SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ USER_HEADER_SEARCH_PATHS = src;
+ };
+ name = Debug;
+ };
+ C0E91AC708A95435008D54AB /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ DEAD_CODE_STRIPPING = YES;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_2)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"/System/Library/Frameworks\"";
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_OPTIMIZATION_LEVEL = 2;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ PHYSFS_SUPPORTS_ZIP,
+ USE_OPENGL,
+ __PHYSFS_CARBONIZED__,
+ );
+ GCC_VERSION_i386 = 4.0;
+ GCC_VERSION_ppc = 3.3;
+ GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
+ HEADER_SEARCH_PATHS = (
+ /Library/Frameworks/SDL_net.framework/Headers,
+ /Library/Frameworks/SDL_image.framework/Headers,
+ /Library/Frameworks/SDL_mixer.framework/Headers,
+ guichan.framework/Headers,
+ /Library/Frameworks/libpng.framework/Headers,
+ /usr/include/libxml2,
+ /Library/Frameworks/SDL.framework/Headers,
+ );
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = /usr/lib;
+ MACOSX_DEPLOYMENT_TARGET = 10.3;
+ MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
+ MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
+ OTHER_LDFLAGS = (
+ "-lxml2",
+ "-lcurl",
+ "-lz",
+ );
+ PREBINDING = NO;
+ PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+ PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
+ PRODUCT_NAME = "The Mana World";
+ SDKROOT = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
+ SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ USER_HEADER_SEARCH_PATHS = src;
+ };
+ name = Release;
+ };
+ C0E91ACA08A95435008D54AB /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ C0E91ACB08A95435008D54AB /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_PREPROCESSOR_DEFINITIONS = "";
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ SEPARATE_STRIP = YES;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "themanaworld" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C0E91AC608A95435008D54AB /* Debug */,
+ C0E91AC708A95435008D54AB /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "themanaworld" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C0E91ACA08A95435008D54AB /* Debug */,
+ C0E91ACB08A95435008D54AB /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
+}
diff --git a/tools/tmxcopy/Makefile b/tools/tmxcopy/Makefile
new file mode 100644
index 00000000..84aa9fc6
--- /dev/null
+++ b/tools/tmxcopy/Makefile
@@ -0,0 +1,18 @@
+CC=g++
+CFLAGS=-c `pkg-config --cflags libxml-2.0`
+LDFLAGS=`pkg-config --libs libxml-2.0`
+SOURCES=base64.cpp main.cpp map.cpp xmlutils.cpp zlibutils.cpp
+OBJECTS=$(SOURCES:.cpp=.o)
+EXECUTABLE=tmxcopy
+
+all: $(SOURCES) $(EXECUTABLE)
+ make clean
+
+$(EXECUTABLE): $(OBJECTS)
+ $(CC) $(LDFLAGS) $(OBJECTS) -o $@
+
+.cpp.o:
+ $(CC) $(CFLAGS) $< -o $@
+
+clean:
+ rm -f *.o
diff --git a/tools/tmxcopy/base64.cpp b/tools/tmxcopy/base64.cpp
index 6b7a4ad9..8cea60f9 100644
--- a/tools/tmxcopy/base64.cpp
+++ b/tools/tmxcopy/base64.cpp
@@ -26,7 +26,6 @@
| Author: Jim Winstead (jimw@php.net) |
+----------------------------------------------------------------------+
*/
-/* $Id: base64.cpp 3773 2007-12-12 15:45:25Z crush_tmw $ */
#include <string.h>
#include <stdlib.h>
diff --git a/tools/tmxcopy/base64.h b/tools/tmxcopy/base64.h
index 9e1193be..c802207b 100644
--- a/tools/tmxcopy/base64.h
+++ b/tools/tmxcopy/base64.h
@@ -26,7 +26,6 @@
| Author: Jim Winstead (jimw@php.net) |
+----------------------------------------------------------------------+
*/
-/* $Id: base64.h 3773 2007-12-12 15:45:25Z crush_tmw $ */
#ifndef _TMW_BASE64_H
#define _TMW_BASE64_H
diff --git a/tools/tmxcopy/map.cpp b/tools/tmxcopy/map.cpp
index e0212e37..b554aac2 100644
--- a/tools/tmxcopy/map.cpp
+++ b/tools/tmxcopy/map.cpp
@@ -18,6 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <cstring>
#include <iostream>
#include <map>
#include <list>
@@ -250,6 +251,7 @@ bool Map::overwrite( Map* srcMap,
}
std::clog<<"copying successful!"<<std::endl;
+ return true;
}
int Map::save(std::string filename)
diff --git a/tools/tmxcopy/tmxcopy.cbp b/tools/tmxcopy/tmxcopy.cbp
index 90105493..237f6fde 100644
--- a/tools/tmxcopy/tmxcopy.cbp
+++ b/tools/tmxcopy/tmxcopy.cbp
@@ -1,87 +1,39 @@
-<?xml version="1.0"?>
-<!DOCTYPE CodeBlocks_project_file>
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
- <FileVersion major="1" minor="1"/>
+ <FileVersion major="1" minor="6" />
<Project>
- <Option title="tmxcopy"/>
- <Option makefile="Makefile"/>
- <Option makefile_is_custom="0"/>
- <Option active_target="0"/>
- <Option compiler="0"/>
+ <Option title="untitled" />
+ <Option pch_mode="0" />
+ <Option compiler="gcc" />
<Build>
<Target title="default">
- <Option output="tmxcopy.exe"/>
- <Option working_dir="."/>
- <Option object_output=".objs"/>
- <Option deps_output=".deps"/>
- <Option type="1"/>
- <Option compiler="0"/>
- <Option projectResourceIncludeDirsRelation="1"/>
+ <Option output="TMXCopy.exe" prefix_auto="0" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="gcc" />
+ <Option projectResourceIncludeDirsRelation="1" />
+ <Linker>
+ <Add library="libxml2" />
+ <Add library="z" />
+ </Linker>
</Target>
</Build>
- <Linker>
- <Add library="libxml2"/>
- <Add library="libz"/>
- </Linker>
- <Unit filename="base64.cpp">
- <Option compilerVar="CPP"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="base64.h">
- <Option compilerVar=""/>
- <Option compile="0"/>
- <Option link="0"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="main.cpp">
- <Option compilerVar="CPP"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="map.cpp">
- <Option compilerVar="CPP"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="map.hpp">
- <Option compilerVar=""/>
- <Option compile="0"/>
- <Option link="0"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="tostring.h">
- <Option compilerVar=""/>
- <Option compile="0"/>
- <Option link="0"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="xmlutils.cpp">
- <Option compilerVar="CPP"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="xmlutils.h">
- <Option compilerVar=""/>
- <Option compile="0"/>
- <Option link="0"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="zlibutils.cpp">
- <Option compilerVar="CPP"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
- <Unit filename="zlibutils.h">
- <Option compilerVar=""/>
- <Option compile="0"/>
- <Option link="0"/>
- <Option target="default"/>
- <Option target="release"/>
- </Unit>
+ <VirtualTargets>
+ <Add alias="All" targets="default;" />
+ </VirtualTargets>
+ <Unit filename="base64.cpp" />
+ <Unit filename="base64.h" />
+ <Unit filename="main.cpp" />
+ <Unit filename="map.cpp" />
+ <Unit filename="map.hpp" />
+ <Unit filename="tostring.h" />
+ <Unit filename="xmlutils.cpp" />
+ <Unit filename="xmlutils.h" />
+ <Unit filename="zlibutils.cpp" />
+ <Unit filename="zlibutils.h" />
+ <Extensions>
+ <code_completion />
+ <envvars />
+ <debugger />
+ </Extensions>
</Project>
</CodeBlocks_project_file>
diff --git a/tools/tmxcopy/tostring.h b/tools/tmxcopy/tostring.h
index b70882b0..d2dd941a 100644
--- a/tools/tmxcopy/tostring.h
+++ b/tools/tmxcopy/tostring.h
@@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * $Id: tostring.h 3773 2007-12-12 15:45:25Z crush_tmw $
*/
#ifndef _TMW_UTILS_TOSTRING_H
diff --git a/tools/tmxcopy/xmlutils.cpp b/tools/tmxcopy/xmlutils.cpp
index 47bff51a..8b1b62cf 100644
--- a/tools/tmxcopy/xmlutils.cpp
+++ b/tools/tmxcopy/xmlutils.cpp
@@ -17,7 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
*/
#include "xmlutils.h"
diff --git a/tools/tmxcopy/xmlutils.h b/tools/tmxcopy/xmlutils.h
index 32d1a960..60e8f3cd 100644
--- a/tools/tmxcopy/xmlutils.h
+++ b/tools/tmxcopy/xmlutils.h
@@ -17,7 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
*/
#ifndef _XMLUTILS_H