diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-02-13 15:40:44 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-02-13 15:40:44 +0000 |
commit | b092468063d314d96aee6624cdb1a8fa78599424 (patch) | |
tree | ec09bb99d4cf52cbd8f68f17ef4fd3d478f62ea9 | |
parent | 4b2a028c8002609bd9256d1f8fd73aceee5c44fc (diff) | |
download | mana-b092468063d314d96aee6624cdb1a8fa78599424.tar.gz mana-b092468063d314d96aee6624cdb1a8fa78599424.tar.bz2 mana-b092468063d314d96aee6624cdb1a8fa78599424.tar.xz mana-b092468063d314d96aee6624cdb1a8fa78599424.zip |
Small start on XML map loading. Windows users pay attention to instructions
in win32.txt.
-rw-r--r-- | The Mana World.dev | 2 | ||||
-rw-r--r-- | docs/INSTALL/win32.txt | 17 | ||||
-rw-r--r-- | src/map.cpp | 31 | ||||
-rw-r--r-- | src/map.h | 9 | ||||
-rw-r--r-- | tmw.ini | 2 |
5 files changed, 47 insertions, 14 deletions
diff --git a/The Mana World.dev b/The Mana World.dev index 56c8203c..440358c5 100644 --- a/The Mana World.dev +++ b/The Mana World.dev @@ -12,7 +12,7 @@ ResourceIncludes= MakeIncludes= Compiler=-Dmain=SDL_main_@@_ CppCompiler=-funroll-loops_@@_-ffast-math_@@_-fomit-frame-pointer_@@_-pipe_@@_ -Linker=-lguichan_@@_-lguichan_sdl_@@_-lwsock32_@@_-lSDL_image_@@_-lSDL_mixer_@@_-lmingw32_@@_-lSDLmain_@@_-lSDL_@@_ +Linker=-lguichan_@@_-lguichan_sdl_@@_-lwsock32_@@_-lSDL_image_@@_-lSDL_mixer_@@_-lmingw32_@@_-lSDLmain_@@_-lSDL_@@_-llibxml2_@@_ IsCpp=1 Icon=The Mana World.ico ExeOutput= diff --git a/docs/INSTALL/win32.txt b/docs/INSTALL/win32.txt index 639db596..73d24ff3 100644 --- a/docs/INSTALL/win32.txt +++ b/docs/INSTALL/win32.txt @@ -29,6 +29,7 @@ Besides a C++ compiler, TMW depends on the following libraries: 2) SDL_mixer 3) SDL_image 4) Guichan 0.2.0 +5) libxml2 2. Installing Dev-C++ @@ -55,11 +56,21 @@ Get the following list of DevPaks: - SDL_mixer (http://devpaks.org/show.php?devpak=26) - SDL_image (http://devpaks.org/show.php?devpak=25) - Guichan (http://guichan.darkbits.org/downloads/guichan-0.2.0.DevPak) +- libxml2 ** (ftp://ftp.zlatkovic.com/pub/libxml/) Install them all through the Dev-C++ package manager. For SDL_image you may still need to manually get the SDL_image.lib file from the SDL_image homepage (devel VC6 zip file) and copy it to your Dev-Cpp/lib directory. +**) For libxml2, download the following files (these or newer versions): + + libxml2-2.6.17.win32.zip + iconv-1.9.1.win32.zip + zlib-1.2.1.win32.zip + + From each file, copy the headers to your include directory, the libs to + the lib direcotry and the dlls (in bin direcotry) to your tmw directory. + You should now be fully equipped for compiling the latest TMW CVS code! @@ -88,5 +99,11 @@ DLLs from your Dev-Cpp/dll directory to the directory containing tmw.exe: libpng1.dll zlib.dll +And also make sure you have: + + libxml2.dll + iconv.dll + zlib1.dll + Have fun hacking The Mana World! diff --git a/src/map.cpp b/src/map.cpp index c810fab6..39b73091 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -25,14 +25,10 @@ #include "map.h" #include "log.h" #include "being.h" -#include <queue> -#include <stdio.h> -#ifdef WIN32 -#include <windows.h> -#else -#include "./net/win2linux.h" -#endif +#include <libxml/parser.h> +#include <libxml/tree.h> +#include <queue> Map tiledMap; @@ -103,11 +99,12 @@ Map::~Map() delete[] tiles; } -bool Map::load(char *mapFile) { - FILE *file = fopen(mapFile, "r"); +bool Map::load(const std::string &mapFile) +{ + FILE *file = fopen(mapFile.c_str(), "r"); if (!file) { - warning(mapFile); + warning(mapFile.c_str()); return false; } @@ -149,6 +146,20 @@ bool Map::load(char *mapFile) { return true; } +bool loadXmlMap(const std::string &mapFile) +{ + xmlDocPtr doc = xmlReadFile(mapFile.c_str(), NULL, 0); + + if (!doc) { + warning(mapFile.c_str()); + return false; + } + + xmlFreeDoc(doc); + + return false; +} + void Map::setSize(int width, int height) { this->width = width; @@ -88,9 +88,14 @@ class Map ~Map(); /** - * Loads a map file. + * Loads a map file (gat). */ - bool load(char *mapFile); + bool load(const std::string &mapFile); + + /** + * Loads an XML map file (tmx). + */ + bool loadXmlMap(const std::string &mapFile); /** * Sets the size of the map. This will destroy any existing map data. @@ -8,5 +8,5 @@ sound=0 stretch=0 system= url=http://localhost/ -username=player +username=Player version=0.200000 |